From df35e5ea2f75919cbb547499af9785c633958a5f Mon Sep 17 00:00:00 2001 From: zhuxinru Date: Tue, 3 Feb 2026 10:30:39 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E8=AF=95=E9=AA=8C=E7=BB=93=E6=9E=9C?= =?UTF-8?q?=E5=BB=BA=E6=96=87=E4=BB=B6=E5=A4=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../entity/constants/CommonConstants.java | 9 +++ .../impl/data/DataClientFeignClientImpl.java | 6 +- .../impl/SimulationRunServiceImpl.java | 60 ++++++++++++++++++- 3 files changed, 70 insertions(+), 5 deletions(-) diff --git a/common/src/main/java/com/sdm/common/entity/constants/CommonConstants.java b/common/src/main/java/com/sdm/common/entity/constants/CommonConstants.java index bba1f54a..a26656c2 100644 --- a/common/src/main/java/com/sdm/common/entity/constants/CommonConstants.java +++ b/common/src/main/java/com/sdm/common/entity/constants/CommonConstants.java @@ -14,4 +14,13 @@ public class CommonConstants { public static final String GENERAL_N = "N"; + /** + * 交付物文件夹名 + */ + public static final String DELIVERABLE_DIR_NAME = "交付物文件"; + /** + * 试验结果文件夹名 + */ + public static final String EXPERIMENT_DIR_NAME = "试验结果"; + } diff --git a/common/src/main/java/com/sdm/common/feign/impl/data/DataClientFeignClientImpl.java b/common/src/main/java/com/sdm/common/feign/impl/data/DataClientFeignClientImpl.java index e775d600..94d32e46 100644 --- a/common/src/main/java/com/sdm/common/feign/impl/data/DataClientFeignClientImpl.java +++ b/common/src/main/java/com/sdm/common/feign/impl/data/DataClientFeignClientImpl.java @@ -64,11 +64,11 @@ public class DataClientFeignClientImpl implements IDataFeignClient { SdmResponse>> response; try { response = dataClient.queryDir(req); - log.info("创建文响应件夹:"+ response); + log.info("查询文件夹响应:"+ response); return response; } catch (Exception e) { - log.error("创建文件夹失败", e); - return SdmResponse.failed("创建文件夹失败"); + log.error("查询文件夹失败", e); + return SdmResponse.failed("查询文件夹失败"); } } 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 50fb264c..d7b0250c 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 @@ -12,6 +12,7 @@ import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.sdm.common.common.SdmResponse; import com.sdm.common.common.ThreadLocalContext; +import com.sdm.common.entity.constants.CommonConstants; import com.sdm.common.entity.constants.NumberConstants; import com.sdm.common.entity.enums.*; import com.sdm.common.entity.flowable.dto.FlowElementDTO; @@ -757,6 +758,19 @@ public class SimulationRunServiceImpl extends ServiceImpl new UploadFilesReq(i.getFileName(), i.getFileSize(), i.getFileType())).toList()); // 批量存储文件信息,返回数据供第二步分片上传使用 SdmResponse> sdmResponse = dataFeignClient.batchAddFileInfo(filesReq); @@ -2116,6 +2133,43 @@ public class SimulationRunServiceImpl extends ServiceImpl>> response = dataFeignClient.queryDir(queryDirReq); + // 建过交付物文件夹直接取id + if (response.getData() != null && response.getData().getData() != null) { + FileMetadataInfoResp dirFileMetadataInfo = response.getData().getData().get(0); + Long parentDirId = dirFileMetadataInfo.getId(); + // 再查是否建过试验结果文件夹,没有则新建 + queryDirReq.setUuid(null); + queryDirReq.setFileId(parentDirId); + queryDirReq.setFileName(CommonConstants.EXPERIMENT_DIR_NAME); + SdmResponse>> expResponse = dataFeignClient.queryDir(queryDirReq); + if (expResponse.getData() != null && expResponse.getData().getData() != null) { + FileMetadataInfoResp expFileMetadataInfo = expResponse.getData().getData().get(0); + parentId = expFileMetadataInfo.getId(); + } else { + // 再建试验结果文件夹 + SdmResponse expResultResponse = createDir(null, parentDirId, CommonConstants.EXPERIMENT_DIR_NAME, DirTypeEnum.PROJECT_NODE_DIR.getValue(), null); + parentId = Long.parseLong(expResultResponse.getData().toString()); + } + } else { + // 没建过交付物文件夹则新建 + SdmResponse deliverableDirResponse = createDir(null, taskId, CommonConstants.DELIVERABLE_DIR_NAME, DirTypeEnum.PROJECT_NODE_DIR.getValue(), null); + Long parentDirId = Long.parseLong(deliverableDirResponse.getData().toString()); + // 再建试验结果文件夹 + SdmResponse expResultResponse = createDir(null, parentDirId, CommonConstants.EXPERIMENT_DIR_NAME, DirTypeEnum.PROJECT_NODE_DIR.getValue(), null); + parentId = Long.parseLong(expResultResponse.getData().toString()); + } + return parentId; + } + @Override public SdmResponse>> listExperimentResult(ExperimentResultReq req) { PageHelper.startPage(req.getCurrent(), req.getSize()); @@ -2207,9 +2261,11 @@ public class SimulationRunServiceImpl extends ServiceImpl 0) { + Long parentId = getParentDirId(req.getTaskId()); + UploadFilesReq filesReq = new UploadFilesReq(); BeanUtils.copyProperties(req, filesReq); - filesReq.setUuid(req.getTaskId()); + filesReq.setDirId(parentId); filesReq.setSourceFiles(req.getAddFileInfoList().stream().map(i -> new UploadFilesReq(i.getFileName(), i.getFileSize(), i.getFileType())).toList()); // 批量存储文件信息,返回数据供第二步分片上传使用 batchAddResponse = dataFeignClient.batchAddFileInfo(filesReq);