<?xml version="1.0" encoding="UTF-8"?>
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<mapper namespace="org.sxkj.gd.workorder.mapper.GdTaskResultMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="gdTaskResultResultMap" type="org.sxkj.gd.workorder.vo.GdTaskResultVO">
|
<result column="id" property="id"/>
|
<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="create_user" property="createUser"/>
|
<result column="create_dept" property="createDept"/>
|
<result column="create_time" property="createTime"/>
|
<result column="update_user" property="updateUser"/>
|
<result column="update_time" property="updateTime"/>
|
<result column="status" property="status"/>
|
<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"/>
|
</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 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>
|
ORDER BY tr.create_time DESC
|
</select>
|
|
<select id="selectGdTaskResultListByPatrolTaskId" resultMap="gdTaskResultResultMap">
|
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 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}
|
</select>
|
|
|
<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
|
) 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}
|
)
|
</foreach>
|
</insert>
|
|
</mapper>
|