selectValueByMoreParam查询优化完善

This commit is contained in:
zjh 2026-04-27 14:09:38 +08:00
parent cbb7c5476d
commit 783737a2f9
3 changed files with 46 additions and 41 deletions

View File

@ -87,4 +87,9 @@ public class EngineParamDetailDTO {
*/
private Integer isDistributedRes;
/**
* 参数来源
*/
private String parameterSource;
}

View File

@ -504,7 +504,6 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService {
@Override
public Map<String, List<EngineParamDetailDTO>> selectValueByMoreParam(EngineParamDetailRequest request) {
List<EngineParamDetailDTO> engineParamDetailDTOS = new ArrayList<>();
List<EngineParamDetailPojo> paramDetails = new ArrayList<>();
// 获取当前机型
DataEntryEngineModelPojo model = bd.getBusinessDatabase()
@ -552,16 +551,21 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService {
List<EngineParamDetailPojo> pojoList = query.doQuery(EngineParamDetailPojo.class);
if (ObjectUtils.isNotEmpty(request.getFilledById()) && pojoList.isEmpty()) {
query.eq("filled_by", request.getFilledById());
query.eq("major_version", model.getVersionNumber());
paramDetails.addAll(query.doQuery(EngineParamDetailPojo.class));
} else {
paramDetails.addAll(pojoList);
pojoList.addAll(
bd.getBusinessDatabase()
.eq("engine_model_id", model.getId())
.in("subsystem_name", subsystemSet)
.in("parts_name", typeSet)
.eq("parameter_source", "数据平台手工录入")
.eq("filled_by", request.getFilledById())
.eq("major_version", model.getVersionNumber())
.doQuery(EngineParamDetailPojo.class)
);
}
Set<String> userList = new HashSet<>();
Set<String> parameterList = new HashSet<>();
paramDetails.forEach(item -> {
pojoList.forEach(item -> {
if (ObjectUtils.isNotEmpty(item.getFilledBy())) {
userList.add(item.getFilledBy());
}
@ -581,7 +585,7 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService {
.collect(Collectors.toMap(ParameterPojo::getId, parameterPojo -> parameterPojo));
// 构建返回
for (EngineParamDetailPojo detail : paramDetails) {
for (EngineParamDetailPojo detail : pojoList) {
EngineParamDetailDTO engineParamDetailDTO = new EngineParamDetailDTO();
BeanUtils.copyProperties(detail, engineParamDetailDTO);

View File

@ -425,41 +425,37 @@ public class TcDataQueryServiceImpl implements TcDataQueryService {
}
//解析所有子系统-零部件对
List<Map.Entry<String, String>> subsystemPartsPairs = analysisRequest.getSubsystemParts().stream()
.map(subsystemType -> {
Set<String> subsystemSet = new HashSet<>();
Set<String> partsNameSet = new HashSet<>();
analysisRequest.getSubsystemParts().forEach(subsystemType -> {
if (subsystemType.split("-").length != 2) {
throw new CommonException("查询条件异常,需子系统-零部件名称,若零部件为空则传入“/”");
}
String subsystem = subsystemType.split("-")[0];
String partsName = subsystemType.split("-")[1];
return new AbstractMap.SimpleEntry<>(subsystem, partsName);
})
.collect(Collectors.toList());
subsystemSet.add(subsystem);
partsNameSet.add(partsName);
});
//批量查询所有系统数据
List<EngineParamDetailPojo> tcPojos = new ArrayList<>();
List<EngineParamDetailPojo> systemDataList = new ArrayList<>();
for (Map.Entry<String, String> subsystemPartsPair : subsystemPartsPairs) {
List<EngineParamDetailPojo> pojoList = bd.getBusinessDatabase()
.eq("engine_model_id", analysisRequest.getEngineModelID())
.eq("major_version", analysisRequest.getParameterVersion())
.eq("subsystem_name", subsystemPartsPair.getKey())
.eq("parts_name", subsystemPartsPair.getValue())
.ne("parameter_source", "TC分类表")
.doQuery(EngineParamDetailPojo.class);
tcPojos.addAll(
List<EngineParamDetailPojo> systemDataList = new ArrayList<>(
bd.getBusinessDatabase()
.eq("engine_model_id", analysisRequest.getEngineModelID())
.eq("major_version", analysisRequest.getParameterVersion())
.eq("subsystem_name", subsystemPartsPair.getKey())
.eq("parts_name", subsystemPartsPair.getValue())
.in("subsystem_name", subsystemSet)
.in("parts_name", partsNameSet)
.ne("parameter_source", "TC分类表")
.doQuery(EngineParamDetailPojo.class)
);
List<EngineParamDetailPojo> tcPojos = new ArrayList<>(
bd.getBusinessDatabase()
.eq("engine_model_id", analysisRequest.getEngineModelID())
.eq("major_version", analysisRequest.getParameterVersion())
.in("subsystem_name", subsystemSet)
.in("parts_name", partsNameSet)
.eq("parameter_source", "TC分类表")
.doQuery(EngineParamDetailPojo.class)
);
if (ObjectUtils.isNotEmpty(pojoList)) {
systemDataList.addAll(pojoList);
}
}
//批量查询所有TC数据
Map<String, List<EngineParamDetailPojo>> parameterMapTc = tcPojos.stream()