fix:标准场景库绑定异常

This commit is contained in:
2026-03-31 16:40:54 +08:00
parent e80e324426
commit bef55800c2
5 changed files with 30 additions and 13 deletions

View File

@@ -43,8 +43,8 @@ public class FileSimulationMappingFeignClientImpl implements IFileSimulationMapp
}
@Override
public SdmResponse<Map<String, List<FileMetadataInfoResp>>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(GetFileSimulationMappingReq getFileSimulationMappingReq) {
SdmResponse<Map<String, List<FileMetadataInfoResp>>> response;
public SdmResponse<Map<String, Map<Integer, List<FileMetadataInfoResp>>>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(GetFileSimulationMappingReq getFileSimulationMappingReq) {
SdmResponse<Map<String, Map<Integer, List<FileMetadataInfoResp>>>> response;
try {
response = fileSimulationMappingFeignClient.batchGetFileSimulationMappingBySimulationPoolIdAndVersion(getFileSimulationMappingReq);
log.info("查询工况库关系文件结果:"+ response);

View File

@@ -21,7 +21,7 @@ public interface IFileSimulationMappingFeignClient {
SdmResponse<List<FileMetadataInfoResp>> getFileSimulationMappingBySimulationPoolIdAndVersionAndTaskId(@RequestBody GetFileSimulationMappingReq getFileSimulationMappingReq);
@PostMapping("/fileSimulationMapping/batchGetFileSimulationMappingBySimulationPoolIdAndVersion")
SdmResponse<Map<String, List<FileMetadataInfoResp>>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(@RequestBody GetFileSimulationMappingReq getFileSimulationMappingReq);
SdmResponse<Map<String, Map<Integer, List<FileMetadataInfoResp>>>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(@RequestBody GetFileSimulationMappingReq getFileSimulationMappingReq);
@PostMapping("/fileSimulationMapping/deleteFileSimulationMapping")
SdmResponse deleteFileSimulationMapping(@RequestBody List<DeleteFileSimulationMappingReq> deleteFileSimulationMappingReqs);

View File

@@ -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<Map<String, List<FileMetadataInfoResp>>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(@RequestBody GetFileSimulationMappingReq getFileSimulationMappingReq){
public SdmResponse<Map<String, Map<Integer, List<FileMetadataInfoResp>>>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(@RequestBody GetFileSimulationMappingReq getFileSimulationMappingReq){
return fileSimulationMappingService.batchGetFileSimulationMappingBySimulationPoolIdAndVersion(getFileSimulationMappingReq);
}

View File

@@ -32,9 +32,9 @@ public interface IFileSimulationMappingService extends IService<FileSimulationMa
/**
* 根据工况库 ID版本号批量查询文件信息
* @param getFileSimulationMappingReq
* @return taskFileMapping; key: 工况任务 ID; value: 文件信息列表
* @return taskFileMapping; key: 工况任务 ID; value: 文件信息列表; innerKey: 文件夹 dirType; innerValue: 文件信息列表
*/
SdmResponse<Map<String, List<FileMetadataInfoResp>>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(GetFileSimulationMappingReq getFileSimulationMappingReq);
SdmResponse<Map<String, Map<Integer, List<FileMetadataInfoResp>>>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(GetFileSimulationMappingReq getFileSimulationMappingReq);
/**
* 根据文件 id 查询绑定的工况 Pool 的 ID 和工况任务 ID

View File

@@ -91,11 +91,11 @@ public class FileSimulationMappingServiceImpl extends ServiceImpl<FileSimulation
}
@Override
public SdmResponse<Map<String, List<FileMetadataInfoResp>>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(GetFileSimulationMappingReq getFileSimulationMappingReq) {
public SdmResponse<Map<String, Map<Integer, List<FileMetadataInfoResp>>>> batchGetFileSimulationMappingBySimulationPoolIdAndVersion(GetFileSimulationMappingReq getFileSimulationMappingReq) {
List<FileSimulationMapping> list = this.lambdaQuery().eq(FileSimulationMapping::getSimulationPoolId, getFileSimulationMappingReq.getSimulationPoolId())
.eq(FileSimulationMapping::getSimulationPoolVersion, getFileSimulationMappingReq.getSimulationPoolVersion())
.list();
Map<String, List<FileMetadataInfoResp>> map = new HashMap<>();
Map<String, Map<Integer, List<FileMetadataInfoResp>>> map = new HashMap<>();
if (list.isEmpty()) {
SdmResponse response = SdmResponse.success();
response.setData(map);
@@ -145,10 +145,27 @@ public class FileSimulationMappingServiceImpl extends ServiceImpl<FileSimulation
});
Map<Long, FileMetadataInfoResp> fileId2Filemeta = fileMetadataInfoResps.stream().collect(Collectors.toMap(FileMetadataInfoResp::getId, file -> file));
// 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())));
// 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()
)
)
));
return SdmResponse.success(simulationPoolTaskId2Files);
}