From 2f07589b54d56085af77b50d580890cd4130b444 Mon Sep 17 00:00:00 2001
From: 吴羡 <16976746+Xian-TT3@user.noreply.gitee.com>
Date: 星期一, 19 十月 2026 15:19:53 +0800
Subject: [PATCH] 设备模块后端业务规则、计划接口与日期联动

---
 cnas-device/src/main/resources/mapper/DeviceMaintenancePlanDetailsMapper.xml |   25 +++++++++++++++++++++++++
 1 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/cnas-device/src/main/resources/mapper/DeviceMaintenancePlanDetailsMapper.xml b/cnas-device/src/main/resources/mapper/DeviceMaintenancePlanDetailsMapper.xml
index aeb49ce..219a418 100644
--- a/cnas-device/src/main/resources/mapper/DeviceMaintenancePlanDetailsMapper.xml
+++ b/cnas-device/src/main/resources/mapper/DeviceMaintenancePlanDetailsMapper.xml
@@ -17,4 +17,29 @@
         where dmpd.maintenance_plan_id = #{maintenancePlanId}
     </select>
 
+    <!-- 璁惧淇濆吇璁″垝璇︽儏鍒楄〃锛堝惈鍒扮偣鏍囩孩锛� -->
+    <select id="pageMaintenancePlanDetail" resultType="com.ruoyi.device.dto.DeviceMaintenancePlanDetailsDto">
+        select
+            dmpd.*,
+            d.device_name,
+            d.management_number device_number,
+            d.specification_model,
+            d.management_number,
+            d.storage_point,
+            case when d.next_maintenance_date is not null
+                and d.next_maintenance_date &lt;= date_add(curdate(), interval 1 month)
+                and (d.last_maintenance_date is null or d.last_maintenance_date &lt; dmpd.maintenance_date)
+                then 1 else 0 end as red_flag
+        from device_maintenance_plan_details dmpd
+        left join device d on dmpd.device_id = d.id
+        where dmpd.maintenance_plan_id = #{planId}
+        <if test="deviceName != null and deviceName != ''">
+            and d.device_name like concat('%', #{deviceName}, '%')
+        </if>
+        <if test="deviceNumber != null and deviceNumber != ''">
+            and d.management_number like concat('%', #{deviceNumber}, '%')
+        </if>
+        order by dmpd.maintenance_date asc
+    </select>
+
 </mapper>

--
Gitblit v1.9.3