diff --git a/common/src/main/java/com/sdm/common/feign/impl/data/FileSimulationMappingFeignClientImpl.java b/common/src/main/java/com/sdm/common/feign/impl/data/FileSimulationMappingFeignClientImpl.java index 892328ac..5492d343 100644 --- a/common/src/main/java/com/sdm/common/feign/impl/data/FileSimulationMappingFeignClientImpl.java +++ b/common/src/main/java/com/sdm/common/feign/impl/data/FileSimulationMappingFeignClientImpl.java @@ -43,8 +43,8 @@ public class FileSimulationMappingFeignClientImpl implements IFileSimulationMapp } @Override - public SdmResponse>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(GetFileSimulationMappingReq getFileSimulationMappingReq) { - SdmResponse>> response; + public SdmResponse>>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(GetFileSimulationMappingReq getFileSimulationMappingReq) { + SdmResponse>>> response; try { response = fileSimulationMappingFeignClient.batchGetFileSimulationMappingBySimulationPoolIdAndVersion(getFileSimulationMappingReq); log.info("查询工况库关系文件结果:"+ response); diff --git a/common/src/main/java/com/sdm/common/feign/inter/data/IFileSimulationMappingFeignClient.java b/common/src/main/java/com/sdm/common/feign/inter/data/IFileSimulationMappingFeignClient.java index b1b149cb..3211fc29 100644 --- a/common/src/main/java/com/sdm/common/feign/inter/data/IFileSimulationMappingFeignClient.java +++ b/common/src/main/java/com/sdm/common/feign/inter/data/IFileSimulationMappingFeignClient.java @@ -21,7 +21,7 @@ public interface IFileSimulationMappingFeignClient { SdmResponse> getFileSimulationMappingBySimulationPoolIdAndVersionAndTaskId(@RequestBody GetFileSimulationMappingReq getFileSimulationMappingReq); @PostMapping("/fileSimulationMapping/batchGetFileSimulationMappingBySimulationPoolIdAndVersion") - SdmResponse>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(@RequestBody GetFileSimulationMappingReq getFileSimulationMappingReq); + SdmResponse>>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(@RequestBody GetFileSimulationMappingReq getFileSimulationMappingReq); @PostMapping("/fileSimulationMapping/deleteFileSimulationMapping") SdmResponse deleteFileSimulationMapping(@RequestBody List deleteFileSimulationMappingReqs); diff --git a/data/src/main/java/com/sdm/data/controller/FileSimulationMappingController.java b/data/src/main/java/com/sdm/data/controller/FileSimulationMappingController.java index 32677783..dd920c6e 100644 --- a/data/src/main/java/com/sdm/data/controller/FileSimulationMappingController.java +++ b/data/src/main/java/com/sdm/data/controller/FileSimulationMappingController.java @@ -54,10 +54,10 @@ public class FileSimulationMappingController implements IFileSimulationMappingFe /** * 根据工况库 ID,版本号批量查询文件信息 * @param getFileSimulationMappingReq - * @return taskFileMapping; key: 工况任务 ID; value: 文件信息列表 + * @return taskFileMapping; key1: 工况任务 ID; key2: 文件类型(知识库、异常库); value: 文件信息 */ @PostMapping("/batchGetFileSimulationMappingBySimulationPoolIdAndVersion") - public SdmResponse>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(@RequestBody GetFileSimulationMappingReq getFileSimulationMappingReq){ + public SdmResponse>>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(@RequestBody GetFileSimulationMappingReq getFileSimulationMappingReq){ return fileSimulationMappingService.batchGetFileSimulationMappingBySimulationPoolIdAndVersion(getFileSimulationMappingReq); } diff --git a/data/src/main/java/com/sdm/data/service/IFileSimulationMappingService.java b/data/src/main/java/com/sdm/data/service/IFileSimulationMappingService.java index 35b5da3d..d53b9c7b 100644 --- a/data/src/main/java/com/sdm/data/service/IFileSimulationMappingService.java +++ b/data/src/main/java/com/sdm/data/service/IFileSimulationMappingService.java @@ -32,9 +32,9 @@ public interface IFileSimulationMappingService extends IService>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(GetFileSimulationMappingReq getFileSimulationMappingReq); + SdmResponse>>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(GetFileSimulationMappingReq getFileSimulationMappingReq); /** * 根据文件 id 查询绑定的工况 Pool 的 ID 和工况任务 ID diff --git a/data/src/main/java/com/sdm/data/service/impl/FileSimulationMappingServiceImpl.java b/data/src/main/java/com/sdm/data/service/impl/FileSimulationMappingServiceImpl.java index 68ec0389..4ec3ea90 100644 --- a/data/src/main/java/com/sdm/data/service/impl/FileSimulationMappingServiceImpl.java +++ b/data/src/main/java/com/sdm/data/service/impl/FileSimulationMappingServiceImpl.java @@ -91,11 +91,11 @@ public class FileSimulationMappingServiceImpl extends ServiceImpl>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(GetFileSimulationMappingReq getFileSimulationMappingReq) { + public SdmResponse>>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(GetFileSimulationMappingReq getFileSimulationMappingReq) { List list = this.lambdaQuery().eq(FileSimulationMapping::getSimulationPoolId, getFileSimulationMappingReq.getSimulationPoolId()) .eq(FileSimulationMapping::getSimulationPoolVersion, getFileSimulationMappingReq.getSimulationPoolVersion()) .list(); - Map> map = new HashMap<>(); + Map>> map = new HashMap<>(); if (list.isEmpty()) { SdmResponse response = SdmResponse.success(); response.setData(map); @@ -145,10 +145,27 @@ public class FileSimulationMappingServiceImpl extends ServiceImpl fileId2Filemeta = fileMetadataInfoResps.stream().collect(Collectors.toMap(FileMetadataInfoResp::getId, file -> file)); - // list 依据工况任务id simulationPoolTaskId 对fileId分组,用fileId2Filemeta替换分组的内容 - Map> simulationPoolTaskId2Files = list.stream().collect(Collectors.groupingBy(FileSimulationMapping::getSimulationPoolTaskId, - Collectors.mapping(fileSimu -> fileId2Filemeta.get(fileSimu.getFileId()), Collectors.toList()))); - + // list 依据工况任务 id simulationPoolTaskId 对 fileId 分组,用 fileId2Filemeta 替换分组的内容 + // 然后再对每个 taskId 下的文件列表按照父文件夹的 dirType 再次分组 + Map>> simulationPoolTaskId2Files = list.stream() + .collect(Collectors.groupingBy( + FileSimulationMapping::getSimulationPoolTaskId, + Collectors.mapping( + fileSimu -> fileId2Filemeta.get(fileSimu.getFileId()), + Collectors.groupingBy( + file -> { + // 通过 hierarchyResult.parentCacheMap 获取文件所在文件夹的 dirType + if (file == null || file.getParentId() == null) { + return null; // 根目录或无父级的文件 + } + FileMetadataInfo parentDir = hierarchyResult.getParentCacheMap().get(file.getParentId()); + return parentDir != null ? parentDir.getDirType() : null; + }, + Collectors.toList() + ) + ) + )); + return SdmResponse.success(simulationPoolTaskId2Files); }