From 1dc576d43548b31eeb81cc96046c181b774bac4d Mon Sep 17 00:00:00 2001 From: zjh <15615273395@163.com> Date: Fri, 3 Apr 2026 17:54:13 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E7=BA=BF=E7=89=88=E6=9C=AC-3.13?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../listener/EngineModelListener.java | 63 ++++--- .../impl/DataEntryEngineModelServiceImpl.java | 171 ++++++++++++------ .../service/impl/ParameterServiceImpl.java | 3 +- 3 files changed, 161 insertions(+), 76 deletions(-) diff --git a/src/main/java/com/xdap/self_development/listener/EngineModelListener.java b/src/main/java/com/xdap/self_development/listener/EngineModelListener.java index 8f84e2d..53dff33 100644 --- a/src/main/java/com/xdap/self_development/listener/EngineModelListener.java +++ b/src/main/java/com/xdap/self_development/listener/EngineModelListener.java @@ -140,28 +140,49 @@ public class EngineModelListener implements ReadListener modelPojos, List parameters) { List engineParamDetailPojos = new ArrayList<>(); for (DataEntryEngineModelPojo modelPojo : modelPojos) { - for (ParameterPojo parameter : parameters) { - - EngineParamDetailPojo engineParamDetailPojo = new EngineParamDetailPojo(); - engineParamDetailPojo.setEngineModelId(modelPojo.getId()); - engineParamDetailPojo.setParameterId(parameter.getId()); - engineParamDetailPojo.setSubsystemName(parameter.getSubsystemName()); - engineParamDetailPojo.setParameterType(parameter.getParameterType()); - engineParamDetailPojo.setPartsName(parameter.getPartsName()); - engineParamDetailPojo.setParameterName(parameter.getParameterName()); - engineParamDetailPojo.setParameterSource(parameter.getParameterSource()); - engineParamDetailPojo.setDepartment(parameter.getDepartment()); - engineParamDetailPojo.setMajorVersion(VERSION_NUMBER); - engineParamDetailPojo.setVersionStatus(ParamValueVersionEnum.DRAFT.getCode()); - engineParamDetailPojo.setCreatedBy(usersPojo.getId()); - engineParamDetailPojo.setLastUpdatedBy(""); - engineParamDetailPojo.setLastUpdateDate(Timestamp.valueOf(LocalDateTime.now())); - engineParamDetailPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); - engineParamDetailPojo.setIsDistributedRes(Objects.equals(parameter.getParameterSource(), "数据平台手工录入") ? 0 : 2); - engineParamDetailPojo.setIsDistributedFilled(Objects.equals(parameter.getParameterSource(), "数据平台手工录入") ? 0 : 2); - engineParamDetailPojos.add(engineParamDetailPojo); + if (Objects.equals(modelPojo.getYcOrOth(), "玉柴")) { + for (ParameterPojo parameter : parameters) { + EngineParamDetailPojo engineParamDetailPojo = new EngineParamDetailPojo(); + engineParamDetailPojo.setEngineModelId(modelPojo.getId()); + engineParamDetailPojo.setParameterId(parameter.getId()); + engineParamDetailPojo.setSubsystemName(parameter.getSubsystemName()); + engineParamDetailPojo.setParameterType(parameter.getParameterType()); + engineParamDetailPojo.setPartsName(parameter.getPartsName()); + engineParamDetailPojo.setParameterName(parameter.getParameterName()); + engineParamDetailPojo.setParameterSource(parameter.getParameterSource()); + engineParamDetailPojo.setDepartment(parameter.getDepartment()); + engineParamDetailPojo.setMajorVersion(VERSION_NUMBER); + engineParamDetailPojo.setVersionStatus(ParamValueVersionEnum.DRAFT.getCode()); + engineParamDetailPojo.setCreatedBy(usersPojo.getId()); + engineParamDetailPojo.setLastUpdatedBy(""); + engineParamDetailPojo.setLastUpdateDate(Timestamp.valueOf(LocalDateTime.now())); + engineParamDetailPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); + engineParamDetailPojo.setIsDistributedRes(Objects.equals(parameter.getParameterSource(), "数据平台手工录入") ? 0 : 2); + engineParamDetailPojo.setIsDistributedFilled(Objects.equals(parameter.getParameterSource(), "数据平台手工录入") ? 0 : 2); + engineParamDetailPojos.add(engineParamDetailPojo); + } + } else { + for (ParameterPojo parameter : parameters) { + EngineParamDetailPojo engineParamDetailPojo = new EngineParamDetailPojo(); + engineParamDetailPojo.setEngineModelId(modelPojo.getId()); + engineParamDetailPojo.setParameterId(parameter.getId()); + engineParamDetailPojo.setSubsystemName(parameter.getSubsystemName()); + engineParamDetailPojo.setParameterType(parameter.getParameterType()); + engineParamDetailPojo.setPartsName(parameter.getPartsName()); + engineParamDetailPojo.setParameterName(parameter.getParameterName()); + engineParamDetailPojo.setParameterSource("数据平台手工录入"); + engineParamDetailPojo.setDepartment(parameter.getDepartment()); + engineParamDetailPojo.setMajorVersion(VERSION_NUMBER); + engineParamDetailPojo.setVersionStatus(ParamValueVersionEnum.DRAFT.getCode()); + engineParamDetailPojo.setCreatedBy(usersPojo.getId()); + engineParamDetailPojo.setLastUpdatedBy(""); + engineParamDetailPojo.setLastUpdateDate(Timestamp.valueOf(LocalDateTime.now())); + engineParamDetailPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); + engineParamDetailPojo.setIsDistributedRes(0); + engineParamDetailPojo.setIsDistributedFilled(0); + engineParamDetailPojos.add(engineParamDetailPojo); + } } - } businessDatabase.getBusinessDatabase().doBatchInsert(engineParamDetailPojos); } diff --git a/src/main/java/com/xdap/self_development/service/impl/DataEntryEngineModelServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/DataEntryEngineModelServiceImpl.java index f10c8a9..9c2837e 100644 --- a/src/main/java/com/xdap/self_development/service/impl/DataEntryEngineModelServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/DataEntryEngineModelServiceImpl.java @@ -284,27 +284,49 @@ public class DataEntryEngineModelServiceImpl implements DataEntryEngineModelServ 参数值暂时放空 */ List engineParamDetailPojos = new ArrayList<>(); + if (Objects.equals(modelPojo.getYcOrOth(), "玉柴")) { + for (ParameterPojo parameter : parameters) { + EngineParamDetailPojo engineParamDetailPojo = new EngineParamDetailPojo(); + engineParamDetailPojo.setEngineModelId(modelPojo.getId()); + engineParamDetailPojo.setParameterId(parameter.getId()); + engineParamDetailPojo.setSubsystemName(parameter.getSubsystemName()); + engineParamDetailPojo.setParameterType(parameter.getParameterType()); + engineParamDetailPojo.setPartsName(parameter.getPartsName()); + engineParamDetailPojo.setParameterName(parameter.getParameterName()); + engineParamDetailPojo.setDepartment(parameter.getDepartment()); + engineParamDetailPojo.setParameterSource(parameter.getParameterSource()); + engineParamDetailPojo.setMajorVersion(newVersionNum); + engineParamDetailPojo.setVersionStatus(ParamValueVersionEnum.DRAFT.getCode()); + engineParamDetailPojo.setCreatedBy(ObjectUtils.isNotEmpty(xdapUsersPojo) ? xdapUsersPojo.getId() : null); + engineParamDetailPojo.setLastUpdatedBy(""); + engineParamDetailPojo.setLastUpdateDate(Timestamp.valueOf(LocalDateTime.now())); + engineParamDetailPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); + engineParamDetailPojo.setIsDistributedRes(Objects.equals(parameter.getParameterSource(), "数据平台手工录入") ? 0 : 2); + engineParamDetailPojo.setIsDistributedFilled(Objects.equals(parameter.getParameterSource(), "数据平台手工录入") ? 0 : 2); + engineParamDetailPojos.add(engineParamDetailPojo); + } + } else { + for (ParameterPojo parameter : parameters) { + EngineParamDetailPojo engineParamDetailPojo = new EngineParamDetailPojo(); + engineParamDetailPojo.setEngineModelId(modelPojo.getId()); + engineParamDetailPojo.setParameterId(parameter.getId()); + engineParamDetailPojo.setSubsystemName(parameter.getSubsystemName()); + engineParamDetailPojo.setParameterType(parameter.getParameterType()); + engineParamDetailPojo.setPartsName(parameter.getPartsName()); + engineParamDetailPojo.setParameterName(parameter.getParameterName()); + engineParamDetailPojo.setDepartment(parameter.getDepartment()); + engineParamDetailPojo.setParameterSource("数据平台手工录入"); + engineParamDetailPojo.setMajorVersion(newVersionNum); + engineParamDetailPojo.setVersionStatus(ParamValueVersionEnum.DRAFT.getCode()); + engineParamDetailPojo.setCreatedBy(ObjectUtils.isNotEmpty(xdapUsersPojo) ? xdapUsersPojo.getId() : null); + engineParamDetailPojo.setLastUpdatedBy(""); + engineParamDetailPojo.setLastUpdateDate(Timestamp.valueOf(LocalDateTime.now())); + engineParamDetailPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); + engineParamDetailPojo.setIsDistributedRes(0); + engineParamDetailPojo.setIsDistributedFilled(0); + engineParamDetailPojos.add(engineParamDetailPojo); - for (ParameterPojo parameter : parameters) { - EngineParamDetailPojo engineParamDetailPojo = new EngineParamDetailPojo(); - engineParamDetailPojo.setEngineModelId(modelPojo.getId()); - engineParamDetailPojo.setParameterId(parameter.getId()); - engineParamDetailPojo.setSubsystemName(parameter.getSubsystemName()); - engineParamDetailPojo.setParameterType(parameter.getParameterType()); - engineParamDetailPojo.setPartsName(parameter.getPartsName()); - engineParamDetailPojo.setParameterName(parameter.getParameterName()); - engineParamDetailPojo.setDepartment(parameter.getDepartment()); - engineParamDetailPojo.setParameterSource(parameter.getParameterSource()); - engineParamDetailPojo.setMajorVersion(newVersionNum); - engineParamDetailPojo.setVersionStatus(ParamValueVersionEnum.DRAFT.getCode()); - engineParamDetailPojo.setCreatedBy(ObjectUtils.isNotEmpty(xdapUsersPojo) ? xdapUsersPojo.getId() : null); - engineParamDetailPojo.setLastUpdatedBy(""); - engineParamDetailPojo.setLastUpdateDate(Timestamp.valueOf(LocalDateTime.now())); - engineParamDetailPojo.setCreationDate(Timestamp.valueOf(LocalDateTime.now())); - engineParamDetailPojo.setIsDistributedRes(Objects.equals(parameter.getParameterSource(), "数据平台手工录入") ? 0 : 2); - engineParamDetailPojo.setIsDistributedFilled(Objects.equals(parameter.getParameterSource(), "数据平台手工录入") ? 0 : 2); - engineParamDetailPojos.add(engineParamDetailPojo); - + } } bd.getBusinessDatabase().doBatchInsert(engineParamDetailPojos); } @@ -525,7 +547,7 @@ public class DataEntryEngineModelServiceImpl implements DataEntryEngineModelServ ); // 验证是否需要更新 - if (modelParams.size() == parameters.size() && isSameParams(modelParams, parameters)) { + if (modelParams.size() == parameters.size() && isSameParams(modelParams, parameters, model)) { throw new CommonException("当前版本机型参数已同步最新模板参数"); } @@ -534,31 +556,59 @@ public class DataEntryEngineModelServiceImpl implements DataEntryEngineModelServ List toInsertParams = new ArrayList<>(); // 更新机型版本 model.setVersionNumber(model.getVersionNumber() + 1); - parameters.forEach(parameter -> { - // 检查老机型参数中是否存在新版本参数 - // 存在则更新 - if (modelParamIds.contains(parameter.getId())) { - // 拿到老参数 - EngineParamDetailPojo detailPojo = modelParamMap.get(parameter.getId()); - detailPojo.setId(null); - detailPojo.setSubsystemName(parameter.getSubsystemName()); - detailPojo.setDepartment(parameter.getDepartment()); - detailPojo.setPartsName(parameter.getPartsName()); - detailPojo.setParameterName(parameter.getParameterName()); - detailPojo.setParameterSource(parameter.getParameterSource()); - detailPojo.setParameterType(parameter.getParameterType()); - detailPojo.setIsDistributedFilled("数据平台手工录入".equals(parameter.getParameterSource()) ? 0 : 2); - detailPojo.setIsDistributedRes("数据平台手工录入".equals(parameter.getParameterSource()) ? 0 : 2); - detailPojo.setResponsiblePersonId(null); - detailPojo.setFilledBy(null); - detailPojo.setMajorVersion(model.getVersionNumber()); - toInsertParams.add(detailPojo); - } - // 不存在则新增 - else { - toInsertParams.add(getEngineParamDetailPojo(parameter, model)); - } - }); + if (Objects.equals(model.getYcOrOth(), "玉柴")) { + parameters.forEach(parameter -> { + // 检查老机型参数中是否存在新版本参数 + // 存在则更新 + if (modelParamIds.contains(parameter.getId())) { + // 拿到老参数 + EngineParamDetailPojo detailPojo = modelParamMap.get(parameter.getId()); + detailPojo.setId(null); + detailPojo.setSubsystemName(parameter.getSubsystemName()); + detailPojo.setDepartment(parameter.getDepartment()); + detailPojo.setPartsName(parameter.getPartsName()); + detailPojo.setParameterName(parameter.getParameterName()); + detailPojo.setParameterSource(parameter.getParameterSource()); + detailPojo.setParameterType(parameter.getParameterType()); + detailPojo.setIsDistributedFilled("数据平台手工录入".equals(parameter.getParameterSource()) ? 0 : 2); + detailPojo.setIsDistributedRes("数据平台手工录入".equals(parameter.getParameterSource()) ? 0 : 2); + detailPojo.setResponsiblePersonId(null); + detailPojo.setFilledBy(null); + detailPojo.setMajorVersion(model.getVersionNumber()); + toInsertParams.add(detailPojo); + } + // 不存在则新增 + else { + toInsertParams.add(getEngineParamDetailPojo(parameter, model)); + } + }); + } else { + parameters.forEach(parameter -> { + // 检查老机型参数中是否存在新版本参数 + // 存在则更新 + if (modelParamIds.contains(parameter.getId())) { + // 拿到老参数 + EngineParamDetailPojo detailPojo = modelParamMap.get(parameter.getId()); + detailPojo.setId(null); + detailPojo.setSubsystemName(parameter.getSubsystemName()); + detailPojo.setDepartment(parameter.getDepartment()); + detailPojo.setPartsName(parameter.getPartsName()); + detailPojo.setParameterName(parameter.getParameterName()); + detailPojo.setParameterSource("数据平台手工录入"); + detailPojo.setParameterType(parameter.getParameterType()); + detailPojo.setIsDistributedFilled(0); + detailPojo.setIsDistributedRes(0); + detailPojo.setResponsiblePersonId(null); + detailPojo.setFilledBy(null); + detailPojo.setMajorVersion(model.getVersionNumber()); + toInsertParams.add(detailPojo); + } + // 不存在则新增 + else { + toInsertParams.add(getEngineParamDetailPojo(parameter, model)); + } + }); + } // 更新机型 bd.getBusinessDatabase() @@ -587,7 +637,11 @@ public class DataEntryEngineModelServiceImpl implements DataEntryEngineModelServ return model.getVersionNumber(); } - private boolean isSameParams(List modelParams, List parameters) { + private boolean isSameParams( + List modelParams, + List parameters, + DataEntryEngineModelPojo model + ) { Map modelParamMap = modelParams.stream() .collect(Collectors. toMap( @@ -598,13 +652,22 @@ public class DataEntryEngineModelServiceImpl implements DataEntryEngineModelServ ); return parameters.stream().allMatch(parameter -> { EngineParamDetailPojo detailPojo = modelParamMap.get(parameter.getId()); - return detailPojo != null && - Objects.equals(detailPojo.getParameterName(), parameter.getParameterName()) && - Objects.equals(detailPojo.getParameterSource(), parameter.getParameterSource()) && - Objects.equals(detailPojo.getParameterType(), parameter.getParameterType()) && - Objects.equals(detailPojo.getSubsystemName(), parameter.getSubsystemName()) && - Objects.equals(detailPojo.getDepartment(), parameter.getDepartment()) && - Objects.equals(detailPojo.getPartsName(), parameter.getPartsName()); + if (Objects.equals(model.getYcOrOth(), "玉柴")) { + return detailPojo != null && + Objects.equals(detailPojo.getParameterName(), parameter.getParameterName()) && + Objects.equals(detailPojo.getParameterSource(), parameter.getParameterSource()) && + Objects.equals(detailPojo.getParameterType(), parameter.getParameterType()) && + Objects.equals(detailPojo.getSubsystemName(), parameter.getSubsystemName()) && + Objects.equals(detailPojo.getDepartment(), parameter.getDepartment()) && + Objects.equals(detailPojo.getPartsName(), parameter.getPartsName()); + } else { + return detailPojo != null && + Objects.equals(detailPojo.getParameterName(), parameter.getParameterName()) && + Objects.equals(detailPojo.getParameterType(), parameter.getParameterType()) && + Objects.equals(detailPojo.getSubsystemName(), parameter.getSubsystemName()) && + Objects.equals(detailPojo.getDepartment(), parameter.getDepartment()) && + Objects.equals(detailPojo.getPartsName(), parameter.getPartsName()); + } }); } diff --git a/src/main/java/com/xdap/self_development/service/impl/ParameterServiceImpl.java b/src/main/java/com/xdap/self_development/service/impl/ParameterServiceImpl.java index 1e86902..cd6ba97 100644 --- a/src/main/java/com/xdap/self_development/service/impl/ParameterServiceImpl.java +++ b/src/main/java/com/xdap/self_development/service/impl/ParameterServiceImpl.java @@ -192,7 +192,7 @@ public class ParameterServiceImpl implements ParameterService { baseTemplate.getOrderNum(), 0 ); - bd.getBusinessDatabase().doInsert(newTemplate); + newTemplate.setId(UUID.randomUUID().toString()); return newTemplate; } } @@ -591,6 +591,7 @@ public class ParameterServiceImpl implements ParameterService { } // 如果不是原模板 else { + bd.getBusinessDatabase().doInsert(newTemplate); List templateAndParameters = result.getNewParameters().stream() .filter(parameter -> !parameterIds.contains(parameter.getId()))