From 51a551a7f8eae7654f973d45cd2fa2952774673d Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Fri, 07 Aug 2026 10:56:55 +0800
Subject: [PATCH] perf(task): 优化巡查任务审核性能并添加详细日志记录

---
 drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMaintainPlanMapper.xml |   40 +++++++++++++---------------------------
 1 files changed, 13 insertions(+), 27 deletions(-)

diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMaintainPlanMapper.xml b/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMaintainPlanMapper.xml
index 11d9b1f..fc24407 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMaintainPlanMapper.xml
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMaintainPlanMapper.xml
@@ -37,33 +37,12 @@
         b.create_time as device_create_time
     </sql>
 
-    <sql id="maintainStatusCalculation">
-        CASE
-            WHEN (
-                SELECT COUNT(1)
-                FROM ja_fw_device_maintain_record r
-                WHERE r.device_id = a.device_id
-                  AND r.is_deleted = 0
-                  AND r.maintain_time IS NOT NULL
-                  AND (
-                      (a.plan_cycle_type = '1' AND FIND_IN_SET(DATE_FORMAT(r.maintain_time, '%m月%d号'), REPLACE(REPLACE(REPLACE(a.plan_cycle_value, '[', ''), ']', ''), '"', '')) > 0)
-                      OR (a.plan_cycle_type = '2' AND FIND_IN_SET(DATE_FORMAT(r.maintain_time, '%d号'), REPLACE(REPLACE(REPLACE(a.plan_cycle_value, '[', ''), ']', ''), '"', '')) > 0)
-                      OR (a.plan_cycle_type = '3' AND FIND_IN_SET(ELT(DAYOFWEEK(r.maintain_time), '星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'), REPLACE(REPLACE(REPLACE(a.plan_cycle_value, '[', ''), ']', ''), '"', '')) > 0)
-                  )
-            ) > 0 THEN '已维护'
-            ELSE '未维护'
-        END AS maintain_status,
-        (SELECT MAX(r.maintain_time) FROM ja_fw_device_maintain_record r WHERE r.device_id = a.device_id AND r.is_deleted = 0) AS last_maintain_time
-
-    </sql>
-
-
     <select id="getFwDeviceMaintainPlanById" resultMap="fwDeviceMaintainPlanResultMap">
         select
         <include refid="deviceFields"/>,a.*
         from
         ja_fw_device_maintain_plan a
-        left join ja_fw_device b on (a.device_id = b.id)
+        left join ja_fw_device b on (a.device_id::VARCHAR = b.id::VARCHAR)
         <where>
             a.is_deleted = 0
             <if test="id != null and id != ''">
@@ -75,13 +54,14 @@
 
     <select id="selectFwDeviceMaintainPlanPage" resultMap="fwDeviceMaintainPlanResultMap">
         select
-        <include refid="deviceFields"/>,a.*,
-        <include refid="maintainStatusCalculation"/>
+            <include refid="deviceFields"/>,
+            a.*
         from
-        ja_fw_device_maintain_plan a
-        left join ja_fw_device b on (a.device_id = b.id)
+            ja_fw_device_maintain_plan a
+        left join
+            ja_fw_device b on (a.device_id::VARCHAR = b.id::VARCHAR)
         <where>
-            a.is_deleted = 0
+                a.is_deleted = 0
             <if test="param2.deviceId != null and param2.deviceId != ''">
                 and device_id = #{param2.deviceId}
             </if>
@@ -94,6 +74,12 @@
             <if test="param2.belongDept != null and param2.belongDept != ''">
                 and belong_dept = #{param2.belongDept}
             </if>
+            <if test="param2.deptList != null and param2.deptList.size > 0">
+                and a.create_dept in
+                <foreach collection="param2.deptList" item="deptId" open="(" separator="," close=")">
+                    #{deptId}
+                </foreach>
+            </if>
         </where>
     </select>
 

--
Gitblit v1.9.3