吉安感知网项目-后端
linwei
2026-04-02 618ece4b9b22c2b9a4e85b46f0b3ec99c53e200b
drone-service/drone-gd/src/main/java/org/sxkj/gd/workorder/mapper/GdPatrolTaskMapper.xml
@@ -31,46 +31,49 @@
    <select id="selectGdPatrolTaskPage" resultMap="gdPatrolTaskResultMap">
        select
            pt.*,
            md.nickname as device_name,
            wo.work_order_name,
            IFNULL(tr.result_count, 0) as result_count,
            IFNULL(tr.issue_event_count, 0) as issue_event_count
        pt.*,
        md.nickname as device_name,
        wo.work_order_name,
        COALESCE(tr.result_count, 0) as result_count,
        COALESCE(tr.issue_event_count, 0) as issue_event_count
        from
            ja_gd_patrol_task pt
        ja_gd_patrol_task pt
        left join
            ja_gd_work_order wo on pt.work_order_id = wo.id
            ja_gd_work_order wo on pt.work_order_id::VARCHAR = wo.id::VARCHAR
        left join
                ja_gd_manage_device md on md.id = pt.device_id
                ja_gd_manage_device md on md.id::VARCHAR = pt.device_id::VARCHAR
        left join
            (
            select patrol_task_id,
                count(*) as result_count,
                sum(case when distribute_status in (1,2) then 1 else 0 end) as issue_event_count
            from
                ja_gd_task_result
            where
                is_deleted = 0
            group by
                patrol_task_id
            ) tr on tr.patrol_task_id = pt.id
        (
        select patrol_task_id,
        count(*) as result_count,
        sum(case when distribute_status in (1,2) then 1 else 0 end) as issue_event_count
        from
        ja_gd_task_result
        where
        is_deleted = 0
        group by
        patrol_task_id
        ) tr on tr.patrol_task_id::VARCHAR = pt.id::VARCHAR
        <where>
            pt.is_deleted = 0
            <if test="param2.workOrderId != null and param2.workOrderId != ''">
                and pt.work_order_id = #{param2.workOrderId}
                /* 重点:参数也强制转类型 */
                and pt.work_order_id::VARCHAR = #{param2.workOrderId}::VARCHAR
            </if>
            <if test="param2.patrolTaskName != null and param2.patrolTaskName != ''">
                and pt.patrol_task_name like concat(#{param2.patrolTaskName},'%')
            </if>
            <if test="param2.patrolTaskType != null and param2.patrolTaskType != ''">
                and pt.patrol_task_type = #{param2.patrolTaskType}
                and pt.patrol_task_type::VARCHAR = #{param2.patrolTaskType}::VARCHAR
            </if>
            <if test="param2.taskStatus != null and param2.taskStatus != ''">
                and pt.task_status = #{param2.taskStatus}
                /* 报错信息中出现了这个参数,务必加强转 */
                and pt.task_status::VARCHAR = #{param2.taskStatus}::VARCHAR
            </if>
            <if test="param2.deptList != null and param2.deptList.size > 0">
                and pt.create_dept in
                and pt.create_dept::VARCHAR in
                <foreach collection="param2.deptList" item="deptId" open="(" separator="," close=")">
                    #{deptId}
                    #{deptId}::VARCHAR
                </foreach>
            </if>
            <if test="param2.startTime != null and param2.startTime != '' and param2.endTime != null and param2.endTime != '' ">
@@ -91,7 +94,7 @@
        FROM
            ja_gd_patrol_task pt
        left join
                ja_gd_manage_device md on md.id = pt.device_id
                ja_gd_manage_device md on md.id = pt.device_id::VARCHAR
        WHERE pt.id = #{patrolTaskId}
    </select>
@@ -108,9 +111,9 @@
        FROM
            ja_gd_patrol_task pt
        left join
            ja_gd_work_order wo on pt.work_order_id = wo.id
            ja_gd_work_order wo on pt.work_order_id = wo.id::VARCHAR
        left join
            ja_gd_manage_device md on md.id = pt.device_id
            ja_gd_manage_device md on md.id = pt.device_id::VARCHAR
        WHERE pt.id = #{id}
    </select>