吉安感知网项目-后端
linwei
9 hours ago 08ddfad4530a014094c06fe68b8c2d9a0753403a
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdClueEventMapper.xml
@@ -63,20 +63,25 @@
        <result column="shoot_time" property="shootTime"/>
        <result column="dispose_user_name" property="disposeUserName"/>
        <result column="dispose_dept_name" property="disposeDeptName"/>
        <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="attach_url" property="attachUrl"/>
    </resultMap>
    <resultMap id="gdClueEventCountVoResultMap" type="org.sxkj.gd.workorder.vo.GdClueEventCountVO">
        <result column="total_count" property="totalCount"/>
        <result column="my_count" property="myCount"/>
        <result column="returned_count" property="returnedCount"/>
        <result column="disposing_count" property="disposingCount"/>
        <result column="disposed_count" property="disposedCount"/>
        <result column="completed_count" property="completedCount"/>
    </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"/>
@@ -114,12 +119,25 @@
            ce.create_time as create_time,
            tr.shoot_time as shoot_time,
            COALESCE(bu.real_name, bu.name) as dispose_user_name,
            bd.dept_name as dispose_dept_name
            bd.dept_name as dispose_dept_name,
            ce.result_id,
            ce.work_order_id,
            ce.dispose_user,
            ce.dispose_dept,
            ce.longitude,
            ce.latitude,
            ce.event_status,
            ce.area_code,
            ce.event_num,
            ce.attach_url
        from ja_gd_clue_event ce
        left join ja_gd_task_result tr on tr.id::VARCHAR = ce.result_id::VARCHAR and tr.is_deleted = 0
        left join blade_user bu on bu.id::VARCHAR = ce.dispose_user::VARCHAR and bu.is_deleted = 0
        left join blade_dept bd on bd.id::VARCHAR = ce.dispose_dept::VARCHAR and bd.is_deleted = 0
        <include refid="gdClueEventDeptWhere"/>
        left join ja_gd_task_result tr on tr.id::VARCHAR = ce.result_id::VARCHAR
        left join blade_user bu on bu.id::VARCHAR = ce.dispose_user::VARCHAR
        left join blade_dept bd on bd.id::VARCHAR = ce.dispose_dept::VARCHAR
        where ce.is_deleted = 0
        <if test="deptId != null">
            and ce.dispose_dept = #{deptId}
        </if>
        <if test="statusList != null and statusList.size() > 0">
            and ce.event_status in
            <foreach collection="statusList" item="status" open="(" separator="," close=")">
@@ -127,16 +145,17 @@
            </foreach>
        </if>
        <if test="keyword != null and keyword != ''">
            and ce.event_num::VARCHAR like concat('%', #{keyword}, '%')
            and (ce.event_num::VARCHAR like concat('%', #{keyword}, '%')
                 or ce.event_name::VARCHAR like concat('%', #{keyword}, '%'))
        </if>
        <if test="onlyMine != null and onlyMine == 1">
            and ce.dispose_user = #{userId}
        </if>
        <if test="startTime != null and startTime != ''">
            and tr.shoot_time &gt;= #{startTime}
            and tr.shoot_time &gt;= #{startTime}::timestamp
        </if>
        <if test="endTime != null and endTime != ''">
            and tr.shoot_time &lt;= #{endTime}
            and tr.shoot_time &lt;= #{endTime}::timestamp
        </if>
        order by ce.create_time desc
    </select>
@@ -175,23 +194,29 @@
               tr.id as tr_id,
               tr.attachment_type as tr_attachment_type_raw
        from ja_gd_clue_event ce
        left join blade_user bu on bu.id::VARCHAR = ce.dispose_user::VARCHAR and bu.is_deleted = 0
        left join blade_dept bd on bd.id::VARCHAR = ce.dispose_dept::VARCHAR and bd.is_deleted = 0
        left join blade_user cu on cu.id::VARCHAR = ce.create_user::VARCHAR and cu.is_deleted = 0
        left join blade_dept cd on cd.id::VARCHAR = ce.create_dept::VARCHAR and cd.is_deleted = 0
        left join ja_gd_task_result tr on tr.id::VARCHAR = ce.result_id::VARCHAR and tr.is_deleted = 0
        <include refid="gdClueEventDeptWhere"/>
        left join blade_user bu on bu.id::VARCHAR = ce.dispose_user::VARCHAR
        left join blade_dept bd on bd.id::VARCHAR = ce.dispose_dept::VARCHAR
        left join blade_user cu on cu.id::VARCHAR = ce.create_user::VARCHAR
        left join blade_dept cd on cd.id::VARCHAR = ce.create_dept::VARCHAR
        left join ja_gd_task_result tr on tr.id::VARCHAR = ce.result_id::VARCHAR
        where ce.is_deleted = 0
        <if test="deptId != null">
            and ce.dispose_dept = #{deptId}
        </if>
        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,
        COALESCE(sum(case when ce.event_status = 2 then 1 else 0 end), 0) as returned_count,
        COALESCE(sum(case when ce.event_status = 1 then 1 else 0 end), 0) as disposing_count,
        COALESCE(sum(case when ce.event_status = 3 then 1 else 0 end), 0) as disposed_count,
        COALESCE(sum(case when ce.event_status = 4 then 1 else 0 end), 0) as completed_count
        from ja_gd_clue_event ce
        <include refid="gdClueEventDeptWhere"/>
        where ce.is_deleted = 0
        <if test="deptId != null">
            and ce.dispose_dept = #{deptId}
        </if>
        <if test="statusList != null and statusList.size() > 0">
            and ce.event_status in
            <foreach collection="statusList" item="status" open="(" separator="," close=")">
@@ -199,7 +224,8 @@
            </foreach>
        </if>
        <if test="keyword != null and keyword != ''">
            and ce.event_num like concat('%', #{keyword}, '%')
            and (ce.event_num like concat('%', #{keyword}, '%')
                 or ce.event_name like concat('%', #{keyword}, '%'))
        </if>
    </select>