吉安感知网项目-后端
linwei
2026-04-15 b708cc166ae62e757f91da80f2f72e135ded6c55
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
<?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"/>
    </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 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" 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>