<?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.GdPatrolTaskMapper">
|
|
<!-- 通用查询映射结果 -->
|
<resultMap id="gdPatrolTaskResultMap" type="org.sxkj.gd.workorder.vo.GdPatrolTaskVO">
|
<result column="id" property="id"/>
|
<result column="work_order_id" property="workOrderId"/>
|
<result column="work_order_name" property="workOrderName"/>
|
<result column="patrol_task_name" property="patrolTaskName"/>
|
<result column="patrol_task_type" property="patrolTaskType"/>
|
<result column="execute_time" property="executeTime"/>
|
<result column="patrol_route_url" property="patrolRouteUrl"/>
|
<result column="recommend_flyer_name" property="recommendFlyerName"/>
|
<result column="device_id" property="deviceId"/>
|
<result column="device_name" property="deviceName"/>
|
<result column="task_desc" property="taskDesc"/>
|
<result column="task_status" property="taskStatus"/>
|
<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="result_count" property="resultCount"/>
|
<result column="issue_event_count" property="issueEventCount"/>
|
</resultMap>
|
|
|
<select id="selectGdPatrolTaskPage" resultMap="gdPatrolTaskResultMap">
|
select
|
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
|
left join
|
ja_gd_work_order wo on pt.work_order_id::VARCHAR = wo.id::VARCHAR
|
left join
|
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::VARCHAR = pt.id::VARCHAR
|
<where>
|
pt.is_deleted = 0
|
<if test="param2.workOrderId != null and 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::VARCHAR = #{param2.patrolTaskType}::VARCHAR
|
</if>
|
<if test="param2.taskStatus != null and 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::VARCHAR in
|
<foreach collection="param2.deptList" item="deptId" open="(" separator="," close=")">
|
#{deptId}::VARCHAR
|
</foreach>
|
</if>
|
<if test="param2.startTime != null and param2.startTime != '' and param2.endTime != null and param2.endTime != '' ">
|
and pt.execute_time BETWEEN #{param2.startTime}::timestamp AND #{param2.endTime}::timestamp
|
</if>
|
</where>
|
order by pt.create_time desc, pt.execute_time asc
|
</select>
|
|
|
<select id="exportGdPatrolTask" resultType="org.sxkj.gd.workorder.excel.GdPatrolTaskExcel">
|
SELECT * FROM ja_gd_patrol_task ${ew.customSqlSegment}
|
</select>
|
|
<select id="getPatrolTaskIdById" resultType="org.sxkj.gd.workorder.vo.GdPatrolTaskVO">
|
SELECT
|
pt.*,
|
md.airport_id as airport_id
|
FROM
|
ja_gd_patrol_task pt
|
left join
|
ja_gd_manage_device md on md.id::VARCHAR = pt.device_id::VARCHAR
|
WHERE pt.id = #{patrolTaskId}::BIGINT
|
</select>
|
|
|
<select id="getPatrolTaskDetail" resultType="org.sxkj.gd.workorder.vo.GdPatrolTaskVO">
|
SELECT
|
pt.*,
|
md.airport_id as airport_id,
|
md.height,
|
md.longitude,
|
md.latitude,
|
md.nickname as device_name,
|
wo.work_order_name
|
FROM
|
ja_gd_patrol_task pt
|
left join
|
ja_gd_work_order wo on pt.work_order_id::VARCHAR = wo.id::VARCHAR
|
left join
|
ja_gd_manage_device md on md.id::VARCHAR = pt.device_id::VARCHAR
|
WHERE pt.id = #{id}::BIGINT
|
</select>
|
|
<select id="getWorkOrderIdById" resultType="org.sxkj.gd.workorder.entity.GdWorkOrderEntity">
|
SELECT
|
*
|
FROM
|
ja_gd_work_order
|
WHERE id = #{id}
|
AND work_order_status = #{code}
|
</select>
|
|
<!-- 自定义更新工单状态语句 -->
|
<update id="updateWorkOrderById" parameterType="org.sxkj.gd.workorder.entity.GdWorkOrderEntity">
|
UPDATE ja_gd_work_order
|
<set>
|
<if test="workOrderParam.workOrderStatus != null">
|
work_order_status = #{workOrderParam.workOrderStatus},
|
</if>
|
<if test="workOrderParam.updateUser != null">
|
update_user = #{workOrderParam.updateUser},
|
</if>
|
<if test="workOrderParam.updateTime != null">
|
update_time = #{workOrderParam.updateTime},
|
</if>
|
</set>
|
WHERE id = #{workOrderParam.id}
|
</update>
|
|
<!-- 根据工单ID查询巡查任务列表(仅id和名称) -->
|
<select id="selectListByWorkOrderId" resultType="org.sxkj.gd.workorder.vo.GdPatrolTaskSimpleVO">
|
SELECT id, patrol_task_name AS patrolTaskName
|
FROM ja_gd_patrol_task
|
WHERE is_deleted = 0
|
AND work_order_id = #{workOrderId}::bigint
|
ORDER BY create_time DESC
|
</select>
|
|
</mapper>
|