上线版本-3.13

This commit is contained in:
zjh 2026-04-03 17:54:13 +08:00
parent ffb85b85d6
commit 1dc576d435
3 changed files with 161 additions and 76 deletions

View File

@ -140,28 +140,49 @@ public class EngineModelListener implements ReadListener<DataEntryEngineModelExc
private void saveDataParamDetail(ArrayList<DataEntryEngineModelPojo> modelPojos, List<ParameterPojo> parameters) {
List<EngineParamDetailPojo> 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);
}

View File

@ -284,27 +284,49 @@ public class DataEntryEngineModelServiceImpl implements DataEntryEngineModelServ
参数值暂时放空
*/
List<EngineParamDetailPojo> 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<EngineParamDetailPojo> 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<EngineParamDetailPojo> modelParams, List<ParameterPojo> parameters) {
private boolean isSameParams(
List<EngineParamDetailPojo> modelParams,
List<ParameterPojo> parameters,
DataEntryEngineModelPojo model
) {
Map<String, EngineParamDetailPojo> 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());
}
});
}

View File

@ -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<TemplateAndParameterPojo> templateAndParameters =
result.getNewParameters().stream()
.filter(parameter -> !parameterIds.contains(parameter.getId()))