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

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 parameterName;
private String parameterPer;
}

View File

@ -83,8 +83,7 @@ public class ParameterServiceImpl implements ParameterService {
switch (benchmark.getLastTemplate().getStatus()) {
// 如果最新版本为草稿状态沿用该版本
case "DRAFT":
newVersionTemplate = benchmark.getLastTemplate();
break;
throw new CommonException("最新模板为草稿状态,暂时无法新建版本");
// 如果最新版本为审核中则不允许新建版本
case "APPROVING":
throw new CommonException("最新模板审核中,暂时无法新建版本");
@ -191,19 +190,21 @@ public class ParameterServiceImpl implements ParameterService {
Template newTemplate)
{
Map<Integer, Parameter> parameterMap = createParameterMap(existingParameters);
if (!existingParameters.isEmpty()) {
// 清除原来的关联关系
bd.getBusinessDatabase().eq("template_id", baseTemplate.getId()).doDelete(TemplateAndParameter.class);
}
// if (!existingParameters.isEmpty()) {
// // 清除原来的关联关系
// bd.getBusinessDatabase().eq("template_id", baseTemplate.getId()).doDelete(TemplateAndParameter.class);
// }
List<Parameter> newParameters = new ArrayList<>();
List<RevisionRecord> revisionRecords = new ArrayList<>();
// 处理模板部分参数
for (ParameterForm parameterForm : parameterForms) {
if (parameterForm.getOperation() == null) {
parameterForm.setOperation("");
}
ParameterOperation operation = ParameterOperation.fromCode(parameterForm.getOperation());
switch (operation) {
case INSERT:
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);
}
@ -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());
}
/**
* 保存所有数据
*/