diff --git a/project/src/main/java/com/sdm/project/model/po/PerformanceNodePo.java b/project/src/main/java/com/sdm/project/model/po/PerformanceNodePo.java index 663e50f6..0f43f0ad 100644 --- a/project/src/main/java/com/sdm/project/model/po/PerformanceNodePo.java +++ b/project/src/main/java/com/sdm/project/model/po/PerformanceNodePo.java @@ -105,5 +105,6 @@ public class PerformanceNodePo extends NodeAllBase { private String section = ""; private String group = ""; private String runId; + private String runName; } diff --git a/project/src/main/java/com/sdm/project/service/impl/SimulationRunServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/SimulationRunServiceImpl.java index ed922423..a5c8449b 100644 --- a/project/src/main/java/com/sdm/project/service/impl/SimulationRunServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/SimulationRunServiceImpl.java @@ -1767,7 +1767,9 @@ public class SimulationRunServiceImpl extends ServiceImpl 0 || CollectionUtils.size(req.getDeleteFileIds()) > 0 || ObjectUtils.isNotEmpty(req.getDeleteImageId())) { SdmResponse> batchAddResponse = SdmResponse.success(); diff --git a/project/src/main/java/com/sdm/project/service/impl/TaskServiceImpl.java b/project/src/main/java/com/sdm/project/service/impl/TaskServiceImpl.java index bd65cc51..35dad8d4 100644 --- a/project/src/main/java/com/sdm/project/service/impl/TaskServiceImpl.java +++ b/project/src/main/java/com/sdm/project/service/impl/TaskServiceImpl.java @@ -72,6 +72,7 @@ import javax.annotation.Resource; import java.io.File; import java.text.SimpleDateFormat; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -813,26 +814,69 @@ public class TaskServiceImpl implements ITaskService { if (!simulationTaskService.updateSimulationTask(req)) { return SdmResponse.failed("编辑任务失败"); } + + // 原来的仿真执行人 + List oldEMemberList = simulationTaskMemberService.lambdaQuery() + .eq(SimulationTaskMember::getTaskId, taskId) + .eq(SimulationTaskMember::getType, MemberTypeEnum.EXECUTOR.getCode()).list(); + List oldEMemberIdList = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(oldEMemberList)) { + oldEMemberIdList = oldEMemberList.stream().map(SimulationTaskMember::getUserId).toList(); + } + // 找出新的仿真执行人 + List currentUserIdList = new ArrayList<>(); if (StringUtils.isNotBlank(req.getEMemberList())) { String[] userIdArr = req.getEMemberList().split(","); - List longUserIdList = Arrays.stream(userIdArr).filter(s -> !s.isEmpty()).map(Long::valueOf).collect(Collectors.toList()); - List oldEMemberList = simulationTaskMemberService.lambdaQuery() - .eq(SimulationTaskMember::getTaskId, taskId) - .eq(SimulationTaskMember::getType, MemberTypeEnum.EXECUTOR.getCode()).list(); - if (CollectionUtils.isNotEmpty(oldEMemberList)) { - List oldEMemberIdList = oldEMemberList.stream().map(SimulationTaskMember::getUserId).collect(Collectors.toList()); - // 发送消息通知 - longUserIdList.forEach(i -> { - if (!oldEMemberIdList.contains(i)) { - sendMessage(MessageTemplateEnum.TASK_ISSUE, req.getNodeName(), String.valueOf(i), taskId); + currentUserIdList = Arrays.stream(userIdArr).filter(s -> !s.isEmpty()).map(Long::valueOf).collect(Collectors.toList()); + } + List newUserIdList = new ArrayList<>(); + if (CollectionUtils.isNotEmpty(currentUserIdList)) { + if (CollectionUtils.isEmpty(oldEMemberIdList)) { + newUserIdList = currentUserIdList; + }else { + for (Long currentUserId : currentUserIdList) { + if (!oldEMemberIdList.contains(currentUserId)) { + newUserIdList.add(currentUserId); } - }); - } - simulationTaskMemberService.deleteTaskMemberList(taskId, MemberTypeEnum.EXECUTOR.getCode()); - if (!simulationTaskMemberService.saveTaskMemberList(taskId, MemberTypeEnum.EXECUTOR.getCode(), longUserIdList)) { - return SdmResponse.failed("编辑仿真执行人失败"); + } } } + log.info("老用户id为:{}",oldEMemberIdList); + log.info("新用户id为:{}",newUserIdList); + if (CollectionUtils.isNotEmpty(newUserIdList)) { + simulationTaskMemberService.deleteTaskMemberList(taskId, MemberTypeEnum.EXECUTOR.getCode()); + if (CollectionUtils.isNotEmpty(currentUserIdList)) { + if (!simulationTaskMemberService.saveTaskMemberList(taskId, MemberTypeEnum.EXECUTOR.getCode(), currentUserIdList)) { + return SdmResponse.failed("编辑仿真执行人失败"); + } + } + // 发送消息通知 + newUserIdList.forEach(i -> { + sendMessage(MessageTemplateEnum.TASK_ISSUE, req.getNodeName(), String.valueOf(i), taskId); + }); + } + + +// if (StringUtils.isNotBlank(req.getEMemberList())) { +// String[] userIdArr = req.getEMemberList().split(","); +// List longUserIdList = Arrays.stream(userIdArr).filter(s -> !s.isEmpty()).map(Long::valueOf).collect(Collectors.toList()); +// List oldEMemberList = simulationTaskMemberService.lambdaQuery() +// .eq(SimulationTaskMember::getTaskId, taskId) +// .eq(SimulationTaskMember::getType, MemberTypeEnum.EXECUTOR.getCode()).list(); +// if (CollectionUtils.isNotEmpty(oldEMemberList)) { +// List oldEMemberIdList = oldEMemberList.stream().map(SimulationTaskMember::getUserId).collect(Collectors.toList()); +// // 发送消息通知 +// longUserIdList.forEach(i -> { +// if (!oldEMemberIdList.contains(i)) { +// sendMessage(MessageTemplateEnum.TASK_ISSUE, req.getNodeName(), String.valueOf(i), taskId); +// } +// }); +// } +// simulationTaskMemberService.deleteTaskMemberList(taskId, MemberTypeEnum.EXECUTOR.getCode()); +// if (!simulationTaskMemberService.saveTaskMemberList(taskId, MemberTypeEnum.EXECUTOR.getCode(), longUserIdList)) { +// return SdmResponse.failed("编辑仿真执行人失败"); +// } +// } // 新增拓展属性 List extraList = req.getExtras(); if (CollectionUtils.isEmpty(extraList)) { @@ -959,7 +1003,31 @@ public class TaskServiceImpl implements ITaskService { jsonObject.put("currentPage", req.getCurrent()); jsonObject.put("pageSize", req.getSize()); jsonObject.put("total", performanceNodePoList.size()); - jsonObject.put("data", performanceNodePoList.stream().skip((long) (req.getCurrent() - 1) * req.getSize()).limit(req.getSize()).toList()); + List performanceList = performanceNodePoList.stream().skip((long) (req.getCurrent() - 1) * req.getSize()).limit(req.getSize()).toList(); + if (CollectionUtils.isEmpty(performanceList)) { + jsonObject.put("data", new ArrayList<>()); + return SdmResponse.success(jsonObject); + } + List runIdList = performanceList.stream().filter(performance -> StringUtils.isNotBlank(performance.getRunId())).toList(); + Map runMap = Map.of(); + if (CollectionUtils.isNotEmpty(runIdList)){ + List runList = simulationRunService.lambdaQuery().in(SimulationRun::getUuid, runIdList).list(); + if (CollectionUtils.isNotEmpty(runList)) { + runMap = runList.stream().collect(Collectors.toMap(SimulationRun::getUuid, Function.identity())); + } + } + SimulationRun simulationRun; + for (PerformanceNodePo performanceNodePo : performanceList) { + if (StringUtils.isBlank(performanceNodePo.getRunId())) { + continue; + } + simulationRun = runMap.get(performanceNodePo.getRunId()); + if (ObjectUtils.isEmpty(simulationRun)) { + continue; + } + performanceNodePo.setRunName(simulationRun.getRunName()); + } + jsonObject.put("data", performanceList); return SdmResponse.success(jsonObject); }