| | |
| | | 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); |
| | | |
| | |
| | | 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(); |