feat: 任务改逻辑完善

dev_1.1.0
tp_caosong1 2025-01-06 09:46:09 +08:00
parent 534dbf1a8d
commit b4764d6f8d
1 changed files with 25 additions and 4 deletions

View File

@ -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;
}