From 6b48f5ac49de310c2e339b4e2fbfd2ccf42e1211 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 23 六月 2026 18:36:27 +0800
Subject: [PATCH] fix: 审批人出现重复问题

---
 src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java |   23 ++++++++++++++++++++---
 1 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
index 176973f..90ba6df 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveProcessServiceImpl.java
@@ -105,8 +105,15 @@
         if (CollectionUtils.isEmpty(sysUsers)) throw new RuntimeException("瀹℃牳鐢ㄦ埛涓嶅瓨鍦�");
         if (sysDept == null) throw new RuntimeException("閮ㄩ棬涓嶅瓨鍦�");
         if (sysUser == null) throw new RuntimeException("鐢宠浜轰笉瀛樺湪");
-        String today = LocalDate.now().format(DATE_FORMAT);
-        Long approveId = dailyRedisCounter.incrementAndGetByDb();
+        LocalDate targetDate = LocalDate.now();
+        if (!StringUtils.isEmpty(approveProcessVO.getApproveTime())) {
+            try {
+                targetDate = LocalDate.parse(approveProcessVO.getApproveTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+            } catch (Exception e) {
+            }
+        }
+        String today = targetDate.format(DATE_FORMAT);
+        Long approveId = dailyRedisCounter.incrementAndGetByDb(targetDate);
         String formattedCount = String.format("%03d", approveId);
         //娴佺▼ ID
         String approveID = today + formattedCount;
@@ -129,7 +136,15 @@
         approveProcess.setApproveStatus(0);
         approveProcess.setApproveDelete(0);
         approveProcess.setApproveType(approveProcessVO.getApproveType());
-        approveProcess.setCreateTime(LocalDateTime.now());
+        LocalDateTime createDateTime = LocalDateTime.now();
+        if (!StringUtils.isEmpty(approveProcessVO.getApproveTime())) {
+            try {
+                createDateTime = LocalDate.parse(approveProcessVO.getApproveTime(), DateTimeFormatter.ofPattern("yyyy-MM-dd")).atStartOfDay();
+            } catch (Exception e) {
+                // ignore
+            }
+        }
+        approveProcess.setCreateTime(createDateTime);
         approveProcess.setTenantId(approveProcessVO.getApproveDeptId());
         approveProcess.setApproveUserIds(approveProcessVO.getApproveUserIds());
         approveProcess.setApproveUserCurrentId(longList.get(0));
@@ -581,6 +596,7 @@
             approveProcess.setApproveStatus(approveGetAndUpdateVo.getApproveStatus());
         }
         approveProcess.setApproveUserIds(approveGetAndUpdateVo.getApproveUserIds());
+        approveProcess.setApproveUserNames(sysUsers.stream().map(SysUser::getNickName).collect(Collectors.joining(",")));
         updateById(approveProcess);
         //淇敼瀹℃壒浜�
         // 鍏堝垹闄� 鍚庢柊澧�
@@ -630,6 +646,7 @@
             approve.setApproveUserCurrentId(Long.parseLong(split[0]));
             approve.setApproveUserCurrentName(sysUsers.stream().filter(user -> user.getUserId().equals(Long.parseLong(split[0]))).collect(Collectors.toList()).get(0).getNickName());
         }
+        approve.setApproveUserNames(sysUsers.stream().map(SysUser::getNickName).collect(Collectors.joining(",")));
         updateById(approve);
         //淇敼瀹℃壒浜�
         // 鍏堝垹闄� 鍚庢柊澧�

--
Gitblit v1.9.3