From 0a3eed02e78dfeeb7763a4b62992eefcd1f5a0ca Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期二, 23 十二月 2025 23:33:34 +0800
Subject: [PATCH] feat: 优化状态变更时实时推送
---
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskAssigneeServiceImpl.java | 16 ++++++++++++----
1 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskAssigneeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskAssigneeServiceImpl.java
index 1953b3d..f64a13c 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskAssigneeServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTaskAssigneeServiceImpl.java
@@ -74,7 +74,9 @@
return false;
}
try {
- List<Long> newAssigneeIds = newAssignees.stream().map(TaskCreateVO.AssigneeInfo::getUserId).collect(Collectors.toList());
+ //杩囨护鍒嗛厤浜轰笉瑕佸嚭鐜伴噸澶�
+
+ List<Long> newAssigneeIds = newAssignees.stream().map(TaskCreateVO.AssigneeInfo::getUserId).distinct().collect(Collectors.toList());
// 鏌ヨ鐜版湁鐨勬墽琛屼汉鍛�
List<SysTaskAssignee> existingAssignees = sysTaskAssigneeMapper.selectSysTaskAssigneeByTaskId(taskId);
@@ -83,11 +85,17 @@
List<Long> assigneesToDelete = existingAssignees.stream().map(SysTaskAssignee::getUserId)
.filter(id -> !newAssigneeIds.contains(id))
.collect(Collectors.toList());
+ Map<Long, TaskCreateVO.AssigneeInfo> addedAssignees = new HashMap<>();
+ for(TaskCreateVO.AssigneeInfo assigneeInfo:newAssignees){
+ Long userId = assigneeInfo.getUserId();
+ if(!existingAssigneeIds.contains(userId) && !addedAssignees.containsKey(userId)){
+ addedAssignees.put(userId, assigneeInfo);
+ }
+ }
// 鎵惧嚭闇�瑕佹坊鍔犵殑鎵ц浜猴紙鍦ㄦ柊鍒楄〃涓瓨鍦ㄤ絾鍦ㄦ暟鎹簱涓笉瀛樺湪锛�
- List<TaskCreateVO.AssigneeInfo> assigneesToAdd = newAssignees.stream()
- .filter(assignee -> !existingAssigneeIds.contains(assignee.getUserId()))
- .collect(Collectors.toList());
+ List<TaskCreateVO.AssigneeInfo> assigneesToAdd = new ArrayList<>(addedAssignees.values());
+ //鎴戜滑瑕佸assigneesToAdd杩涜鍘婚噸澶勭悊锛屽userId杩涜鍘婚噸
boolean hasChanges = !assigneesToDelete.isEmpty() || !assigneesToAdd.isEmpty();
--
Gitblit v1.9.1