From 5fca9c4f75933fd4ea8c517bf6b1acc6a9f3d654 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期四, 21 五月 2026 13:52:56 +0800
Subject: [PATCH] 质量增加日志

---
 src/main/java/com/ruoyi/ai/tools/ApproveTodoTools.java |   18 ++++++++++++++++--
 1 files changed, 16 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/ruoyi/ai/tools/ApproveTodoTools.java b/src/main/java/com/ruoyi/ai/tools/ApproveTodoTools.java
index 233c459..fec0c21 100644
--- a/src/main/java/com/ruoyi/ai/tools/ApproveTodoTools.java
+++ b/src/main/java/com/ruoyi/ai/tools/ApproveTodoTools.java
@@ -76,12 +76,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 +125,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 +166,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());
@@ -707,6 +720,7 @@
             case 6 -> "鎶ヤ环瀹℃壒";
             case 7 -> "鍙戣揣瀹℃壒";
             case 8 -> "鍗遍櫓浣滀笟瀹℃壒";
+            case 9 -> "鍔炲叕鐢ㄥ搧瀹℃壒";
             default -> "绫诲瀷" + type;
         };
     }

--
Gitblit v1.9.3