From 2494e3538d2ca2003f250b3f75283a9444442068 Mon Sep 17 00:00:00 2001
From: huliguo <2023611923@qq.com>
Date: 星期一, 18 八月 2025 14:28:35 +0800
Subject: [PATCH] 增加导出条件

---
 guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TaskDetailMapper.xml |   65 +++++++++++++++++++++++++++++---
 1 files changed, 58 insertions(+), 7 deletions(-)

diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TaskDetailMapper.xml b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TaskDetailMapper.xml
index bb066cb..8f9a604 100644
--- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TaskDetailMapper.xml
+++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TaskDetailMapper.xml
@@ -9,15 +9,30 @@
 			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>
@@ -44,13 +59,30 @@
      	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)
+     	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>
@@ -58,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,
@@ -87,8 +120,26 @@
 		<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>

--
Gitblit v1.7.1