<?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="com.stylefeng.guns.modular.system.dao.TaskDetailMapper">
|
|
<select id="getTaskDetailList" resultType="com.stylefeng.guns.modular.system.model.vo.TaskDetailList">
|
select
|
a.id,
|
a.code,
|
b.`name`,
|
b.type,
|
a.status,
|
DATE_FORMAT(a.execution_time, '%Y-%m-%d %H:%i:%s') as executionTime
|
from t_task_detail a
|
left join t_patrol_task b on (a.patrol_task_id = b.id)
|
where a.del_flag = 0
|
<if test="null != item.code and '' != item.code">
|
and a.code like CONCAT('%', #{item.code}, '%')
|
</if>
|
<if test="null != item.status">
|
and a.status = #{item.status}
|
</if>
|
order by a.execution_time desc
|
</select>
|
|
|
<select id="getTaskRecordList" resultType="com.stylefeng.guns.modular.system.model.vo.TaskRecordList">
|
select
|
a.id,
|
b.type,
|
b.`name`,
|
a.`status`,
|
a.execution_time as executionTime,
|
ifnull(c.num, 0) as vehicleNum,
|
ifnull(d.num, 0) as unexecutedQuantity,
|
ifnull(e.num, 0) as offlineNum,
|
ifnull(f.num, 0) as normalNum,
|
ifnull(g.num, 0) as abnormalNum,
|
ROUND(ifnull(((ifnull(e.num, 0) + ifnull(f.num, 0) + ifnull(g.num, 0)) / ifnull(c.num, 0) * 100), 0), 2) as schedule,
|
if(h.num > 0, 0, 1) as authStatus
|
from t_task_detail a
|
left join t_patrol_task b on (a.patrol_task_id = b.id)
|
left join (select task_detail_id, count(1) as num from t_task_detail_vehicles group by task_detail_id) c on (a.id = c.task_detail_id)
|
left join (select task_detail_id, count(1) as num from t_task_detail_vehicles where `status` = 1 group by task_detail_id) d on (a.id = d.task_detail_id)
|
left join (select task_detail_id, count(1) as num from t_task_detail_vehicles where `status` = 4 group by task_detail_id) e on (a.id = e.task_detail_id)
|
left join (select task_detail_id, count(1) as num from t_task_detail_vehicles where `status` = 3 group by task_detail_id) f on (a.id = f.task_detail_id)
|
left join (select task_detail_id, count(1) as num from t_task_detail_vehicles where `status` = 5 group by task_detail_id) g on (a.id = g.task_detail_id)
|
left join (select task_detail_id, count(1) as num from t_task_detail_vehicles_channel where artificial_status = 1 group by task_detail_id) h on (a.id = h.task_detail_id)
|
where a.del_flag = 0
|
<if test="null != item.code and '' != item.code">
|
and a.code like CONCAT('%', #{item.code}, '%')
|
</if>
|
<if test="null != item.status">
|
and a.status = #{item.status}
|
</if>
|
order by a.execution_time desc
|
</select>
|
|
|
<select id="getDownloadTaskRecord" resultType="map">
|
select
|
c.`name`,
|
if(c.type = 1, '定时任务', '实时任务') as taskType,
|
DATE_FORMAT(b.execution_time, '%Y-%m-%d %H:%i:%s') as executionTime,
|
a.`status`,
|
a.vehicleNum,
|
a.companyName,
|
if(d.artificial_status = 1, d.sys_status, d.artificial_status) as vehiclesStatus,
|
d.image_url as imageUrl,
|
d.sys_status as sysStatus,
|
DATE_FORMAT(d.sys_create_time, '%Y-%m-%d %H:%i:%s') as sysCreateTime,
|
d.artificial_status as artificialStatus,
|
d.remark,
|
e.`name` as artificialUser,
|
DATE_FORMAT(d.artificial_create_time, '%Y-%m-%d %H:%i:%s') as artificialCreateTime
|
from t_task_detail_vehicles a
|
left join t_task_detail b on (a.task_detail_id = b.id)
|
left join t_patrol_task c on (a.patrol_task_id = c.id)
|
left join t_task_detail_vehicles_channel d on (a.id = d.task_detail_vehicles_id)
|
left join sys_user e on (d.artificial_user_id = e.id)
|
where b.del_flag = 0
|
<if test="null != ids and ids.size() > 0">
|
and b.id in
|
<foreach collection="ids" item="item" index="index" open="(" separator="," close=")">
|
#{item}
|
</foreach>
|
</if>
|
<if test="null != code and '' != code">
|
and b.code like CONCAT('%', #{code}, '%')
|
</if>
|
<if test="null != status">
|
and b.status = #{status}
|
</if>
|
order by b.execution_time desc
|
</select>
|
</mapper>
|