@@ -57,7 +57,7 @@ public class FileSimulationMappingController implements IFileSimulationMappingFe
|
||||
* @return taskFileMapping; key: 工况任务 ID; value: 文件信息列表
|
||||
*/
|
||||
@PostMapping("/batchGetFileSimulationMappingBySimulationPoolIdAndVersion")
|
||||
public SdmResponse<Map<String, Map<Integer, List<FileMetadataInfoResp>>>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(@RequestBody GetFileSimulationMappingReq getFileSimulationMappingReq){
|
||||
public SdmResponse<Map<String, List<FileMetadataInfoResp>>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(@RequestBody GetFileSimulationMappingReq getFileSimulationMappingReq){
|
||||
return fileSimulationMappingService.batchGetFileSimulationMappingBySimulationPoolIdAndVersion(getFileSimulationMappingReq);
|
||||
}
|
||||
|
||||
|
||||
@@ -32,9 +32,9 @@ public interface IFileSimulationMappingService extends IService<FileSimulationMa
|
||||
/**
|
||||
* 根据工况库 ID,版本号批量查询文件信息
|
||||
* @param getFileSimulationMappingReq
|
||||
* @return taskFileMapping; key: 工况任务 ID; value: 文件信息列表; innerKey: 文件夹 dirType; innerValue: 文件信息列表
|
||||
* @return taskFileMapping; key: 工况任务 ID; value: 文件信息列表
|
||||
*/
|
||||
SdmResponse<Map<String, Map<Integer, List<FileMetadataInfoResp>>>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(GetFileSimulationMappingReq getFileSimulationMappingReq);
|
||||
SdmResponse<Map<String, List<FileMetadataInfoResp>>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(GetFileSimulationMappingReq getFileSimulationMappingReq);
|
||||
|
||||
/**
|
||||
* 根据文件 id 查询绑定的工况 Pool 的 ID 和工况任务 ID
|
||||
|
||||
@@ -91,11 +91,11 @@ public class FileSimulationMappingServiceImpl extends ServiceImpl<FileSimulation
|
||||
}
|
||||
|
||||
@Override
|
||||
public SdmResponse<Map<String, Map<Integer, List<FileMetadataInfoResp>>>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(GetFileSimulationMappingReq getFileSimulationMappingReq) {
|
||||
public SdmResponse<Map<String, List<FileMetadataInfoResp>>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(GetFileSimulationMappingReq getFileSimulationMappingReq) {
|
||||
List<FileSimulationMapping> list = this.lambdaQuery().eq(FileSimulationMapping::getSimulationPoolId, getFileSimulationMappingReq.getSimulationPoolId())
|
||||
.eq(FileSimulationMapping::getSimulationPoolVersion, getFileSimulationMappingReq.getSimulationPoolVersion())
|
||||
.list();
|
||||
Map<String, Map<Integer, List<FileMetadataInfoResp>>> map = new HashMap<>();
|
||||
Map<String, List<FileMetadataInfoResp>> map = new HashMap<>();
|
||||
if (list.isEmpty()) {
|
||||
SdmResponse response = SdmResponse.success();
|
||||
response.setData(map);
|
||||
@@ -145,27 +145,10 @@ public class FileSimulationMappingServiceImpl extends ServiceImpl<FileSimulation
|
||||
});
|
||||
|
||||
Map<Long, FileMetadataInfoResp> fileId2Filemeta = fileMetadataInfoResps.stream().collect(Collectors.toMap(FileMetadataInfoResp::getId, file -> file));
|
||||
// list 依据工况任务 id simulationPoolTaskId 对 fileId 分组,用 fileId2Filemeta 替换分组的内容
|
||||
// 然后再对每个 taskId 下的文件列表按照父文件夹的 dirType 再次分组
|
||||
Map<String, Map<Integer, List<FileMetadataInfoResp>>> 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()
|
||||
)
|
||||
)
|
||||
));
|
||||
|
||||
// list 依据工况任务id simulationPoolTaskId 对fileId分组,用fileId2Filemeta替换分组的内容
|
||||
Map<String, List<FileMetadataInfoResp>> simulationPoolTaskId2Files = list.stream().collect(Collectors.groupingBy(FileSimulationMapping::getSimulationPoolTaskId,
|
||||
Collectors.mapping(fileSimu -> fileId2Filemeta.get(fileSimu.getFileId()), Collectors.toList())));
|
||||
|
||||
return SdmResponse.success(simulationPoolTaskId2Files);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user