From 2c3ad5b32d95b8c0e557290c6d474a4d4ff585eb Mon Sep 17 00:00:00 2001 From: liao Date: Tue, 19 Sep 2023 09:43:29 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=A0=87=E5=87=86=E6=B3=95=E8=A7=84-?= =?UTF-8?q?=E6=A0=87=E5=87=86=E4=BD=93=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/LawsCommonServiceImpl.java | 26 ++++++++ .../standard/entity/LawsNodeRelation.java | 5 ++ .../service/ILawsNodeRelationService.java | 16 +++++ .../impl/LawsNodeRelationServiceImpl.java | 60 ++++++++++++++++++- 4 files changed, 105 insertions(+), 2 deletions(-) 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 4e14b993..6251f433 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 @@ -151,6 +151,7 @@ public class LawsCommonServiceImpl implements ILawsCommonService { private Map processResultMap(Map initMap, List fieldList) { List dictItemList = getDictItemList(fieldList); Map resultMap = new LinkedHashMap<>(); + String id = (String) initMap.get("id"); for (Map.Entry entryMap : initMap.entrySet()) { String key = entryMap.getKey(); String value = ""; @@ -164,6 +165,18 @@ public class LawsCommonServiceImpl implements ILawsCommonService { // 对返回的字段值做处理 processResultFieldValue(key, value, fieldList, resultMap, dictItemList); } + // 如果是标准体系(单独处理) + if (FieldCommon.STANDARD_SYSTEM.equals(key)) { + List nodeRelationList = lawsNodeRelationService.getListByStandardId(id); + if (CollectionUtils.isNotEmpty(nodeRelationList)) { + List nodeIdList = nodeRelationList.stream() + .map(LawsNodeRelation::getNodeId).collect(Collectors.toList()); + List nodeNameList = nodeRelationList.stream() + .map(LawsNodeRelation::getNodeName).collect(Collectors.toList()); + resultMap.put(key, StringUtils.join(nodeIdList, ",")); + resultMap.put(key + FieldCommon._DICT_TEXT, StringUtils.join(nodeNameList, ",")); + } + } } return resultMap; } @@ -363,6 +376,7 @@ public class LawsCommonServiceImpl implements ILawsCommonService { * @Description: 编辑数据 **/ @Override + @Transactional public String commonEdit(Map parameterMap) { // 法规编号不能为空 String standardNumber = (String) parameterMap.get(FieldCommon.STANDARD_NUMBER); @@ -374,6 +388,13 @@ public class LawsCommonServiceImpl implements ILawsCommonService { if (StringUtils.isBlank(standardName)) { throw new JeroBootException(ResultCommon.EMPTY_STANDARD_NAME, ""); } + // 标准体系不能为空 + String standardSystem = (String) parameterMap.get(FieldCommon.STANDARD_SYSTEM); + if (StringUtils.isBlank(standardSystem)) { + throw new JeroBootException(ResultCommon.EMPTY_COMMON, FieldCommon.STANDARD_SYSTEM); + } + // 将更新数据库的标准体系字段设置为空 + parameterMap.put(FieldCommon.STANDARD_SYSTEM, ""); // 获取操作模块 String module = parameterMap.get(FieldCommon.MODULE).toString(); parameterMap.remove(FieldCommon.MODULE); @@ -427,6 +448,11 @@ public class LawsCommonServiceImpl implements ILawsCommonService { if (!oldStr.equals(content)) { lawsUpdateRecordService.addRecord(standardNumber, content); } + + // 对标准体系做处理 + lawsNodeRelationService.removeByStandardId(id); + lawsNodeRelationService.addRelation(standardSystem, standardNumber); + return MessageUtils.getMessage(ResultCommon.OK); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/LawsNodeRelation.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/LawsNodeRelation.java index cce75001..847f0c2e 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/LawsNodeRelation.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/LawsNodeRelation.java @@ -5,6 +5,7 @@ import java.io.UnsupportedEncodingException; import java.util.Date; import java.math.BigDecimal; import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -54,4 +55,8 @@ public class LawsNodeRelation implements Serializable { @Excel(name = "所属模块编码", width = 15) @ApiModelProperty(value = "所属模块编码(1国标、2外标、3企标)") private java.lang.String moduleCode; + + @ApiModelProperty(value = "节点name") + @TableField(exist = false) + private java.lang.String nodeName; } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/ILawsNodeRelationService.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/ILawsNodeRelationService.java index 542e4513..9a6f9379 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/ILawsNodeRelationService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/ILawsNodeRelationService.java @@ -3,6 +3,8 @@ package com.jero.modules.laws.standard.service; import com.jero.modules.laws.standard.entity.LawsNodeRelation; import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + /** * @Description: 树型节点关联 * @Author: jero-boot @@ -32,4 +34,18 @@ public interface ILawsNodeRelationService extends IService { **/ void addRelation(String nodeIds, String standardNumber); + /** + * @Author: liao + * @Date: 2023/9/19 9:20 + * @Description: 根据标准id进行删除 + **/ + void removeByStandardId(String standardId); + + /** + * @Author: liao + * @Date: 2023/9/19 9:32 + * @Description: 根据标准id查询列表 + **/ + List getListByStandardId(String standardId); + } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsNodeRelationServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsNodeRelationServiceImpl.java index 5cd53199..c8b47d25 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsNodeRelationServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/impl/LawsNodeRelationServiceImpl.java @@ -9,6 +9,7 @@ import com.jero.modules.laws.standard.mapper.LawsNodeRelationMapper; import com.jero.modules.laws.standard.service.ILawsNodeRelationService; import com.jero.modules.laws.standard.service.ILawsTreeNodeService; import com.spire.ms.System.Collections.ArrayList; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -17,6 +18,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import java.util.Arrays; import java.util.List; +import java.util.stream.Collectors; /** @@ -50,7 +52,7 @@ public class LawsNodeRelationServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(LawsTreeNode::getNodeCode, nodeCode); - LawsTreeNode treeNode = lawsTreeNodeService.getOne(queryWrapper); + String nodeId = lawsTreeNodeService.getOne(queryWrapper).getId(); // 批量添加到数据库 @@ -58,7 +60,7 @@ public class LawsNodeRelationServiceImpl extends ServiceImpl { LawsNodeRelation relation = new LawsNodeRelation(); relation.setNodeCode(nodeCode); - relation.setNodeId(treeNode.getId()); + relation.setNodeId(nodeId); relation.setUniqueRelationFlag(id); relationList.add(relation); }); @@ -91,7 +93,61 @@ public class LawsNodeRelationServiceImpl extends ServiceImpl nodeIdList = Arrays.asList(nodeIds.split(",")); + // 根据nodeId查询nodeCode + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.in(LawsTreeNode::getId, nodeIdList); + List treeNodeList = lawsTreeNodeService.list(queryWrapper); + // 批量添加到数据库 + List relationList = new ArrayList(); + nodeIdList.forEach(nodeId -> { + LawsNodeRelation relation = new LawsNodeRelation(); + String nodeCode = treeNodeList.stream().filter(treeNode -> nodeId.equals(treeNode.getId())) + .map(LawsTreeNode::getNodeCode).collect(Collectors.toList()).get(0); + relation.setNodeCode(nodeCode); + relation.setNodeId(nodeId); + relation.setUniqueRelationFlag(standardId); + relationList.add(relation); + }); + saveBatch(relationList); + } + /** + * @Author: liao + * @Date: 2023/9/19 9:21 + * @Description: 根据标准id进行删除 + **/ + @Override + public void removeByStandardId(String standardId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(LawsNodeRelation::getUniqueRelationFlag, standardId); + remove(queryWrapper); + } + + /** + * @Author: liao + * @Date: 2023/9/19 9:33 + * @Description: 根据标准id查询列表 + **/ + @Override + public List getListByStandardId(String standardId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(LawsNodeRelation::getUniqueRelationFlag, standardId); + List nodeRelationList = list(queryWrapper); + if (CollectionUtils.isEmpty(nodeRelationList)) { + return null; + } + List nodeIdList = nodeRelationList.stream() + .map(LawsNodeRelation::getNodeId).collect(Collectors.toList()); + LambdaQueryWrapper treeQueryWrapper = new LambdaQueryWrapper<>(); + treeQueryWrapper.in(LawsTreeNode::getId, nodeIdList); + List treeNodeList = lawsTreeNodeService.list(treeQueryWrapper); + nodeRelationList.forEach(nodeRelation -> { + String nodeName = treeNodeList.stream().filter(treeNode -> + nodeRelation.getNodeId().equals(treeNode.getId())) + .collect(Collectors.toList()).get(0).getNodeName(); + nodeRelation.setNodeName(nodeName); + }); + return nodeRelationList; } }