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/service/impl/TaskDetailServiceImpl.java |    4 ++--
 guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITaskDetailService.java         |    3 ++-
 guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TaskDetailMapper.java               |    3 ++-
 guns-admin/src/main/java/com/stylefeng/guns/modular/api/PatrolTaskController.java                  |   21 +++++++++++++++++++--
 guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/TaskDetailMapper.xml        |    6 ++++++
 guns-admin/src/main/java/com/stylefeng/guns/modular/system/filter/WebFilterUtil.java               |    2 +-
 6 files changed, 32 insertions(+), 7 deletions(-)

diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/api/PatrolTaskController.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/api/PatrolTaskController.java
index ed734d2..f36d398 100644
--- a/guns-admin/src/main/java/com/stylefeng/guns/modular/api/PatrolTaskController.java
+++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/api/PatrolTaskController.java
@@ -26,6 +26,9 @@
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.time.format.DateTimeParseException;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -224,8 +227,10 @@
 			@ApiImplicitParam(value = "任务类型", name = "type", dataType = "int"),
 			@ApiImplicitParam(value = "任务名称", name = "name", dataType = "String"),
 			@ApiImplicitParam(value = "系统审核状态(1=未执行,2=正常,3=异常)", name = "sysStatus", dataType = "int"),
+			@ApiImplicitParam(value = "执行时间范围(开始时间)", name = "startTime", dataType = "String"),
+			@ApiImplicitParam(value = "执行时间范围(结束时间)", name = "endTime", dataType = "String"),
 	})
-	public void downloadTaskRecord(String ids, String code, String status,Integer type, String name, Integer sysStatus,HttpServletResponse response){
+	public void downloadTaskRecord(String ids, String code, String status,Integer type, String name, Integer sysStatus,String startTime ,String endTime,HttpServletResponse response){
 		List<String> id = null;
 		if(ToolUtil.isNotEmpty(ids)){
 			String[] split = ids.split(",");
@@ -239,7 +244,19 @@
 					.collect(Collectors.toList());
 
 		}
-		taskDetailService.downloadTaskRecord(id, code, statusList,sysStatus,type,name, response);
+		LocalDateTime startTime2 = null;
+		LocalDateTime endTime2 = null;
+
+		// 定义匹配前端时间格式的解析器(处理带毫秒和Z的情况)
+		DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+		try {
+			// 解析为LocalDateTime(Z代表UTC时区,这里直接按字符串处理)
+			startTime2 = LocalDateTime.parse(startTime, formatter);
+			endTime2 = LocalDateTime.parse(endTime, formatter);
+		} catch (DateTimeParseException e) {
+			System.err.println("时间格式错误 " );
+		}
+		taskDetailService.downloadTaskRecord(id, code, statusList,sysStatus,type,name,startTime2,endTime2,response);
 	}
 	
 	
diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TaskDetailMapper.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TaskDetailMapper.java
index 0f8731b..4609361 100644
--- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TaskDetailMapper.java
+++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/TaskDetailMapper.java
@@ -9,6 +9,7 @@
 import com.stylefeng.guns.modular.system.model.vo.TaskRecordListVo;
 import org.apache.ibatis.annotations.Param;
 
+import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Map;
 
@@ -42,5 +43,5 @@
 	 * @param status
 	 * @return
 	 */
-	List<Map<String, Object>> getDownloadTaskRecord(@Param("ids") List<String> ids, @Param("code") String code, @Param("status") List<Integer> status,@Param("sysStatus") Integer sysStatus,@Param("type") Integer type,@Param("typeName") String typeName);
+	List<Map<String, Object>> getDownloadTaskRecord(@Param("ids") List<String> ids, @Param("code") String code, @Param("status") List<Integer> status, @Param("sysStatus") Integer sysStatus, @Param("type") Integer type, @Param("typeName") String typeName,  @Param("startTime")LocalDateTime startTime, @Param("endTime") LocalDateTime endTime);
 }
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 a487a54..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
@@ -135,6 +135,12 @@
 		<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>
\ No newline at end of file
diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/filter/WebFilterUtil.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/filter/WebFilterUtil.java
index 79f66ce..bb715c0 100644
--- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/filter/WebFilterUtil.java
+++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/filter/WebFilterUtil.java
@@ -29,7 +29,7 @@
 @WebFilter(urlPatterns = "/*")
 public class WebFilterUtil implements Filter {
 	/**
-	 * 截止时间 25年6月底
+	 * 截止时间 25年8月底
 	 */
 	private Long thresholdValue =  1756655999000L;
 	
diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITaskDetailService.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITaskDetailService.java
index b61df18..6379d8f 100644
--- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITaskDetailService.java
+++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/ITaskDetailService.java
@@ -7,6 +7,7 @@
 import com.stylefeng.guns.modular.system.util.ResultUtil;
 
 import javax.servlet.http.HttpServletResponse;
+import java.time.LocalDateTime;
 import java.util.List;
 
 /**
@@ -77,6 +78,6 @@
 	 * @param status
 	 * @param response
 	 */
-	void downloadTaskRecord(List<String> ids, String code,List<Integer>   status,Integer sysStatus,Integer type,String typeName, HttpServletResponse response);
+	void downloadTaskRecord(List<String> ids, String code, List<Integer>   status, Integer sysStatus, Integer type, String typeName, LocalDateTime startTime,LocalDateTime endTime, HttpServletResponse response);
 
 }
diff --git a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TaskDetailServiceImpl.java b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TaskDetailServiceImpl.java
index 99c08c9..f9d1874 100644
--- a/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TaskDetailServiceImpl.java
+++ b/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/TaskDetailServiceImpl.java
@@ -531,8 +531,8 @@
 	}
 	*/
 	@Override
-	public void downloadTaskRecord(List<String> ids, String code, List<Integer> status,Integer sysStatus, Integer type,String typeName,HttpServletResponse response){
-		List<Map<String, Object>> mapList = this.baseMapper.getDownloadTaskRecord(ids, code, status, sysStatus, type, typeName);
+	public void downloadTaskRecord(List<String> ids, String code, List<Integer> status,Integer sysStatus, Integer type,String typeName,LocalDateTime startTime , LocalDateTime endTime,HttpServletResponse response){
+		List<Map<String, Object>> mapList = this.baseMapper.getDownloadTaskRecord(ids, code, status, sysStatus, type, typeName,startTime,endTime);
 		try {
 			HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
 			// 1. 按 name 分组(先获取所有唯一 name)

--
Gitblit v1.7.1