From 55d3ff78f2998c26430e78ff41e92ebf404d6d61 Mon Sep 17 00:00:00 2001 From: zhuxinru Date: Tue, 3 Feb 2026 12:31:40 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=85=B6=E4=BB=96=E4=BA=A4=E4=BB=98?= =?UTF-8?q?=E7=89=A9=E6=96=87=E4=BB=B6=E4=B8=8A=E4=BC=A0=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=A4=B9=E5=92=8C=E6=9F=A5=E8=AF=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/entity/enums/FileBizTypeEnum.java | 57 +++++++++------ .../service/impl/DataAnalysisServiceImpl.java | 70 +++++++++++++------ .../controller/SimulationRunController.java | 6 ++ .../service/ISimulationRunService.java | 1 + .../impl/SimulationRunServiceImpl.java | 22 ++++-- .../system/model/req/user/GroupQueryReq.java | 3 + 6 files changed, 112 insertions(+), 47 deletions(-) diff --git a/common/src/main/java/com/sdm/common/entity/enums/FileBizTypeEnum.java b/common/src/main/java/com/sdm/common/entity/enums/FileBizTypeEnum.java index eb8ccbe7..feffffa9 100644 --- a/common/src/main/java/com/sdm/common/entity/enums/FileBizTypeEnum.java +++ b/common/src/main/java/com/sdm/common/entity/enums/FileBizTypeEnum.java @@ -8,111 +8,126 @@ public enum FileBizTypeEnum { * 模型文件 */ @Schema(description = "模型文件", example = "1") - MODEL_FILE(1), + MODEL_FILE(1, "模型文件"), /** * 仿真报告 */ @Schema(description = "仿真报告", example = "2") - REPORT_FILE(2), + REPORT_FILE(2, "仿真报告"), /** * 计算文件 */ - @Schema(description = "计算文件", example = "3") - COMPUTE_FILE(3), + @Schema(description = "计算模型", example = "3") + COMPUTE_FILE(3, "计算模型"), /** * 曲线文件 */ @Schema(description = "曲线文件", example = "4") - CURVE_FILE(4), + CURVE_FILE(4, "曲线文件"), /** * 云图文件 */ @Schema(description = "云图文件", example = "5") - CLOUD_FILE(5), + CLOUD_FILE(5, "云图文件"), /** * 流程脚本 */ @Schema(description = "流程脚本", example = "6") - FLOW_SCRIPT_FILE(6), + FLOW_SCRIPT_FILE(6, "流程脚本"), /** * 需求附件 */ @Schema(description = "需求附件", example = "7") - PROJECT_DEMAND_FILE(7), + PROJECT_DEMAND_FILE(7, "需求附件"), /** * 会议纪要-项目 */ @Schema(description = "会议纪要-项目", example = "8") - PROJECT_MEETING_FILE(8), + PROJECT_MEETING_FILE(8, "会议纪要-项目"), /** * 知识文件-项目 */ @Schema(description = "知识文件-项目", example = "9") - PROJECT_KNOWLEDGE_FILE(9), + PROJECT_KNOWLEDGE_FILE(9, "知识文件-项目"), /** * 附件-项目 */ @Schema(description = "附件-项目", example = "10") - PROJECT_ATTACHMENT_FILE(10), + PROJECT_ATTACHMENT_FILE(10, "附件-项目"), /** * 交付物文件 */ @Schema(description = "交付物文件", example = "11") - DELIVERABLE_FILE(11), + DELIVERABLE_FILE(11, "交付物文件"), /** * 试验结果文件 */ - @Schema(description = "试验结果文件", example = "12") - EXPERIMENT_FILE(12), + @Schema(description = "试验结果", example = "12") + EXPERIMENT_FILE(12, "试验结果"), /** * 3D模型 */ @Schema(description = "3D模型", example = "13") - MODEL_3D_FILE(13), + MODEL_3D_FILE(13, "3D模型"), /** * 试验数据闭环报告 */ @Schema(description = "试验数据闭环报告", example = "14") - EXPERIMENT_CLOSING_REPORT_FILE(14), + EXPERIMENT_CLOSING_REPORT_FILE(14, "试验数据闭环报告"), /** * 复盘报告 */ @Schema(description = "复盘报告", example = "15") - REVIEW_REPORT_FILE(15), + REVIEW_REPORT_FILE(15, "复盘报告"), /** * 项目文件 */ @Schema(description = "项目 文件", example = "101") - PROJECT_FILE(101), + PROJECT_FILE(101, "项目 文件"), /** * 学科文件 */ @Schema(description = "学科 文件", example = "102") - DISCIPLINE_MAJOR_FILE(102); + DISCIPLINE_MAJOR_FILE(102, "学科 文件"); int value; + String dirName; - FileBizTypeEnum(int i) { - value = i; + FileBizTypeEnum(int value, String dirName) { + this.value = value; + this.dirName = dirName; + } + + public String getDirName() { + return dirName; } public int getValue() { return value; } + + public static String getDirNameByValue(int value) { + for (FileBizTypeEnum fileBizTypeEnum : values()) { + if (fileBizTypeEnum.value == value) { + return fileBizTypeEnum.getDirName(); + } + } + return null; + } } diff --git a/data/src/main/java/com/sdm/data/service/impl/DataAnalysisServiceImpl.java b/data/src/main/java/com/sdm/data/service/impl/DataAnalysisServiceImpl.java index efb5886c..cf704171 100644 --- a/data/src/main/java/com/sdm/data/service/impl/DataAnalysisServiceImpl.java +++ b/data/src/main/java/com/sdm/data/service/impl/DataAnalysisServiceImpl.java @@ -6,6 +6,8 @@ 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.enums.FileBizTypeEnum; import com.sdm.common.entity.enums.NodeTypeEnum; import com.sdm.common.entity.req.export.FileAnalysisExportExcelFormat; import com.sdm.common.entity.req.export.FileAnalysisExportExcelParam; @@ -111,30 +113,58 @@ public class DataAnalysisServiceImpl implements IDataAnalysisService { } private SdmResponse>> getTaskLevelFile(GetSimulationTaskFileReq req, QueryBigFileReq queryBigFileReq) { - PageHelper.startPage(req.getCurrent(), req.getSize()); - List fileMetadataInfoList = fileMetadataInfoService.lambdaQuery().eq(FileMetadataInfo::getParentId, queryBigFileReq.getDirId()) - .eq(FileMetadataInfo::getFileType, req.getFileBizType()) + // level=task,查task下的交付物文件夹 再根据fileType查具体的云图文件、曲线文件夹下的文件 + List deliverableFileInfoList = fileMetadataInfoService.lambdaQuery() + .eq(FileMetadataInfo::getParentId, queryBigFileReq.getDirId()) + .eq(FileMetadataInfo::getOriginalName, CommonConstants.DELIVERABLE_DIR_NAME) .eq(FileMetadataInfo::getTenantId, ThreadLocalContext.getTenantId()) .list(); - PageInfo page = new PageInfo<>(fileMetadataInfoList); - long total = page.getTotal(); + if (CollectionUtils.isNotEmpty(deliverableFileInfoList)) { + // 交付物文件夹id + Long deliverableDirId = deliverableFileInfoList.get(0).getId(); + // 云图/曲线/文件夹名称 + String secondDirName = FileBizTypeEnum.getDirNameByValue(req.getFileBizType()); -// List resultCurveRespList = fileMetadataInfoList.stream().map(i -> { -// SimulationTaskResultCurveResp resultCurveResp = new SimulationTaskResultCurveResp(); -// BeanUtils.copyProperties(i,resultCurveResp); -// resultCurveResp.setFormatFileSize(FileSizeUtils.formatFileSize(BigDecimal.valueOf(i.getFileSize()))); -// return resultCurveResp; -// }).toList(); - List fileIdList = fileMetadataInfoList.stream().map(FileMetadataInfo::getId).toList(); - List finalResultList = hierarchyHelper.processFileHierarchy( - fileIdList, - SimulationTaskResultCurveResp.class, - FileMetadataHierarchyHelper::setFileHierarchy - ); + PageHelper.startPage(req.getCurrent(), req.getSize()); + List fileMetadataInfoList = fileMetadataInfoService.lambdaQuery() + .eq(FileMetadataInfo::getParentId, deliverableDirId) + .eq(FileMetadataInfo::getOriginalName, secondDirName) + .eq(FileMetadataInfo::getTenantId, ThreadLocalContext.getTenantId()) + .list(); + PageInfo page = new PageInfo<>(fileMetadataInfoList); + long total = page.getTotal(); - PageInfo page1 = new PageInfo<>(finalResultList); - page1.setTotal(total); - return PageUtils.getJsonObjectSdmResponse(finalResultList, page1); + List fileIdList = fileMetadataInfoList.stream().map(FileMetadataInfo::getId).toList(); + List finalResultList = hierarchyHelper.processFileHierarchy( + fileIdList, + SimulationTaskResultCurveResp.class, + FileMetadataHierarchyHelper::setFileHierarchy + ); + + PageInfo page1 = new PageInfo<>(finalResultList); + page1.setTotal(total); + return PageUtils.getJsonObjectSdmResponse(finalResultList, page1); + } + return PageUtils.getJsonObjectSdmResponse(new ArrayList<>(), new PageInfo<>()); + +// PageHelper.startPage(req.getCurrent(), req.getSize()); +// List fileMetadataInfoList = fileMetadataInfoService.lambdaQuery().eq(FileMetadataInfo::getParentId, queryBigFileReq.getDirId()) +// .eq(FileMetadataInfo::getFileType, req.getFileBizType()) +// .eq(FileMetadataInfo::getTenantId, ThreadLocalContext.getTenantId()) +// .list(); +// PageInfo page = new PageInfo<>(fileMetadataInfoList); +// long total = page.getTotal(); +// +// List fileIdList = fileMetadataInfoList.stream().map(FileMetadataInfo::getId).toList(); +// List finalResultList = hierarchyHelper.processFileHierarchy( +// fileIdList, +// SimulationTaskResultCurveResp.class, +// FileMetadataHierarchyHelper::setFileHierarchy +// ); +// +// PageInfo page1 = new PageInfo<>(finalResultList); +// page1.setTotal(total); +// return PageUtils.getJsonObjectSdmResponse(finalResultList, page1); } @Override diff --git a/project/src/main/java/com/sdm/project/controller/SimulationRunController.java b/project/src/main/java/com/sdm/project/controller/SimulationRunController.java index 6b298abe..682536c7 100644 --- a/project/src/main/java/com/sdm/project/controller/SimulationRunController.java +++ b/project/src/main/java/com/sdm/project/controller/SimulationRunController.java @@ -405,4 +405,10 @@ public class SimulationRunController implements ISimulationRunFeignClient { return runService.updateStatusByProcessInstanceId(processInstanceId, statusCode); } + @PostMapping("/batchAddFileInfoForTask") + @Operation(summary = "文件分片上传批量入库") + public SdmResponse> batchAddFileInfoForTask(@RequestBody UploadFilesReq req) { + return runService.batchAddFileInfoForTask(req); + } + } \ No newline at end of file diff --git a/project/src/main/java/com/sdm/project/service/ISimulationRunService.java b/project/src/main/java/com/sdm/project/service/ISimulationRunService.java index aec754ed..f4867f0d 100644 --- a/project/src/main/java/com/sdm/project/service/ISimulationRunService.java +++ b/project/src/main/java/com/sdm/project/service/ISimulationRunService.java @@ -119,4 +119,5 @@ public interface ISimulationRunService extends IService { */ SdmResponse updateStatusByProcessInstanceId(String processInstanceId, Integer statusCode); + SdmResponse> batchAddFileInfoForTask(UploadFilesReq req); } \ No newline at end of file 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 4fe4e30d..a71f0d7c 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 @@ -2108,7 +2108,7 @@ public class SimulationRunServiceImpl extends ServiceImpl>> expResponse = dataFeignClient.queryDir(queryDirReq); if (expResponse.getData() != null && CollectionUtils.isNotEmpty(expResponse.getData().getData())) { 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); + SdmResponse expResultResponse = createDir(null, parentDirId, dirName, DirTypeEnum.PROJECT_NODE_DIR.getValue(), null); parentId = Long.parseLong(expResultResponse.getData().toString()); } } else { @@ -2164,7 +2164,7 @@ public class SimulationRunServiceImpl extends ServiceImpl 0) { - Long parentId = getParentDirId(req.getTaskId()); + Long parentId = getParentDirId(req.getTaskId(), CommonConstants.EXPERIMENT_DIR_NAME); UploadFilesReq filesReq = new UploadFilesReq(); BeanUtils.copyProperties(req, filesReq); @@ -2459,4 +2459,14 @@ public class SimulationRunServiceImpl extends ServiceImpl> batchAddFileInfoForTask(UploadFilesReq req) { + // 3D模型、计算模型、图片文件、曲线文件、仿真报告 获取文件夹名 + String dirName = FileBizTypeEnum.getDirNameByValue(req.getFileType()); + // 获取文件夹id + Long parentId = getParentDirId(req.getUuid(), dirName); + req.setDirId(parentId); + return dataFeignClient.batchAddFileInfo(req); + } } diff --git a/system/src/main/java/com/sdm/system/model/req/user/GroupQueryReq.java b/system/src/main/java/com/sdm/system/model/req/user/GroupQueryReq.java index 3020f347..e978c3a6 100644 --- a/system/src/main/java/com/sdm/system/model/req/user/GroupQueryReq.java +++ b/system/src/main/java/com/sdm/system/model/req/user/GroupQueryReq.java @@ -11,6 +11,9 @@ public class GroupQueryReq extends BaseReq { @Schema(description = "用户组名称") private String groupName; + @Schema(description = "用户组编码") + private String groupCode; + @Schema(description = "租户ID") private Long tenantId; } \ No newline at end of file