feat: 任务改逻辑完善
parent
534dbf1a8d
commit
b4764d6f8d
|
@ -1,13 +1,11 @@
|
|||
package tech.unissense.pms.business.examine.task.service.impl;
|
||||
|
||||
import cn.hutool.core.date.LocalDateTimeUtil;
|
||||
import cn.hutool.core.lang.Assert;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import tech.unissense.pms.business.examine.config.domain.ExamineConfig;
|
||||
import tech.unissense.pms.business.examine.config.mapper.ExamineConfigMapper;
|
||||
import tech.unissense.pms.business.examine.config.service.ExamineConfigService;
|
||||
import tech.unissense.pms.business.examine.task.domain.ExamineTask;
|
||||
import tech.unissense.pms.business.examine.task.domain.TaskQueryDto;
|
||||
import tech.unissense.pms.business.examine.task.mapper.ExamineTaskMapper;
|
||||
|
@ -17,11 +15,9 @@ import tech.unissense.pms.business.examine.user.mapper.ExamineUserMapper;
|
|||
import tech.unissense.pms.common.annotation.DataScope;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.LocalTime;
|
||||
import java.time.ZoneId;
|
||||
import java.time.temporal.TemporalUnit;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
@ -34,6 +30,7 @@ public class TaskServiceImpl implements TaskService {
|
|||
|
||||
@Autowired
|
||||
private ExamineConfigMapper examineConfigMapper;
|
||||
|
||||
@Resource
|
||||
private ExamineUserMapper userMapper;
|
||||
|
||||
|
@ -70,6 +67,30 @@ public class TaskServiceImpl implements TaskService {
|
|||
@Override
|
||||
public ExamineTask updateTask(ExamineTask updatedTask) {
|
||||
examineTaskDao.updateTask(updatedTask);
|
||||
|
||||
List<Integer> userIdList = updatedTask.getUserIdList();
|
||||
ExamineUser examineUser = new ExamineUser();
|
||||
examineUser.setTaskId(updatedTask.getId());
|
||||
List<ExamineUser> existingUsers = userMapper.list(examineUser);
|
||||
List<Integer> existingUserIds = existingUsers.stream()
|
||||
.map(ExamineUser::getUserId)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 1. 删除与任务相关的已经不在 userIdList 中的用户记录
|
||||
existingUsers.stream()
|
||||
.filter(user -> !userIdList.contains(user.getUserId()))
|
||||
.forEach(user -> userMapper.deleteById(user.getId()));
|
||||
|
||||
// 2. 添加新的用户记录(只插入那些不在现有用户中的用户)
|
||||
userIdList.stream()
|
||||
.filter(userId -> !existingUserIds.contains(userId))
|
||||
.forEach(userId -> {
|
||||
ExamineUser newExamineUser = new ExamineUser();
|
||||
newExamineUser.setTaskId(updatedTask.getId());
|
||||
newExamineUser.setUserId(userId);
|
||||
userMapper.insert(newExamineUser);
|
||||
});
|
||||
|
||||
return updatedTask;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue