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++) { // 创建行