huliguo
4 天以前 2494e3538d2ca2003f250b3f75283a9444442068
guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TaskDetailMapper.xml
@@ -9,16 +9,32 @@
         b.`name`,
         b.type,
         a.status,
         ifnull(c.num, 0) as vehicleNum,
         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)
      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)
      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 test="null != item.status and item.status.size() > 0">
         and a.status in
         <foreach collection="item.status" item="item" index="index" open="(" separator="," close=")">
               #{item}
         </foreach>
      </if>
      <if test="null != item.type">
         and b.type = #{item.type}
      </if>
      <if test="null != item.name and '' != item.name">
         and b.name like CONCAT('%', #{item.name}, '%')
      </if>
      <if test="null != item.startTime and null != item.endTime">
         and a.execution_time between #{item.startTime} and #{item.endTime}
      </if>
      order by a.execution_time desc
   </select>
   
   
@@ -29,26 +45,44 @@
         b.`name`,
         a.`status`,
         a.execution_time as executionTime,
         c.num as vehicleNum,
         d.num as unexecutedQuantity,
         e.num as offlineNum,
         f.num as normalNum,
         g.num as abnormalNum,
         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` = 3 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` = 2 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` = 4 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)
        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
                                                          <if test="null != item.sysStatus">
                                               and sys_status = #{item.sysStatus}
                                            </if>
                                                                                              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 test="null != item.status and item.status.size() > 0">
         and a.status in
         <foreach collection="item.status" item="item" index="index" open="(" separator="," close=")">
            #{item}
         </foreach>
      </if>
      <if test="null != item.type">
         and b.type = #{item.type}
      </if>
      <if test="null != item.name and '' != item.name">
         and b.name like CONCAT('%', #{item.name}, '%')
      </if>
      <if test="null != item.startTime and null != item.endTime">
         and a.execution_time between #{item.startTime} and #{item.endTime}
      </if>
      order by a.execution_time desc
   </select>
@@ -56,6 +90,7 @@
   
   <select id="getDownloadTaskRecord" resultType="map">
      select
      c.id,
      c.`name`,
      if(c.type = 1, '定时任务', '实时任务') as taskType,
      DATE_FORMAT(b.execution_time, '%Y-%m-%d %H:%i:%s') as executionTime,
@@ -73,7 +108,7 @@
      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 and d.video_channel = 1)
      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">
@@ -85,8 +120,27 @@
      <if test="null != code and '' != code">
         and b.code like CONCAT('%', #{code}, '%')
      </if>
      <if test="null != status">
         and b.status = #{status}
      <if test="null != status and status.size() > 0">
         and b.status in
         <foreach collection="status" item="item" index="index" open="(" separator="," close=")">
            #{item}
         </foreach>
      </if>
      <if test="null != sysStatus">
         and d.sys_status = #{sysStatus}
      </if>
      <if test="null != type">
         and c.type = #{type}
      </if>
      <if test="null != typeName and '' != typeName">
         and c.name like CONCAT('%', #{typeName}, '%')
      </if>
      <if test="startTime != null">
         and b.execution_time >= #{startTime}
      </if>
      <if test="endTime != null">
         and b.execution_time &lt; #{endTime}
      </if>
      order by b.execution_time desc
   </select>
</mapper>