This commit is contained in:
yangyang01000846
2026-01-19 16:09:01 +08:00
3 changed files with 88 additions and 17 deletions

View File

@@ -105,5 +105,6 @@ public class PerformanceNodePo extends NodeAllBase {
private String section = "";
private String group = "";
private String runId;
private String runName;
}

View File

@@ -1767,7 +1767,9 @@ public class SimulationRunServiceImpl extends ServiceImpl<SimulationRunMapper, S
// 传了新的图片文件
if (ObjectUtils.isNotEmpty(req.getAddImageInfo())) {
req.getAddFileInfoList().add(req.getAddImageInfo());
deleteFileIds.add(experimentResult.getImageId());
if (ObjectUtils.isNotEmpty(experimentResult.getImageId())) {
deleteFileIds.add(experimentResult.getImageId());
}
}
if (CollectionUtils.size(req.getAddFileInfoList()) > 0 || CollectionUtils.size(req.getDeleteFileIds()) > 0 || ObjectUtils.isNotEmpty(req.getDeleteImageId())) {
SdmResponse<List<BatchAddFileInfoResp>> batchAddResponse = SdmResponse.success();

View File

@@ -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<SimulationTaskMember> oldEMemberList = simulationTaskMemberService.lambdaQuery()
.eq(SimulationTaskMember::getTaskId, taskId)
.eq(SimulationTaskMember::getType, MemberTypeEnum.EXECUTOR.getCode()).list();
List<Long> oldEMemberIdList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(oldEMemberList)) {
oldEMemberIdList = oldEMemberList.stream().map(SimulationTaskMember::getUserId).toList();
}
// 找出新的仿真执行人
List<Long> currentUserIdList = new ArrayList<>();
if (StringUtils.isNotBlank(req.getEMemberList())) {
String[] userIdArr = req.getEMemberList().split(",");
List<Long> longUserIdList = Arrays.stream(userIdArr).filter(s -> !s.isEmpty()).map(Long::valueOf).collect(Collectors.toList());
List<SimulationTaskMember> oldEMemberList = simulationTaskMemberService.lambdaQuery()
.eq(SimulationTaskMember::getTaskId, taskId)
.eq(SimulationTaskMember::getType, MemberTypeEnum.EXECUTOR.getCode()).list();
if (CollectionUtils.isNotEmpty(oldEMemberList)) {
List<Long> 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<Long> 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<Long> longUserIdList = Arrays.stream(userIdArr).filter(s -> !s.isEmpty()).map(Long::valueOf).collect(Collectors.toList());
// List<SimulationTaskMember> oldEMemberList = simulationTaskMemberService.lambdaQuery()
// .eq(SimulationTaskMember::getTaskId, taskId)
// .eq(SimulationTaskMember::getType, MemberTypeEnum.EXECUTOR.getCode()).list();
// if (CollectionUtils.isNotEmpty(oldEMemberList)) {
// List<Long> 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<SimulationTaskExtra> 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<PerformanceNodePo> 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<PerformanceNodePo> runIdList = performanceList.stream().filter(performance -> StringUtils.isNotBlank(performance.getRunId())).toList();
Map<String, SimulationRun> runMap = Map.of();
if (CollectionUtils.isNotEmpty(runIdList)){
List<SimulationRun> 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);
}