吉安感知网项目-后端
linwei
2026-04-02 ecc14b8398e4b7072a3e4b6096e084fadd4a51d8
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<?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.GdClueEventMapper">
 
    <!-- 通用查询映射结果 -->
    <resultMap id="gdClueEventResultMap" type="org.sxkj.gd.workorder.entity.GdClueEventEntity">
        <result column="id" property="id"/>
        <result column="result_id" property="resultId"/>
        <result column="work_order_id" property="workOrderId"/>
        <result column="dispose_user" property="disposeUser"/>
        <result column="dispose_dept" property="disposeDept"/>
        <result column="longitude" property="longitude"/>
        <result column="latitude" property="latitude"/>
        <result column="event_status" property="eventStatus"/>
        <result column="area_code" property="areaCode"/>
        <result column="event_num" property="eventNum"/>
        <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"/>
    </resultMap>
 
    <resultMap id="gdClueEventVoResultMap" type="org.sxkj.gd.workorder.vo.GdClueEventVO">
        <result column="id" property="id"/>
        <result column="result_id" property="resultId"/>
        <result column="work_order_id" property="workOrderId"/>
        <result column="dispose_user" property="disposeUser"/>
        <result column="dispose_dept" property="disposeDept"/>
        <result column="dispose_user_name" property="disposeUserName"/>
        <result column="dispose_dept_name" property="disposeDeptName"/>
        <result column="longitude" property="longitude"/>
        <result column="latitude" property="latitude"/>
        <result column="event_status" property="eventStatus"/>
        <result column="area_code" property="areaCode"/>
        <result column="event_num" property="eventNum"/>
        <result column="event_location" property="eventLocation"/>
        <result column="shoot_time" property="shootTime"/>
        <result column="event_image_url" property="eventImageUrl"/>
        <result column="distribute_user_name" property="distributeUserName"/>
        <result column="distribute_dept_name" property="distributeDeptName"/>
        <result column="distribute_time" property="distributeTime"/>
        <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"/>
    </resultMap>
 
    <resultMap id="gdClueEventListVoResultMap" type="org.sxkj.gd.workorder.vo.GdClueEventListVO">
        <result column="id" property="id"/>
        <result column="event_image_url" property="eventImageUrl"/>
        <result column="create_time" property="createTime"/>
    </resultMap>
 
    <resultMap id="gdClueEventCountVoResultMap" type="org.sxkj.gd.workorder.vo.GdClueEventCountVO">
        <result column="total_count" property="totalCount"/>
        <result column="my_count" property="myCount"/>
    </resultMap>
 
    <sql id="gdClueEventDeptWhere">
        where ce.is_deleted = 0
        and ce.dispose_dept = #{deptId}
    </sql>
 
    <resultMap id="gdClueEventExcelResultMap" type="org.sxkj.gd.workorder.excel.GdClueEventExcel">
        <result column="result_id" property="resultId"/>
        <result column="work_order_id" property="workOrderId"/>
        <result column="dispose_user" property="disposeUser"/>
        <result column="dispose_dept" property="disposeDept"/>
        <result column="longitude" property="longitude"/>
        <result column="latitude" property="latitude"/>
        <result column="event_status" property="eventStatus"/>
        <result column="area_code" property="areaCode"/>
        <result column="event_num" property="eventNum"/>
        <result column="is_deleted" property="isDeleted"/>
    </resultMap>
 
    <select id="selectGdClueEventPage" resultMap="gdClueEventResultMap">
        select * from ja_gd_clue_event where is_deleted = 0
    </select>
 
    <select id="selectGdClueEventList" resultMap="gdClueEventVoResultMap">
        select ce.*,
               COALESCE(bu.real_name, bu.name) as dispose_user_name,
        bd.dept_name as dispose_dept_name
        from (select * from ja_gd_clue_event ${ew.customSqlSegment}) ce
        left join blade_user bu on bu.id = ce.dispose_user::VARCHAR and bu.is_deleted = 0
        left join blade_dept bd on bd.id = ce.dispose_dept::VARCHAR and bd.is_deleted = 0
    </select>
 
    <select id="selectGdClueEventSimpleList" resultMap="gdClueEventListVoResultMap">
        select ce.id as id,
        tr.result_url as event_image_url,
        ce.create_time as create_time
        from ja_gd_clue_event ce
        left join ja_gd_task_result tr on tr.id = ce.result_id::VARCHAR and tr.is_deleted = 0
        <include refid="gdClueEventDeptWhere"/>
        and ce.event_status in (1, 3)
        <if test="keyword != null and keyword != ''">
            and ce.event_num like concat('%', #{keyword}, '%')
        </if>
        <if test="onlyMine != null and onlyMine == 1">
            and ce.dispose_user = #{userId}
        </if>
    </select>
 
    <select id="selectGdClueEventDetailById" resultMap="gdClueEventVoResultMap">
        select ce.*,
        COALESCE(bu.real_name, bu.name) as dispose_user_name,
        bd.dept_name as dispose_dept_name,
        COALESCE(cu.real_name, cu.name) as distribute_user_name,
        cd.dept_name as distribute_dept_name,
        ce.create_time as distribute_time,
        concat(ce.longitude, ',', ce.latitude) as event_location,
        ce.event_num as event_num,
        tr.shoot_time as shoot_time,
        tr.result_url as event_image_url
        from ja_gd_clue_event ce
        left join blade_user bu on bu.id = ce.dispose_user::VARCHAR and bu.is_deleted = 0
        left join blade_dept bd on bd.id = ce.dispose_dept::VARCHAR and bd.is_deleted = 0
        left join blade_user cu on cu.id = ce.create_user::VARCHAR and cu.is_deleted = 0
        left join blade_dept cd on cd.id = ce.create_dept::VARCHAR and cd.is_deleted = 0
        left join ja_gd_task_result tr on tr.id = ce.result_id::VARCHAR and tr.is_deleted = 0
        <include refid="gdClueEventDeptWhere"/>
        and ce.id = #{id}
    </select>
 
    <select id="selectGdClueEventCount" resultMap="gdClueEventCountVoResultMap">
        select count(1) as total_count,
        COALESCE(sum(case when ce.dispose_user = #{userId} then 1 else 0 end), 0) as my_count
        from ja_gd_clue_event ce
        <include refid="gdClueEventDeptWhere"/>
        and ce.event_status in (1, 3)
        <if test="keyword != null and keyword != ''">
            and ce.event_num like concat('%', #{keyword}, '%')
        </if>
    </select>
 
 
    <select id="exportGdClueEvent" resultMap="gdClueEventExcelResultMap">
        SELECT * FROM ja_gd_clue_event ${ew.customSqlSegment}
    </select>
 
</mapper>