diff --git a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java index 538db5e4..a8d630db 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/common/service/impl/LawsCommonServiceImpl.java @@ -552,14 +552,24 @@ public class LawsCommonServiceImpl implements ILawsCommonService { // 执行企标独有的逻辑 if (module.equals(TableNameEnum.ENTERPRISE_STANDARDS.getValue())) { - this.enterpriseStandardAdd(inspectContents, id, standardNumber); + this.esInspectContentSaveOrUpdate(inspectContents, id, standardNumber); } return MessageUtils.getMessage(ResultCommon.OK); } - public void enterpriseStandardAdd(List inspectContents, String standardId, String standardNo) { - // 保存新增企标时的稽查内容 + /** + * 保存新增编辑企标时的稽查内容 + * @param inspectContents + * @param standardId + * @param standardNo + */ + public void esInspectContentSaveOrUpdate(List inspectContents, String standardId, String standardNo) { + // 先删后增 + LambdaUpdateWrapper removeWrapper = new LambdaUpdateWrapper<>(); + removeWrapper.eq(EnterpriseStandardInspectContent::getStandardId, standardId); + removeWrapper.eq(EnterpriseStandardInspectContent::getStandardNo, standardNo); + esInspectContentService.remove(removeWrapper); // 设置标准Id和标准编号 for (EnterpriseStandardInspectContent inspectContent : inspectContents) { inspectContent.setStandardId(standardId); @@ -603,6 +613,14 @@ public class LawsCommonServiceImpl implements ILawsCommonService { String id = (String) parameterMap.get(FieldCommon.ID); parameterMap.remove(FieldCommon.ID); + // 提前处理企标的稽查内容,否则后面转换会报错 + if (TableNameEnum.ENTERPRISE_STANDARDS.getValue().equals(module)) { + List checkList = (List) parameterMap.get(FieldCommon.CHECK_LIST); + List inspectContents = this.convertList(checkList); + parameterMap.put(FieldCommon.CHECK_LIST, null); + this.esInspectContentSaveOrUpdate(inspectContents, id, (String) parameterMap.get(FieldCommon.STANDARD_NUMBER)); + } + ManyStandardSelectionBox singleStandard = getSingleStandard(null, id); String standardNumber = singleStandard.getStandardNumber(); @@ -611,7 +629,11 @@ public class LawsCommonServiceImpl implements ILawsCommonService { // 获取数据库里没修改的数据 Map oldDataMap = getByIdAndModule(id, module, "2", standardNumber); - + // 提前处理企标的稽查内容,否则后面转换会报错 + if (TableNameEnum.ENTERPRISE_STANDARDS.getValue().equals(module)) { + // 处理列表属性,否则后面的逻辑会报错 + oldDataMap.put(FieldCommon.CHECK_LIST, null); + } // 组装更新内容 StringBuilder recordBuffer = new StringBuilder(); LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();