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 Integer isDistributedRes;
/**
* 参数来源
*/
private String parameterSource;
} }

View File

@ -504,7 +504,6 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService {
@Override @Override
public Map<String, List<EngineParamDetailDTO>> selectValueByMoreParam(EngineParamDetailRequest request) { public Map<String, List<EngineParamDetailDTO>> selectValueByMoreParam(EngineParamDetailRequest request) {
List<EngineParamDetailDTO> engineParamDetailDTOS = new ArrayList<>(); List<EngineParamDetailDTO> engineParamDetailDTOS = new ArrayList<>();
List<EngineParamDetailPojo> paramDetails = new ArrayList<>();
// 获取当前机型 // 获取当前机型
DataEntryEngineModelPojo model = bd.getBusinessDatabase() DataEntryEngineModelPojo model = bd.getBusinessDatabase()
@ -552,16 +551,21 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService {
List<EngineParamDetailPojo> pojoList = query.doQuery(EngineParamDetailPojo.class); List<EngineParamDetailPojo> pojoList = query.doQuery(EngineParamDetailPojo.class);
if (ObjectUtils.isNotEmpty(request.getFilledById()) && pojoList.isEmpty()) { if (ObjectUtils.isNotEmpty(request.getFilledById()) && pojoList.isEmpty()) {
query.eq("filled_by", request.getFilledById()); pojoList.addAll(
query.eq("major_version", model.getVersionNumber()); bd.getBusinessDatabase()
paramDetails.addAll(query.doQuery(EngineParamDetailPojo.class)); .eq("engine_model_id", model.getId())
} else { .in("subsystem_name", subsystemSet)
paramDetails.addAll(pojoList); .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> userList = new HashSet<>();
Set<String> parameterList = new HashSet<>(); Set<String> parameterList = new HashSet<>();
paramDetails.forEach(item -> { pojoList.forEach(item -> {
if (ObjectUtils.isNotEmpty(item.getFilledBy())) { if (ObjectUtils.isNotEmpty(item.getFilledBy())) {
userList.add(item.getFilledBy()); userList.add(item.getFilledBy());
} }
@ -581,7 +585,7 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService {
.collect(Collectors.toMap(ParameterPojo::getId, parameterPojo -> parameterPojo)); .collect(Collectors.toMap(ParameterPojo::getId, parameterPojo -> parameterPojo));
// 构建返回 // 构建返回
for (EngineParamDetailPojo detail : paramDetails) { for (EngineParamDetailPojo detail : pojoList) {
EngineParamDetailDTO engineParamDetailDTO = new EngineParamDetailDTO(); EngineParamDetailDTO engineParamDetailDTO = new EngineParamDetailDTO();
BeanUtils.copyProperties(detail, 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() Set<String> subsystemSet = new HashSet<>();
.map(subsystemType -> { Set<String> partsNameSet = new HashSet<>();
analysisRequest.getSubsystemParts().forEach(subsystemType -> {
if (subsystemType.split("-").length != 2) { if (subsystemType.split("-").length != 2) {
throw new CommonException("查询条件异常,需子系统-零部件名称,若零部件为空则传入“/”"); throw new CommonException("查询条件异常,需子系统-零部件名称,若零部件为空则传入“/”");
} }
String subsystem = subsystemType.split("-")[0]; String subsystem = subsystemType.split("-")[0];
String partsName = subsystemType.split("-")[1]; String partsName = subsystemType.split("-")[1];
return new AbstractMap.SimpleEntry<>(subsystem, partsName); subsystemSet.add(subsystem);
}) partsNameSet.add(partsName);
.collect(Collectors.toList()); });
//批量查询所有系统数据 //批量查询所有系统数据
List<EngineParamDetailPojo> tcPojos = new ArrayList<>(); List<EngineParamDetailPojo> systemDataList = 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(
bd.getBusinessDatabase() bd.getBusinessDatabase()
.eq("engine_model_id", analysisRequest.getEngineModelID()) .eq("engine_model_id", analysisRequest.getEngineModelID())
.eq("major_version", analysisRequest.getParameterVersion()) .eq("major_version", analysisRequest.getParameterVersion())
.eq("subsystem_name", subsystemPartsPair.getKey()) .in("subsystem_name", subsystemSet)
.eq("parts_name", subsystemPartsPair.getValue()) .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分类表") .eq("parameter_source", "TC分类表")
.doQuery(EngineParamDetailPojo.class) .doQuery(EngineParamDetailPojo.class)
); );
if (ObjectUtils.isNotEmpty(pojoList)) {
systemDataList.addAll(pojoList);
}
}
//批量查询所有TC数据 //批量查询所有TC数据
Map<String, List<EngineParamDetailPojo>> parameterMapTc = tcPojos.stream() Map<String, List<EngineParamDetailPojo>> parameterMapTc = tcPojos.stream()