From 8f0db41939e0dd7738a95deaefcd3ee35bf58282 Mon Sep 17 00:00:00 2001 From: yjz <3131811435@qq.com> Date: Tue, 31 Oct 2023 10:31:32 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E8=87=AA=E5=AE=9A=E4=B9=89=E5=AF=B9?= =?UTF-8?q?=E6=AF=94):=20=E6=A8=A1=E5=9D=97=E5=8A=9F=E8=83=BD=E5=AE=8C?= =?UTF-8?q?=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LawsCustomCompareInfoServiceImpl.java | 85 +++++++++++++------ 1 file changed, 57 insertions(+), 28 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/customcompare/service/impl/LawsCustomCompareInfoServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/customcompare/service/impl/LawsCustomCompareInfoServiceImpl.java index 3409af5a..46866f03 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/customcompare/service/impl/LawsCustomCompareInfoServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/customcompare/service/impl/LawsCustomCompareInfoServiceImpl.java @@ -183,43 +183,66 @@ public class LawsCustomCompareInfoServiceImpl extends ServiceImpl oldData = lawsCustomCompareInfoStandardService.list( new LambdaQueryWrapper() .eq(LawsCustomCompareInfoStandard::getInfoId, lawsCustomCompareInfo.getId())); - // 更新数据 + + // 自定义对比_标准 处理数据 StandardVO standardVO = new StandardVO(); standardVO.setStandardNumbers(standardSaveVO.getStandardNumber()); + // 查询勾选标准 List standardVOS = queryStandardList(standardVO); + // 数据拷贝 List lawsCustomCompareInfoStandards = BeanCopyUtils.copyBeanList(standardVOS, LawsCustomCompareInfoStandard.class); + + // 收集数据id集合 + List infoStandardIdList = new ArrayList<>(); + // 收集标准id集合 + List standardIdList = new ArrayList<>(); for (LawsCustomCompareInfoStandard lawsCustomCompareInfoStandard : lawsCustomCompareInfoStandards) { String standardId = lawsCustomCompareInfoStandard.getId(); String snowflakeId = String.valueOf(SnowflakeUtils.snowflake()); - // 自定义对比单元格数据更新 - lawsCustomCompareCellService.update( - new LambdaUpdateWrapper() - .eq(LawsCustomCompareCell::getInfoId, lawsCustomCompareInfo.getId()) - .eq(LawsCustomCompareCell::getStandardId, lawsCustomCompareInfoStandard.getId()) - .set(LawsCustomCompareCell::getStandardId, snowflakeId)); - - lawsCustomCompareInfoStandard.setId(snowflakeId); + // 是否已存在此标准 存在更新,不存在新增 + Optional optional = oldData.stream().filter(v -> v.getStandardId().equals(lawsCustomCompareInfoStandard.getId())).findFirst(); + if (optional.isPresent()){ + lawsCustomCompareInfoStandard.setId(optional.get().getId()); + }else { + lawsCustomCompareInfoStandard.setId(snowflakeId); + } + infoStandardIdList.add(lawsCustomCompareInfoStandard.getId()); lawsCustomCompareInfoStandard.setInfoId(lawsCustomCompareInfo.getId()); lawsCustomCompareInfoStandard.setStandardId(standardId); + standardIdList.add(standardId); lawsCustomCompareInfoStandard.setCreateBy(""); lawsCustomCompareInfoStandard.setCreateTime(null); lawsCustomCompareInfoStandard.setUpdateBy(""); lawsCustomCompareInfoStandard.setUpdateTime(null); - lawsCustomCompareInfoStandardService.save(lawsCustomCompareInfoStandard); + lawsCustomCompareInfoStandardService.saveOrUpdate(lawsCustomCompareInfoStandard); } - // 自定义对比单元格 删除 - String ids = standardVOS.stream().map(StandardVO::getId).collect(Collectors.joining(",")); - lawsCustomCompareCellService.remove( - new LambdaUpdateWrapper() - .eq(LawsCustomCompareCell::getInfoId, lawsCustomCompareInfo.getId()) - .notIn(LawsCustomCompareCell::getStandardId, ids)); - + // 删除旧数据 + if (standardVOS.isEmpty()){ + // 自定义对比_标准 删除 + lawsCustomCompareInfoStandardService.remove( + new LambdaQueryWrapper() + .eq(LawsCustomCompareInfoStandard::getInfoId, lawsCustomCompareInfo.getId())); + // 自定义对比单元格 删除 + lawsCustomCompareCellService.remove( + new LambdaUpdateWrapper() + .eq(LawsCustomCompareCell::getInfoId, lawsCustomCompareInfo.getId())); + }else { + // 自定义对比_标准 删除 + lawsCustomCompareInfoStandardService.remove( + new LambdaQueryWrapper() + .eq(LawsCustomCompareInfoStandard::getInfoId, lawsCustomCompareInfo.getId()) + .notIn(LawsCustomCompareInfoStandard::getId, infoStandardIdList)); + // 自定义对比单元格 删除 + lawsCustomCompareCellService.remove( + new LambdaUpdateWrapper() + .eq(LawsCustomCompareCell::getInfoId, lawsCustomCompareInfo.getId()) + .notIn(LawsCustomCompareCell::getStandardId, standardIdList)); + } return lawsCustomCompareInfo.getId(); } @@ -537,10 +560,13 @@ public class LawsCustomCompareInfoServiceImpl extends ServiceImpl