diff --git a/data/src/test/java/com/sdm/data/dao/MapperCompatibilityTest.java b/data/src/test/java/com/sdm/data/dao/MapperCompatibilityTest.java index c99264e2..169d0d0d 100644 --- a/data/src/test/java/com/sdm/data/dao/MapperCompatibilityTest.java +++ b/data/src/test/java/com/sdm/data/dao/MapperCompatibilityTest.java @@ -93,7 +93,6 @@ public class MapperCompatibilityTest { entity.setFileSize(2048L); entity.setCreateTime(LocalDateTime.now()); entity.setUpdateTime(LocalDateTime.now()); - entity.setCreateYearMonth("2026-01"); int insertResult = fileStorageMapper.insert(entity); assertEquals(1, insertResult); diff --git a/data/src/test/resources/application-test.yml b/data/src/test/resources/application-test.yml index fc6c2b78..cbf84aab 100644 --- a/data/src/test/resources/application-test.yml +++ b/data/src/test/resources/application-test.yml @@ -4,6 +4,7 @@ spring: datasource: username: spdm password: Spdm@2026 + jdbc-url: jdbc:postgresql://192.168.65.161:25432/spdm_baseline?currentSchema=public&stringtype=unspecified jdbc-url: jdbc:postgresql://192.168.65.161:25432/spdm?currentSchema=public&stringtype=unspecified&TimeZone=Asia/Shanghai driver-class-name: org.postgresql.Driver hikari: @@ -20,6 +21,7 @@ spring: master: username: spdm password: Spdm@2026 + jdbc-url: jdbc:postgresql://192.168.65.161:25432/spdm_baseline?currentSchema=public&stringtype=unspecified jdbc-url: jdbc:postgresql://192.168.65.161:25432/spdm?currentSchema=public&stringtype=unspecified&TimeZone=Asia/Shanghai driver-class-name: org.postgresql.Driver slave: 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 a073ac63..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,6 +1767,9 @@ public class SimulationRunServiceImpl extends ServiceImpl 0 || CollectionUtils.size(req.getDeleteFileIds()) > 0 || ObjectUtils.isNotEmpty(req.getDeleteImageId())) { SdmResponse> batchAddResponse = SdmResponse.success(); @@ -1783,6 +1786,23 @@ public class SimulationRunServiceImpl extends ServiceImpl 0) { UploadFilesReq filesReq = new UploadFilesReq(); @@ -1798,7 +1818,6 @@ public class SimulationRunServiceImpl extends ServiceImpl StringUtils.equals(i.getSourceFileName(), req.getAddImageInfo().getFileName())).findFirst().ifPresent(i -> { - deleteFileIds.add(experimentResult.getImageId()); experimentResult.setImageId(i.getBusinessId()); }); } @@ -1807,26 +1826,11 @@ public class SimulationRunServiceImpl extends ServiceImpl 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); }