| | |
| | | private ApplicationEventPublisher eventPublisher; |
| | | |
| | | @Override |
| | | @Transactional |
| | | |
| | | public void saveTaskAssignees(Long taskId, List<TaskCreateVO.AssigneeInfo> assignees, String userName) { |
| | | if (assignees == null || assignees.isEmpty()) { |
| | | return; |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | |
| | | public boolean updateTaskAssignees(Long taskId, List<TaskCreateVO.AssigneeInfo> newAssignees, String userName) { |
| | | if (newAssignees == null) { |
| | | 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(); |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | |
| | | public int deleteAssigneesByTaskId(Long taskId) { |
| | | return sysTaskAssigneeMapper.deleteSysTaskAssigneeByTaskId(taskId); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | |
| | | public AjaxResult setAssigneeReady(Long taskId, Long userId) { |
| | | // 1. 查询执行人关联信息 |
| | | List<SysTaskAssignee> assignees = sysTaskAssigneeMapper.selectSysTaskAssigneeByTaskId(taskId); |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | |
| | | public AjaxResult cancelAssigneeReady(Long taskId, Long userId) { |
| | | // 查询执行人关联信息 |
| | | List<SysTaskAssignee> assignees = sysTaskAssigneeMapper.selectSysTaskAssigneeByTaskId(taskId); |