From 08ddfad4530a014094c06fe68b8c2d9a0753403a Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Wed, 05 Aug 2026 14:09:29 +0800
Subject: [PATCH] fix(gd): 修复线索事件查询中的SQL语法错误
---
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdTaskResultMapper.xml | 134 ++++++++++++++++++++++++++++++++++++++++----
1 files changed, 122 insertions(+), 12 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..f00c4aa 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"/>
@@ -22,28 +23,137 @@
<result column="is_deleted" property="isDeleted"/>
<result column="distribute_user_name" property="distributeUserName"/>
<result column="distribute_dept_name" property="distributeDeptName"/>
+ <result column="patrol_task_name" property="patrolTaskName"/>
+ <result column="attachment_type" property="attachmentType"/>
+ <result column="event_name" property="eventName"/>
+ </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 tr.*, pt.patrol_task_name FROM ja_gd_task_result tr
+ INNER JOIN ja_gd_patrol_task pt ON pt.id = tr.patrol_task_id AND pt.is_deleted = 0
+ <if test="gdTaskResult.workOrderId != null">
+ INNER JOIN ja_gd_work_order wo ON wo.id = pt.work_order_id AND wo.is_deleted = 0
+ </if>
+ WHERE tr.is_deleted = 0
+ <if test="gdTaskResult.workOrderId != null">
+ AND wo.id = #{gdTaskResult.workOrderId}
+ </if>
+ <if test="gdTaskResult.patrolTaskIds != null and gdTaskResult.patrolTaskIds.size() > 0">
+ AND tr.patrol_task_id IN
+ <foreach collection="gdTaskResult.patrolTaskIds" item="id" open="(" separator="," close=")">
+ #{id}
+ </foreach>
+ </if>
+ <if test="gdTaskResult.patrolTaskName != null and gdTaskResult.patrolTaskName != ''">
+ AND pt.patrol_task_name LIKE concat('%', #{gdTaskResult.patrolTaskName}, '%')
+ </if>
+ <if test="gdTaskResult.resultCode != null and gdTaskResult.resultCode != ''">
+ AND tr.result_code LIKE concat('%', #{gdTaskResult.resultCode}, '%')
+ </if>
+ <if test="gdTaskResult.distributeStatus != null">
+ AND tr.distribute_status = #{gdTaskResult.distributeStatus}
+ </if>
+ <if test="gdTaskResult.areaCode != null and gdTaskResult.areaCode != ''">
+ AND tr.area_code = #{gdTaskResult.areaCode}
+ </if>
+ <if test="gdTaskResult.createDept != null">
+ AND tr.create_dept = #{gdTaskResult.createDept}
+ </if>
+ <if test="gdTaskResult.createUser != null">
+ AND tr.create_user = #{gdTaskResult.createUser}
+ </if>
+ <if test="gdTaskResult.attachmentType != null">
+ AND tr.attachment_type = #{gdTaskResult.attachmentType}
+ </if>
+ ORDER BY tr.create_time DESC
</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,
+ ce.event_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 CAST(ce2.result_id AS VARCHAR) = CAST(ce1.result_id AS VARCHAR) AND ce2.is_deleted = 0 )
+ ) ce ON CAST(ce.result_id AS VARCHAR) = CAST(tr.id AS VARCHAR)
+ LEFT JOIN blade_user bu ON CAST(bu.id AS VARCHAR) = CAST(ce.create_user AS VARCHAR)
+ AND bu.is_deleted = 0
+ LEFT JOIN blade_dept bd ON CAST(bd.id AS VARCHAR) = CAST(ce.create_dept AS VARCHAR)
+ AND bd.is_deleted = 0
+ WHERE
+ tr.is_deleted = 0
+ AND tr.patrol_task_id = #{patrolTaskId}
+ <if test="attachmentTypes != null and attachmentTypes.size() > 0">
+ AND tr.attachment_type IN
+ <foreach collection="attachmentTypes" item="type" open="(" separator="," close=")">
+ #{type}
+ </foreach>
+ </if>
</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 = CAST(#{photoData} AS 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>
+
+ <!-- 批量插入成果信息 -->
+ <insert id="insertBatch" parameterType="java.util.List">
+ INSERT INTO ja_gd_task_result (
+ patrol_task_id, result_code, result_url, shoot_time,
+ photo_data, longitude, latitude, distribute_status, area_code,
+ create_user, create_dept, create_time, update_user, update_time,
+ status, is_deleted, attachment_type, geojson
+ ) VALUES
+ <foreach collection="list" item="item" separator=",">
+ (
+ #{item.patrolTaskId}, #{item.resultCode}, #{item.resultUrl}, #{item.shootTime},
+ CASE WHEN #{item.photoData} IS NULL THEN NULL ELSE CAST(#{item.photoData} AS JSONB) END, #{item.longitude}, #{item.latitude}, #{item.distributeStatus}, #{item.areaCode},
+ #{item.createUser}, #{item.createDept}, #{item.createTime}, #{item.updateUser}, #{item.updateTime},
+ #{item.status}, #{item.isDeleted}, #{item.attachmentType}, #{item.geojson}
+ )
+ </foreach>
+ </insert>
+
</mapper>
--
Gitblit v1.9.3