From 5c7ef1bca05afdb4b92344ca25fea0f9e264773b Mon Sep 17 00:00:00 2001 From: yjz <3131811435@qq.com> Date: Thu, 26 Oct 2023 18:05:44 +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=E7=BB=B4=E6=8A=A4=E6=B8=85=E5=8D=95=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E9=97=AE=E9=A2=98=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LawsCustomCompareInfoController.java | 12 ++++ .../ILawsCustomCompareInfoService.java | 6 ++ .../LawsCustomCompareInfoServiceImpl.java | 55 ++++++++++++++++++- 3 files changed, 70 insertions(+), 3 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/customcompare/controller/LawsCustomCompareInfoController.java b/laws-modules/src/main/java/com/jero/modules/laws/customcompare/controller/LawsCustomCompareInfoController.java index 9d566a0e..afb4a3f2 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/customcompare/controller/LawsCustomCompareInfoController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/customcompare/controller/LawsCustomCompareInfoController.java @@ -123,6 +123,18 @@ public class LawsCustomCompareInfoController { return Result.OK(lawsCustomCompareInfoService.queryInventory(id)); } + /** + * 自定义对比-清单维护编辑 + * @return + */ + @AutoLog(value = "自定义对比-清单维护编辑") + @ApiOperation(value="自定义对比-清单维护编辑", notes="自定义对比-清单维护编辑") + @PostMapping(value = "/editInventory") + public Result editInventory(Map map) { + lawsCustomCompareInfoService.editInventory(map); + return Result.OK(MessageUtils.getMessage(ResultCommon.OK)); + } + /** * 自定义对比-标准检索保存 * @return diff --git a/laws-modules/src/main/java/com/jero/modules/laws/customcompare/service/ILawsCustomCompareInfoService.java b/laws-modules/src/main/java/com/jero/modules/laws/customcompare/service/ILawsCustomCompareInfoService.java index f524a644..c67bed0d 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/customcompare/service/ILawsCustomCompareInfoService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/customcompare/service/ILawsCustomCompareInfoService.java @@ -90,5 +90,11 @@ public interface ILawsCustomCompareInfoService extends IService map); } 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 46e5b3fe..4e39b10a 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 @@ -1,5 +1,6 @@ package com.jero.modules.laws.customcompare.service.impl; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -199,9 +200,7 @@ public class LawsCustomCompareInfoServiceImpl extends ServiceImpl() .eq(LawsCustomCompareInventory::getInfoId, id)); // 删除自定义对比单元格内容表 - lawsCustomCompareCellService.remove( - new LambdaQueryWrapper() - .eq(LawsCustomCompareCell::getInfoId, id)); + } @Override @@ -305,6 +304,56 @@ public class LawsCustomCompareInfoServiceImpl extends ServiceImpl map) { + String infoId = (String) map.get("infoId"); + // 获取旧数据信息 + List list = lawsCustomCompareInventoryService.list( + new LambdaQueryWrapper() + .eq(LawsCustomCompareInventory::getInfoId, infoId)); + + //重新更新或者添加新数据 + List featureList = JSON.parseArray(JSON.toJSONString(map.get("特点")), LawsCustomCompareInventory.class); + List compareList = JSON.parseArray(JSON.toJSONString(map.get("对比项")), LawsCustomCompareInventory.class); + + lawsCustomCompareInventoryService.saveOrUpdateBatch(featureList); + lawsCustomCompareInventoryService.saveOrUpdateBatch(compareList); + + // 不是第一次添加 + if (!list.isEmpty()){ + List idList = list.stream().map(LawsCustomCompareInventory::getInfoId).collect(Collectors.toList()); + List featureIdList = featureList.stream().map(LawsCustomCompareInventory::getInfoId).collect(Collectors.toList()); + List compareIdList = compareList.stream().map(LawsCustomCompareInventory::getInfoId).collect(Collectors.toList()); + + idList.retainAll(featureIdList); + idList.retainAll(compareIdList); + + if (!idList.isEmpty()){ + // 删除旧数据 + lawsCustomCompareInventoryService.remove( + new LambdaQueryWrapper() + .in(LawsCustomCompareInventory::getId, idList)); + + // 删除单元格数据 + lawsCustomCompareCellService.remove( + new LambdaQueryWrapper() + .in(LawsCustomCompareCell::getFeatureId, idList) + .or().eq(LawsCustomCompareCell::getCompareItemId, idList)); + }else { + // 删除旧数据 + lawsCustomCompareInventoryService.remove( + new LambdaQueryWrapper() + .eq(LawsCustomCompareInventory::getInfoId, infoId)); + + // 删除单元格数据 + lawsCustomCompareCellService.remove( + new LambdaQueryWrapper() + .eq(LawsCustomCompareCell::getInfoId, infoId)); + } + + } + } + private void createTableCellContent(XSSFSheet sheet, List standardVOS, List featureList, List compareList, List list) { for (int i = 2; i < compareList.size() + 2; i++) { // 创建行