diff --git a/src/main/java/com/xdap/self_development/pojo/view/MenuParamView.java b/src/main/java/com/xdap/self_development/pojo/view/MenuParamView.java index c732af3..6924c2d 100644 --- a/src/main/java/com/xdap/self_development/pojo/view/MenuParamView.java +++ b/src/main/java/com/xdap/self_development/pojo/view/MenuParamView.java @@ -12,5 +12,4 @@ public class MenuParamView { private String subsystem; private String parameterName; private String parameterPer; - } 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 d71d9df..ee43d5c 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 @@ -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 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 newParameters = new ArrayList<>(); List 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 unmatchedParameters = findUnmatchedParameters(parameterMap, parameterForms); + newParameters.addAll(unmatchedParameters); return new ParameterProcessingResult(newParameters, revisionRecords); } @@ -391,6 +395,19 @@ public class ParameterServiceImpl implements ParameterService { } } + public List findUnmatchedParameters( + Map parameterMap, + List parameterForms) { + Set 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()); + } + /** * 保存所有数据 */