修改:参数维护部分支持部分参数修改

This commit is contained in:
zjh 2025-12-08 17:52:44 +08:00
parent 0f2afff6ba
commit a0c95ebe9c
2 changed files with 23 additions and 7 deletions

View File

@ -12,5 +12,4 @@ public class MenuParamView {
private String subsystem; private String subsystem;
private String parameterName; private String parameterName;
private String parameterPer; private String parameterPer;
} }

View File

@ -83,8 +83,7 @@ public class ParameterServiceImpl implements ParameterService {
switch (benchmark.getLastTemplate().getStatus()) { switch (benchmark.getLastTemplate().getStatus()) {
// 如果最新版本为草稿状态沿用该版本 // 如果最新版本为草稿状态沿用该版本
case "DRAFT": case "DRAFT":
newVersionTemplate = benchmark.getLastTemplate(); throw new CommonException("最新模板为草稿状态,暂时无法新建版本");
break;
// 如果最新版本为审核中则不允许新建版本 // 如果最新版本为审核中则不允许新建版本
case "APPROVING": case "APPROVING":
throw new CommonException("最新模板审核中,暂时无法新建版本"); throw new CommonException("最新模板审核中,暂时无法新建版本");
@ -191,19 +190,21 @@ public class ParameterServiceImpl implements ParameterService {
Template newTemplate) Template newTemplate)
{ {
Map<Integer, Parameter> parameterMap = createParameterMap(existingParameters); Map<Integer, Parameter> parameterMap = createParameterMap(existingParameters);
if (!existingParameters.isEmpty()) { // if (!existingParameters.isEmpty()) {
// 清除原来的关联关系 // // 清除原来的关联关系
bd.getBusinessDatabase().eq("template_id", baseTemplate.getId()).doDelete(TemplateAndParameter.class); // bd.getBusinessDatabase().eq("template_id", baseTemplate.getId()).doDelete(TemplateAndParameter.class);
} // }
List<Parameter> newParameters = new ArrayList<>(); List<Parameter> newParameters = new ArrayList<>();
List<RevisionRecord> revisionRecords = new ArrayList<>(); List<RevisionRecord> revisionRecords = new ArrayList<>();
// 处理模板部分参数
for (ParameterForm parameterForm : parameterForms) { for (ParameterForm parameterForm : parameterForms) {
if (parameterForm.getOperation() == null) { if (parameterForm.getOperation() == null) {
parameterForm.setOperation(""); parameterForm.setOperation("");
} }
ParameterOperation operation = ParameterOperation.fromCode(parameterForm.getOperation()); ParameterOperation operation = ParameterOperation.fromCode(parameterForm.getOperation());
switch (operation) { switch (operation) {
case INSERT: case INSERT:
handleInsertOperation(parameterForm, newTemplate, newParameters, revisionRecords, baseTemplate); handleInsertOperation(parameterForm, newTemplate, newParameters, revisionRecords, baseTemplate);
@ -220,6 +221,9 @@ public class ParameterServiceImpl implements ParameterService {
} }
} }
// 处理模板剩余的参数
List<Parameter> unmatchedParameters = findUnmatchedParameters(parameterMap, parameterForms);
newParameters.addAll(unmatchedParameters);
return new ParameterProcessingResult(newParameters, revisionRecords); return new ParameterProcessingResult(newParameters, revisionRecords);
} }
@ -391,6 +395,19 @@ public class ParameterServiceImpl implements ParameterService {
} }
} }
public List<Parameter> findUnmatchedParameters(
Map<Integer, Parameter> parameterMap,
List<ParameterForm> parameterForms) {
Set<Integer> formNumbers = parameterForms.parallelStream()
.map(ParameterForm::getParameterNumber)
.filter(Objects::nonNull)
.collect(Collectors.toCollection(HashSet::new));
return parameterMap.entrySet().parallelStream()
.filter(entry -> !formNumbers.contains(entry.getKey()))
.map(Map.Entry::getValue)
.collect(Collectors.toList());
}
/** /**
* 保存所有数据 * 保存所有数据
*/ */