上线版本7.0

This commit is contained in:
zjh 2026-02-26 17:21:54 +08:00
parent 20d92d7153
commit 291c7abda2
15 changed files with 56 additions and 26 deletions

View File

@ -154,7 +154,9 @@ public class ParameterValueCalculationTimer {
String key = modelId + "|" + paramId + "|" + paramName; String key = modelId + "|" + paramId + "|" + paramName;
// 跳过已成功计算的 // 跳过已成功计算的
if (computedKeys.contains(key)) continue; if (computedKeys.contains(key)) {
continue;
}
try { try {
String replacedFormula = replaceParametersInFormula( String replacedFormula = replaceParametersInFormula(
@ -274,7 +276,9 @@ public class ParameterValueCalculationTimer {
} }
private boolean isNumeric(String str) { private boolean isNumeric(String str) {
if (str == null || str.isEmpty()) return false; if (str == null || str.isEmpty()) {
return false;
}
try { try {
Double.parseDouble(str); Double.parseDouble(str);
return true; return true;

View File

@ -25,7 +25,9 @@ public class PersonReadListener implements ReadListener<ResponsiblePersonPojo> {
@Override @Override
public void invoke(ResponsiblePersonPojo responsiblePerson, AnalysisContext analysisContext) { public void invoke(ResponsiblePersonPojo responsiblePerson, AnalysisContext analysisContext) {
if (analysisContext.readRowHolder().getRowIndex() == 1) return; if (analysisContext.readRowHolder().getRowIndex() == 1) {
return;
}
if ( if (
responsiblePerson.getDepartment() == null || responsiblePerson.getDepartment() == null ||
responsiblePerson.getUsername() == null || responsiblePerson.getUsername() == null ||

View File

@ -51,7 +51,9 @@ public class SheetDataListener implements ReadListener<ParameterPojo> {
public void invoke(ParameterPojo data, AnalysisContext context) { public void invoke(ParameterPojo data, AnalysisContext context) {
log.info("开始解析数据行: {}", context.readRowHolder().getRowIndex()); log.info("开始解析数据行: {}", context.readRowHolder().getRowIndex());
log.info("解析到一条数据: {}", data); log.info("解析到一条数据: {}", data);
if (context.readRowHolder().getRowIndex() == 1) return; if (context.readRowHolder().getRowIndex() == 1) {
return;
}
// 参数校验 // 参数校验
if (data == null) { if (data == null) {
return; return;

View File

@ -108,7 +108,7 @@ public class AnalysisCommonParametersServiceImpl implements AnalysisCommonParame
// 按权限过滤 // 按权限过滤
List<ParameterPojo> parameters = engineParamDetailService.selectParamByIsUserId(modelParams, userId); List<ParameterPojo> parameters = engineParamDetailService.selectParamByIsUserId(modelParams, userId);
return parameters.stream() return parameters.stream()
.filter(x -> x.getUnit() != null && !x.getUnit().equals("/")) .filter(x -> x.getUnit() != null && !"/".equals(x.getUnit()))
.map(ParameterPojo::getParameterName).distinct().collect(Collectors.toList()); .map(ParameterPojo::getParameterName).distinct().collect(Collectors.toList());
} }

View File

@ -425,8 +425,8 @@ public class DataEntryEngineModelServiceImpl implements DataEntryEngineModelServ
detailPojo.setParameterName(parameter.getParameterName()); detailPojo.setParameterName(parameter.getParameterName());
detailPojo.setParameterSource(parameter.getParameterSource()); detailPojo.setParameterSource(parameter.getParameterSource());
detailPojo.setParameterType(parameter.getParameterType()); detailPojo.setParameterType(parameter.getParameterType());
detailPojo.setIsDistributedFilled(parameter.getParameterSource().equals("数据平台手工录入") ? 0 : 2); detailPojo.setIsDistributedFilled("数据平台手工录入".equals(parameter.getParameterSource()) ? 0 : 2);
detailPojo.setIsDistributedRes(parameter.getParameterSource().equals("数据平台手工录入") ? 0 : 2); detailPojo.setIsDistributedRes("数据平台手工录入".equals(parameter.getParameterSource()) ? 0 : 2);
detailPojo.setResponsiblePersonId(null); detailPojo.setResponsiblePersonId(null);
detailPojo.setFilledBy(null); detailPojo.setFilledBy(null);
detailPojo.setMajorVersion(model.getVersionNumber()); detailPojo.setMajorVersion(model.getVersionNumber());
@ -520,8 +520,8 @@ public class DataEntryEngineModelServiceImpl implements DataEntryEngineModelServ
detailPojo.setParameterName(parameter.getParameterName()); detailPojo.setParameterName(parameter.getParameterName());
detailPojo.setParameterSource(parameter.getParameterSource()); detailPojo.setParameterSource(parameter.getParameterSource());
detailPojo.setParameterType(parameter.getParameterType()); detailPojo.setParameterType(parameter.getParameterType());
detailPojo.setIsDistributedFilled(parameter.getParameterSource().equals("数据平台手工录入") ? 0 : 2); detailPojo.setIsDistributedFilled("数据平台手工录入".equals(parameter.getParameterSource()) ? 0 : 2);
detailPojo.setIsDistributedRes(parameter.getParameterSource().equals("数据平台手工录入") ? 0 : 2); detailPojo.setIsDistributedRes("数据平台手工录入".equals(parameter.getParameterSource()) ? 0 : 2);
detailPojo.setResponsiblePersonId(null); detailPojo.setResponsiblePersonId(null);
detailPojo.setFilledBy(null); detailPojo.setFilledBy(null);
detailPojo.setMajorVersion(model.getVersionNumber()); detailPojo.setMajorVersion(model.getVersionNumber());

View File

@ -154,7 +154,7 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService {
String manufacturerName = dataEntryEngineModelPojo.getManufacturerName(); String manufacturerName = dataEntryEngineModelPojo.getManufacturerName();
String manufacturerAbbreviation = dataEntryEngineModelPojo.getManufacturerAbbreviation(); String manufacturerAbbreviation = dataEntryEngineModelPojo.getManufacturerAbbreviation();
Set<String> strings = new HashSet<>(); Set<String> strings = new HashSet<>();
if (dataEntryEngineModelPojo.getYcOrOth().equals("玉柴")) { if ("玉柴".equals(dataEntryEngineModelPojo.getYcOrOth())) {
strings.add("状态代号:" + productNumber); strings.add("状态代号:" + productNumber);
} else { } else {
strings.add("产品编号:" + productNumber); strings.add("产品编号:" + productNumber);
@ -253,7 +253,7 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService {
String manufacturerName = dataEntryEngineModelPojo.getManufacturerName(); String manufacturerName = dataEntryEngineModelPojo.getManufacturerName();
String manufacturerAbbreviation = dataEntryEngineModelPojo.getManufacturerAbbreviation(); String manufacturerAbbreviation = dataEntryEngineModelPojo.getManufacturerAbbreviation();
Set<String> strings = new HashSet<>(); Set<String> strings = new HashSet<>();
if (dataEntryEngineModelPojo.getYcOrOth().equals("玉柴")) { if ("玉柴".equals(dataEntryEngineModelPojo.getYcOrOth())) {
strings.add("状态代号:" + productNumber); strings.add("状态代号:" + productNumber);
} else { } else {
strings.add("产品编号:" + productNumber); strings.add("产品编号:" + productNumber);
@ -719,7 +719,9 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService {
.eq("owner_id", filledBy) .eq("owner_id", filledBy)
.eq("process_title", modelPojo.getModelName() + "-" + "填写参数任务") .eq("process_title", modelPojo.getModelName() + "-" + "填写参数任务")
.doQuery(TodoTaskPojo.class); .doQuery(TodoTaskPojo.class);
if (!filledTodos.isEmpty()) continue; if (!filledTodos.isEmpty()) {
continue;
}
TodoTaskPojo todoTask = new TodoTaskPojo(); TodoTaskPojo todoTask = new TodoTaskPojo();
todoTask.setCreatedById(userID); todoTask.setCreatedById(userID);
@ -1094,7 +1096,9 @@ public class EngineParamDetailServiceImpl implements EngineParamDetailService {
@Override @Override
@Transactional @Transactional
public void updateDept(EngineDeptUpdateDTO engineDeptUpdateDTO) { public void updateDept(EngineDeptUpdateDTO engineDeptUpdateDTO) {
if (engineDeptUpdateDTO.getList().isEmpty()) throw new CommonException("部门信息不能为空"); if (engineDeptUpdateDTO.getList().isEmpty()) {
throw new CommonException("部门信息不能为空");
}
// 检查机型 // 检查机型
DataEntryEngineModelPojo model = bd.getBusinessDatabase() DataEntryEngineModelPojo model = bd.getBusinessDatabase()

View File

@ -117,7 +117,7 @@ public class EngineReviewListServiceImpl implements EngineReviewListService {
List<ParamApprovalRecordPojo> paramApprovalRecordPojos = bd.getBusinessDatabase() List<ParamApprovalRecordPojo> paramApprovalRecordPojos = bd.getBusinessDatabase()
.eq("approval_id", approvalId) .eq("approval_id", approvalId)
.doQuery(ParamApprovalRecordPojo.class); .doQuery(ParamApprovalRecordPojo.class);
if (paramApprovalRecordPojos.stream().anyMatch(x -> x.getOperator().equals("同意"))) { if (paramApprovalRecordPojos.stream().anyMatch(x -> "同意".equals(x.getOperator()))) {
b = false; b = false;
} }
if (b) { if (b) {

View File

@ -207,7 +207,7 @@ public class ModelRoleServiceImpl implements ModelRoleService {
.eq("is_enabled", 1) .eq("is_enabled", 1)
.eq("id", roleID) .eq("id", roleID)
.doQueryFirst(ModelRolesPojo.class); .doQueryFirst(ModelRolesPojo.class);
if (ObjectUtils.isNotEmpty(modelRolesPojos) && (modelRolesPojos.getRoleCode().equals("super_admin"))) { if (ObjectUtils.isNotEmpty(modelRolesPojos) && ("super_admin".equals(modelRolesPojos.getRoleCode()))) {
return Collections.singletonList(new MenuParamView(roleID, "", "", "", "", 1)); return Collections.singletonList(new MenuParamView(roleID, "", "", "", "", 1));
} }
ArrayList<MenuParamView> menuParamViews = new ArrayList<>(); ArrayList<MenuParamView> menuParamViews = new ArrayList<>();
@ -366,7 +366,9 @@ public class ModelRoleServiceImpl implements ModelRoleService {
String comp = Optional.ofNullable(pojo.getPartsName()).orElse("/"); String comp = Optional.ofNullable(pojo.getPartsName()).orElse("/");
Map<String, Set<String>> sysMap = permissionIndex.get(cat); Map<String, Set<String>> sysMap = permissionIndex.get(cat);
if (sysMap == null) return false; if (sysMap == null) {
return false;
}
// 1. 检查是否有 cat/*/* parts.length == 1 // 1. 检查是否有 cat/*/* parts.length == 1
if (sysMap.containsKey("*")) { if (sysMap.containsKey("*")) {

View File

@ -139,6 +139,7 @@ public class ParameterServiceImpl implements ParameterService {
* @param benchmark 模板基准信息 * @param benchmark 模板基准信息
* @return void * @return void
*/ */
@Override
public void validateTemplateStatus(TemplateBenchmark benchmark) { public void validateTemplateStatus(TemplateBenchmark benchmark) {
// 当前修改的模板不为最新版 // 当前修改的模板不为最新版
if (!Objects.equals(benchmark.getLastTemplate().getId(), benchmark.getBaseTemplate().getId())) { if (!Objects.equals(benchmark.getLastTemplate().getId(), benchmark.getBaseTemplate().getId())) {
@ -281,6 +282,7 @@ public class ParameterServiceImpl implements ParameterService {
* @param isLastComplete 是否最后完成 * @param isLastComplete 是否最后完成
* @return 参数处理结果 * @return 参数处理结果
*/ */
@Override
public ParameterProcessingResult processParameters( public ParameterProcessingResult processParameters(
List<ParameterForm> parameterForms, List<ParameterForm> parameterForms,
List<ParameterPojo> existingParameters, List<ParameterPojo> existingParameters,

View File

@ -385,22 +385,26 @@ public class ResponsiblePersonServiceImpl implements ResponsiblePersonService {
XdapDepartments xdapDepartments = bd.getSystemDatabase() XdapDepartments xdapDepartments = bd.getSystemDatabase()
.eq("name", "研发总院") .eq("name", "研发总院")
.doQueryFirst(XdapDepartments.class); .doQueryFirst(XdapDepartments.class);
if (xdapDepartments == null) return xdapUserView; if (xdapDepartments == null) {
return xdapUserView;
}
XdapDepartments currentDept = bd.getSystemDatabase() XdapDepartments currentDept = bd.getSystemDatabase()
.eq("name", department) .eq("name", department)
.eq("parent_id", xdapDepartments.getId()) .eq("parent_id", xdapDepartments.getId())
.doQueryFirst(XdapDepartments.class); .doQueryFirst(XdapDepartments.class);
if (currentDept != null) if (currentDept != null) {
xdapUserView.setDepartmentId(currentDept.getId()); xdapUserView.setDepartmentId(currentDept.getId());
}
if (userAccount != null) { if (userAccount != null) {
XdapUsers currentUser = bd.getSystemDatabase() XdapUsers currentUser = bd.getSystemDatabase()
.eq("user_number", userAccount) .eq("user_number", userAccount)
.eq("username", username) .eq("username", username)
.eq("exit_status", "ENABLE") .eq("exit_status", "ENABLE")
.doQueryFirst(XdapUsers.class); .doQueryFirst(XdapUsers.class);
if (currentUser != null) if (currentUser != null) {
xdapUserView.setUserId(currentUser.getId()); xdapUserView.setUserId(currentUser.getId());
}
} else { } else {
List<XdapUsers> xdapUsers = bd.getSystemDatabase() List<XdapUsers> xdapUsers = bd.getSystemDatabase()
.eq("username", username) .eq("username", username)
@ -423,7 +427,9 @@ public class ResponsiblePersonServiceImpl implements ResponsiblePersonService {
XdapDepartments currentDept = bd.getSystemDatabase() XdapDepartments currentDept = bd.getSystemDatabase()
.eq("name", "研发总院") .eq("name", "研发总院")
.doQueryFirst(XdapDepartments.class); .doQueryFirst(XdapDepartments.class);
if (currentDept == null) return Collections.emptyList(); if (currentDept == null) {
return Collections.emptyList();
}
return bd.getSystemDatabase() return bd.getSystemDatabase()
.eq("parent_id", currentDept.getId()) .eq("parent_id", currentDept.getId())
.doQuery(XdapDepartments.class); .doQuery(XdapDepartments.class);

View File

@ -799,7 +799,9 @@ public class TcDataQueryServiceImpl implements TcDataQueryService {
// .filter(Objects::nonNull) // 增加null过滤 // .filter(Objects::nonNull) // 增加null过滤
.filter(pojo -> subsystemParts.stream().anyMatch(part -> { .filter(pojo -> subsystemParts.stream().anyMatch(part -> {
String[] parts = part.split("-"); String[] parts = part.split("-");
if (parts.length != 2) return false; if (parts.length != 2) {
return false;
}
String subsystem = parts[0]; String subsystem = parts[0];
String partsName = parts[1]; String partsName = parts[1];

View File

@ -221,7 +221,7 @@ public class TemplateApprovalServiceImpl implements TemplateApprovalService {
throw new CommonException("流程不存在"); throw new CommonException("流程不存在");
} }
if (flow.getFlowStatus().equals("APPROVING")) { if ("APPROVING".equals(flow.getFlowStatus())) {
throw new CommonException("流程正在审批中"); throw new CommonException("流程正在审批中");
} }

View File

@ -62,6 +62,10 @@ public class TemplateServiceImpl implements TemplateService {
.like("template_name", form.getTemplateName()) .like("template_name", form.getTemplateName())
.doPageQuery(form.getPageNumber(), form.getPageSize(), TemplatePojo.class); .doPageQuery(form.getPageNumber(), form.getPageSize(), TemplatePojo.class);
result.getResult().forEach(templatePojo -> { result.getResult().forEach(templatePojo -> {
if (Objects.equals(templatePojo.getCreateBy(), "超级管理员")) {
templatePojo.setCreateBy("超级管理员");
return;
}
XdapUsers user = bd.getSystemDatabase() XdapUsers user = bd.getSystemDatabase()
.eq("id", templatePojo.getCreateBy()) .eq("id", templatePojo.getCreateBy())
.doQueryFirst(XdapUsers.class); .doQueryFirst(XdapUsers.class);
@ -508,7 +512,7 @@ public class TemplateServiceImpl implements TemplateService {
} }
// 返回问题 // 返回问题
if (problems.getHasImported().toString().equals("已完成导入:无")) { if ("已完成导入:无".equals(problems.getHasImported().toString())) {
problems.setHasImported(new StringBuilder("已完成导入:")); problems.setHasImported(new StringBuilder("已完成导入:"));
problems.getHasImported().append(templateName); problems.getHasImported().append(templateName);
} else { } else {

View File

@ -232,7 +232,9 @@ public class TodoTaskServiceImpl implements TodoTaskService {
.eq("owner_id", resId) .eq("owner_id", resId)
.eq("process_title", model.getModelName() + "-" + "分发参数填写人任务") .eq("process_title", model.getModelName() + "-" + "分发参数填写人任务")
.doQuery(TodoTaskPojo.class); .doQuery(TodoTaskPojo.class);
if (!resTodos.isEmpty()) continue; if (!resTodos.isEmpty()) {
continue;
}
// 没有就新增待办 // 没有就新增待办
TodoTaskPojo todoTaskPojo = new TodoTaskPojo(); TodoTaskPojo todoTaskPojo = new TodoTaskPojo();
todoTaskPojo.setCreatedById(userID); todoTaskPojo.setCreatedById(userID);

View File

@ -146,7 +146,7 @@ public class FormulaValidatorUtils {
// 第一个token可以是参数/数字/常量/负号/占位符 // 第一个token可以是参数/数字/常量/负号/占位符
if (i == 0) { if (i == 0) {
if (token.equals("-")) { if ("-".equals(token)) {
// 负号开头检查下一个token是否为有效值 // 负号开头检查下一个token是否为有效值
if (tokens.size() < 2 || isValidOperand(tokens.get(1)) && !tokens.get(1).equals(PLACEHOLDER)) { if (tokens.size() < 2 || isValidOperand(tokens.get(1)) && !tokens.get(1).equals(PLACEHOLDER)) {
throw new IllegalArgumentException(String.format("负号后必须跟有效参数/数字/常量 [错误片段:-%s][原始公式:%s]", throw new IllegalArgumentException(String.format("负号后必须跟有效参数/数字/常量 [错误片段:-%s][原始公式:%s]",
@ -169,7 +169,7 @@ public class FormulaValidatorUtils {
token, currentFormula, originalFormula)); token, currentFormula, originalFormula));
} }
// 检查除法分母不能为0 // 检查除法分母不能为0
if (token.equals("/") && i + 1 < tokens.size()) { if ("/".equals(token) && i + 1 < tokens.size()) {
String nextToken = tokens.get(i + 1); String nextToken = tokens.get(i + 1);
if (!nextToken.equals(PLACEHOLDER) && nextToken.matches("^-?0+(\\.0+)?$")) { if (!nextToken.equals(PLACEHOLDER) && nextToken.matches("^-?0+(\\.0+)?$")) {
throw new IllegalArgumentException(String.format("除法运算分母不能为0 [错误片段:/%s][原始公式:%s]", throw new IllegalArgumentException(String.format("除法运算分母不能为0 [错误片段:/%s][原始公式:%s]",