From e68dabeb961dfff38543f7d76e445fcbcb345fcb Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Thu, 09 Apr 2026 09:56:09 +0800
Subject: [PATCH] opt:优化

---
 drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdTaskResultMapper.xml |   61 +++++++++++++++++++++++++-----
 1 files changed, 50 insertions(+), 11 deletions(-)

diff --git a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdTaskResultMapper.xml b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdTaskResultMapper.xml
index f854a7d..708485e 100644
--- a/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdTaskResultMapper.xml
+++ b/drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdTaskResultMapper.xml
@@ -10,7 +10,8 @@
         <result column="result_url" property="resultUrl"/>
         <result column="shoot_time" property="shootTime"/>
         <result column="photo_data" property="photoData"/>
-        <result column="location" property="location"/>
+        <result column="longitude" property="longitude"/>
+        <result column="latitude" property="latitude"/>
         <result column="distribute_status" property="distributeStatus"/>
         <result column="area_code" property="areaCode"/>
         <result column="create_user" property="createUser"/>
@@ -24,26 +25,64 @@
         <result column="distribute_dept_name" property="distributeDeptName"/>
     </resultMap>
 
+    <resultMap id="gdTaskResultExcelResultMap" type="org.sxkj.gd.workorder.excel.GdTaskResultExcel">
+        <result column="patrol_task_id" property="patrolTaskId"/>
+        <result column="result_code" property="resultCode"/>
+        <result column="result_url" property="resultUrl"/>
+        <result column="shoot_time" property="shootTime"/>
+        <result column="photo_data" property="photoData"/>
+        <result column="longitude" property="longitude"/>
+        <result column="latitude" property="latitude"/>
+        <result column="distribute_status" property="distributeStatus"/>
+        <result column="area_code" property="areaCode"/>
+        <result column="is_deleted" property="isDeleted"/>
+    </resultMap>
+
 
     <select id="selectGdTaskResultPage" resultMap="gdTaskResultResultMap">
         select * from ja_gd_task_result where is_deleted = 0
     </select>
 
     <select id="selectGdTaskResultListByPatrolTaskId" resultMap="gdTaskResultResultMap">
-        select tr.*,
-               IFNULL(bu.real_name, bu.name) as distribute_user_name,
-               bd.dept_name as distribute_dept_name
-        from ja_gd_task_result tr
-                 left join ja_gd_clue_event ce on ce.result_id = tr.id and ce.is_deleted = 0
-                 left join blade_user bu on bu.id = ce.create_user and bu.is_deleted = 0
-                 left join blade_dept bd on bd.id = ce.create_dept and bd.is_deleted = 0
-        where tr.is_deleted = 0
-          and tr.patrol_task_id = #{patrolTaskId}
+        SELECT tr.*,
+               COALESCE(bu.real_name, bu.name) as distribute_user_name,
+               bd.dept_name                  as distribute_dept_name
+        FROM ja_gd_task_result tr
+                 LEFT JOIN (SELECT *
+                            FROM ja_gd_clue_event ce1
+                            WHERE ce1.is_deleted = 0
+                              AND ce1.create_time = (SELECT MAX(create_time)
+                                                     FROM ja_gd_clue_event ce2
+                                                     WHERE ce2.result_id::VARCHAR = ce1.result_id::VARCHAR
+                                                       AND ce2.is_deleted = 0)) ce ON ce.result_id::VARCHAR = tr.id::VARCHAR
+                 LEFT JOIN blade_user bu ON bu.id::VARCHAR = ce.create_user::VARCHAR AND bu.is_deleted = 0
+                 LEFT JOIN blade_dept bd ON bd.id::VARCHAR = ce.create_dept::VARCHAR AND bd.is_deleted = 0
+        WHERE tr.is_deleted = 0
+          AND tr.patrol_task_id = #{patrolTaskId}
     </select>
 
 
-    <select id="exportGdTaskResult" resultType="org.sxkj.gd.workorder.excel.GdTaskResultExcel">
+    <select id="exportGdTaskResult" resultMap="gdTaskResultExcelResultMap">
         SELECT * FROM ja_gd_task_result ${ew.customSqlSegment}
     </select>
 
+    <!-- 根据ID更新成果信息(更新所有字段) -->
+    <update id="updateTaskResultById">
+        UPDATE ja_gd_task_result
+        SET patrol_task_id = #{patrolTaskId},
+            result_code = #{resultCode},
+            result_url = #{resultUrl},
+            shoot_time = #{shootTime},
+            photo_data = #{photoData}::jsonb,
+            longitude = #{longitude},
+            latitude = #{latitude},
+            distribute_status = #{distributeStatus},
+            area_code = #{areaCode},
+            update_user = #{updateUser},
+            update_time = #{updateTime},
+            status = #{status},
+            is_deleted = #{isDeleted}
+        WHERE id = #{id}
+    </update>
+
 </mapper>

--
Gitblit v1.9.3