From 620bb4712a31791231c4381581f0f60088f079fe Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 27 五月 2026 14:03:45 +0800
Subject: [PATCH] Merge branch 'refs/heads/dev_New_pro' into dev_宁夏_英泽防锈
---
src/main/java/com/ruoyi/ai/tools/ApproveTodoTools.java | 32 ++++++++++++++++++++++++--------
1 files changed, 24 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/ruoyi/ai/tools/ApproveTodoTools.java b/src/main/java/com/ruoyi/ai/tools/ApproveTodoTools.java
index cd3e933..e947ec1 100644
--- a/src/main/java/com/ruoyi/ai/tools/ApproveTodoTools.java
+++ b/src/main/java/com/ruoyi/ai/tools/ApproveTodoTools.java
@@ -22,11 +22,10 @@
import java.io.IOException;
import java.math.BigDecimal;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.YearMonth;
+import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
@@ -46,7 +45,7 @@
private static final int DEFAULT_LIMIT = 10;
private static final int MAX_LIMIT = 20;
- private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd");
+ private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
private final ApproveProcessMapper approveProcessMapper;
@@ -76,12 +75,17 @@
@P(value = "瀹℃壒绫诲瀷缂栧彿锛屽彲涓嶄紶", required = false) Integer approveType,
@P(value = "鍏抽敭瀛楋紝鍙尮閰嶆祦绋嬬紪鍙枫�佹爣棰樸�佺敵璇蜂汉銆佸綋鍓嶅鎵逛汉", required = false) String keyword,
@P(value = "杩斿洖鏉℃暟锛岄粯璁�10锛屾渶澶�20", required = false) Integer limit,
- @P(value = "鏌ヨ鑼冨洿锛屽彲閫夊�硷細related銆乤pplicant銆乤pprover锛況elated 琛ㄧず褰撳墠鐢ㄦ埛鐩稿叧锛宎pplicant 琛ㄧず鎴戝彂璧风殑锛宎pprover 琛ㄧず寰呮垜澶勭悊鐨�", required = false) String scope) {
+ @P(value = "鏌ヨ鑼冨洿锛屽彲閫夊�硷細related銆乤pplicant銆乤pprover锛況elated 琛ㄧず褰撳墠鐢ㄦ埛鐩稿叧锛宎pplicant 琛ㄧず鎴戝彂璧风殑锛宎pprover 琛ㄧず寰呮垜澶勭悊鐨�", required = false) String scope,
+ @P(value = "寮�濮嬫棩鏈� yyyy-MM-dd锛屽彲涓嶄紶", required = false) String startDate,
+ @P(value = "缁撴潫鏃ユ湡 yyyy-MM-dd锛屽彲涓嶄紶", required = false) String endDate,
+ @P(value = "鏃堕棿鑼冨洿鎻忚堪锛屼緥濡� 浠婂ぉ銆佹湰鏈堛�佽繎30澶╋紝鍙笉浼�", required = false) String timeRange) {
LoginUser loginUser = currentLoginUser(memoryId);
Long userId = loginUser.getUserId();
Integer statusCode = parseStatus(status);
String normalizedScope = normalizeScope(scope);
+ boolean hasDateFilter = StringUtils.hasText(startDate) || StringUtils.hasText(endDate) || StringUtils.hasText(timeRange);
+ DateRange dateRange = hasDateFilter ? resolveDateRange(startDate, endDate, timeRange) : null;
LambdaQueryWrapper<ApproveProcess> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ApproveProcess::getApproveDelete, 0);
@@ -120,6 +124,11 @@
}
}
+ if (dateRange != null) {
+ wrapper.ge(ApproveProcess::getCreateTime, dateRange.start().atStartOfDay())
+ .lt(ApproveProcess::getCreateTime, dateRange.end().plusDays(1).atStartOfDay());
+ }
+
wrapper.orderByDesc(ApproveProcess::getCreateTime)
.last("limit " + normalizeLimit(limit));
@@ -156,7 +165,10 @@
"statusFilter", StringUtils.hasText(status) ? status : "all",
"approveType", approveType == null ? "" : approveType,
"keyword", keyword == null ? "" : keyword,
- "scope", normalizedScope
+ "scope", normalizedScope,
+ "timeRange", dateRange == null ? "all" : dateRange.label(),
+ "startDate", dateRange == null ? "" : dateRange.start().toString(),
+ "endDate", dateRange == null ? "" : dateRange.end().toString()
),
Map.of("columns", todoColumns(), "items", items),
Map.of());
@@ -727,7 +739,10 @@
}
private String formatDate(Date value) {
- return value == null ? "" : DATE_FORMAT.format(value);
+ if (value == null) {
+ return "";
+ }
+ return value.toInstant().atZone(ZoneId.systemDefault()).toLocalDate().format(DATE_FORMATTER);
}
private long countByStatus(List<ApproveProcess> processes, int status) {
@@ -811,8 +826,9 @@
private Date parseDate(String dateText) {
try {
- return DATE_FORMAT.parse(dateText);
- } catch (ParseException e) {
+ LocalDate localDate = LocalDate.parse(dateText, DATE_FORMATTER);
+ return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
+ } catch (Exception e) {
throw new IllegalArgumentException("鏃ユ湡鏍煎紡蹇呴』鏄� yyyy-MM-dd");
}
}
--
Gitblit v1.9.3