From ddb58664f60d3d783f3acaab156b30f2f06eb108 Mon Sep 17 00:00:00 2001 From: zhuxinru Date: Tue, 24 Mar 2026 16:45:02 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E6=8C=87=E6=A0=87=E5=BD=92=E6=A1=A3?= =?UTF-8?q?=E4=BF=AE=E6=94=B9&=E5=85=B3=E9=94=AE=E7=BB=93=E6=9E=9C?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=E6=98=BE=E7=A4=BA=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sdm/project/model/req/KeyResultReq.java | 2 + .../impl/SimulationRunServiceImpl.java | 64 ++++++++++++++----- 2 files changed, 49 insertions(+), 17 deletions(-) diff --git a/project/src/main/java/com/sdm/project/model/req/KeyResultReq.java b/project/src/main/java/com/sdm/project/model/req/KeyResultReq.java index a5e1095c..07321c8c 100644 --- a/project/src/main/java/com/sdm/project/model/req/KeyResultReq.java +++ b/project/src/main/java/com/sdm/project/model/req/KeyResultReq.java @@ -135,6 +135,8 @@ public class KeyResultReq extends BaseReq { // ------------------归档关键结果使用----------------- @Schema(description = "关键结果uuid列表") private List keyResultIdList; + @Schema(description = "数值指标id列表") + private List performanceIdList; // -----------------归档输入输出文件使用--------------- @Schema(description = "文件id列表") 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 496c30e0..d2c62e55 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 @@ -31,6 +31,7 @@ import com.sdm.common.entity.resp.PageDataResp; import com.sdm.common.entity.resp.capability.FlowTemplateResp; import com.sdm.common.entity.resp.capability.ReportTemplateResp; import com.sdm.common.entity.resp.data.BatchAddFileInfoResp; +import com.sdm.common.entity.req.data.QueryFileReq; import com.sdm.common.entity.resp.data.FileMetadataInfoResp; import com.sdm.common.entity.resp.data.SimulationTaskResultCurveResp; import com.sdm.common.entity.resp.flowable.ProcessInstanceDetailResponse; @@ -1468,6 +1469,40 @@ public class SimulationRunServiceImpl extends ServiceImpl page = new PageInfo<>(runKeyResults); + + // 批量查询文件信息并回设name + if (CollectionUtils.isNotEmpty(runKeyResults)) { + // 提取所有fileId + List fileIdList = runKeyResults.stream() + .map(SimulationRunKeyResult::getFileId) + .filter(ObjectUtils::isNotEmpty) + .distinct() + .collect(Collectors.toList()); + + if (CollectionUtils.isNotEmpty(fileIdList)) { + // 批量查询文件信息 + QueryFileReq queryFileReq = new QueryFileReq(); + queryFileReq.setFileIdList(fileIdList); + SdmResponse> fileResponse = dataFeignClient.queryFileListByIdList(queryFileReq); + + if (fileResponse.isSuccess() && CollectionUtils.isNotEmpty(fileResponse.getData())) { + // 构建fileId -> originalName的映射 + Map fileIdToNameMap = fileResponse.getData().stream() + .collect(Collectors.toMap(FileMetadataInfoResp::getId, FileMetadataInfoResp::getOriginalName, (v1, v2) -> v1)); + + // 回设name + for (SimulationRunKeyResult keyResult : runKeyResults) { + if (keyResult.getFileId() != null) { + String originalName = fileIdToNameMap.get(keyResult.getFileId()); + if (originalName != null) { + keyResult.setName(originalName); + } + } + } + } + } + } + return PageUtils.getJsonObjectSdmResponse(runKeyResults, page); } @@ -2899,27 +2934,22 @@ public class SimulationRunServiceImpl extends ServiceImpl runPerformanceList = simulationPerformanceService.lambdaQuery() - .eq(SimulationPerformance::getRunId, req.getRunId()) + .in(SimulationPerformance::getId, req.getPerformanceIdList()) .list(); - Map resultValueMap = new HashMap<>(); - if (CollectionUtils.isNotEmpty(runPerformanceList)) { - resultValueMap = runPerformanceList.stream() - .filter(sp -> sp.getResultValue() != null) - .collect(Collectors.toMap(SimulationPerformance::getNodeCode, SimulationPerformance::getResultValue)); - } - List simulationTaskPerformances = simulationPerformanceService.lambdaQuery() + List performanceCodes = runPerformanceList.stream().map(SimulationPerformance::getNodeCode).collect(Collectors.toList()); + // 把对应的任务下的指标删除后新增 + simulationPerformanceService.lambdaUpdate() .eq(SimulationPerformance::getTaskId, simulationRun.getTaskId()) .isNull(SimulationPerformance::getRunId) - .list(); - if (CollectionUtils.isNotEmpty(simulationTaskPerformances)) { - for (SimulationPerformance simulationTaskPerformance : simulationTaskPerformances) { - simulationTaskPerformance.setResultValue(resultValueMap.get(simulationTaskPerformance.getNodeCode())); - } - simulationPerformanceService.updateBatchById(simulationTaskPerformances); - } + .in(SimulationPerformance::getNodeCode, performanceCodes).remove(); + runPerformanceList.forEach(simulationPerformance -> { + simulationPerformance.setRunId(null); + simulationPerformance.setId(null); + }); + simulationPerformanceService.saveBatch(runPerformanceList); } } return SdmResponse.success();