From a8c56be50ea2ae3c6d4a12f0972af0b3f643a416 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E7=A7=80=E6=AD=A6?= <18621965254@yeah.net> Date: Sat, 12 Mar 2022 18:20:01 +0800 Subject: [PATCH] =?UTF-8?q?=E8=83=A1=E7=A7=80=E6=AD=A6:=E6=A8=A1=E5=9E=8B?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=A0=91=E5=AF=BC=E8=88=AA=E6=A0=91update?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/pms/ocp/common/utils/TreeUtils.java | 22 ++++---- .../ocp/controller/ModelBaseController.java | 16 ++++++ .../pms/ocp/mapper/ModelSubscribeMapper.java | 8 +++ .../com/pms/ocp/model/entity/TreeNode.java | 52 ++++++++++--------- .../ocp/service/ModelSubscribeService.java | 4 ++ .../impl/ModelSubscribeServiceImpl.java | 40 ++++++++++++++ .../resources/mapper/ModelSubscribeMapper.xml | 52 +++++++++++++++++++ 7 files changed, 158 insertions(+), 36 deletions(-) create mode 100644 src/main/resources/mapper/ModelSubscribeMapper.xml diff --git a/src/main/java/com/pms/ocp/common/utils/TreeUtils.java b/src/main/java/com/pms/ocp/common/utils/TreeUtils.java index 7c733a4..e329821 100644 --- a/src/main/java/com/pms/ocp/common/utils/TreeUtils.java +++ b/src/main/java/com/pms/ocp/common/utils/TreeUtils.java @@ -2,10 +2,7 @@ package com.pms.ocp.common.utils; import com.pms.ocp.model.entity.TreeNode; -import java.util.ArrayList; -import java.util.LinkedHashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @author huxiuwu @@ -20,7 +17,7 @@ public class TreeUtils { List treeList = new ArrayList<>(); for(T treeNode : treeNodes) { - if (pid.equals(treeNode.getPid())) { + if (pid.equals(treeNode.getpCode())) { treeList.add(findChildren(treeNodes, treeNode)); } } @@ -33,7 +30,7 @@ public class TreeUtils { */ private static T findChildren(List treeNodes, T rootNode) { for(T treeNode : treeNodes) { - if(rootNode.getId().equals(treeNode.getPid())) { + if(rootNode.getCode().equals(treeNode.getpCode())) { rootNode.getChildren().add(findChildren(treeNodes, treeNode)); } } @@ -47,18 +44,21 @@ public class TreeUtils { List result = new ArrayList<>(); //list转map - Map nodeMap = new LinkedHashMap<>(treeNodes.size()); + Map nodeMap = new LinkedHashMap<>(treeNodes.size()); for(T treeNode : treeNodes){ - nodeMap.put(treeNode.getId(), treeNode); + nodeMap.put(treeNode.getCode(), treeNode); } for(T node : nodeMap.values()) { - T parent = nodeMap.get(node.getPid()); - if(parent != null && !(node.getId().equals(parent.getId()))){ + T parent = nodeMap.get(node.getpCode()); + if(parent != null && (node.getpCode().equals(parent.getCode())) + && (!"".equals(node.getpCode())|| !"".equals(parent.getCode()))){ + if (parent.getChildren() == null){ + parent.setChildren(new LinkedList<>()); + } parent.getChildren().add(node); continue; } - result.add(node); } diff --git a/src/main/java/com/pms/ocp/controller/ModelBaseController.java b/src/main/java/com/pms/ocp/controller/ModelBaseController.java index 9409e12..48218e3 100644 --- a/src/main/java/com/pms/ocp/controller/ModelBaseController.java +++ b/src/main/java/com/pms/ocp/controller/ModelBaseController.java @@ -53,6 +53,16 @@ public class ModelBaseController { @Autowired private ModelRelationService modelRelationService; + /** + * 模型分类-查询 + * + * @return + */ +// @ApiOperation("模型分类-查询") +// @GetMapping("/get/model/type") +// public ResponseVO getModelType() { +// return modelGroupService.getModelType(); +// } /** * 模型-增加 @@ -319,4 +329,10 @@ public class ModelBaseController { return ResponseVO.ok(modelRelationService.deleteModelRelation(objId, modelCode)); } + + @ApiOperation("模型列表-导航树") + @GetMapping("/delete/model/modelListNavigation") + public ResponseVO modelListNavigation(@RequestParam(required = false) String searchCondition) { + return modelSubscribeService.modelListNavigation(searchCondition); + } } diff --git a/src/main/java/com/pms/ocp/mapper/ModelSubscribeMapper.java b/src/main/java/com/pms/ocp/mapper/ModelSubscribeMapper.java index 0f23d06..d879203 100644 --- a/src/main/java/com/pms/ocp/mapper/ModelSubscribeMapper.java +++ b/src/main/java/com/pms/ocp/mapper/ModelSubscribeMapper.java @@ -2,7 +2,11 @@ package com.pms.ocp.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.pms.ocp.model.entity.ModelSubscribe; +import com.pms.ocp.model.entity.TreeNode; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * @Auther: wangjian @@ -12,4 +16,8 @@ import org.apache.ibatis.annotations.Mapper; @Mapper public interface ModelSubscribeMapper extends BaseMapper { + + List selectOrganData(); + + List selectModelAndModelGroup(@Param("searchCondition") String searchCondition); } diff --git a/src/main/java/com/pms/ocp/model/entity/TreeNode.java b/src/main/java/com/pms/ocp/model/entity/TreeNode.java index 98fcc44..a1b1cdb 100644 --- a/src/main/java/com/pms/ocp/model/entity/TreeNode.java +++ b/src/main/java/com/pms/ocp/model/entity/TreeNode.java @@ -1,7 +1,10 @@ package com.pms.ocp.model.entity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + import java.io.Serializable; -import java.util.ArrayList; import java.util.List; /** @@ -9,43 +12,42 @@ import java.util.List; * @version 1.0 * @date 2022/3/8 17:53 */ -public class TreeNode implements Serializable { +@Data +@ApiModel("树节点表") +public class TreeNode implements Serializable { private static final long serialVersionUID = 1L; /** * 主键 */ - private Long id; + + @ApiModelProperty("编码") + private String code; /** * 上级ID */ - private Long pid; - /** - * 子节点列表 - */ - private List children = new ArrayList<>(); + @ApiModelProperty("父类编码") + private String pCode; - public Long getId() { - return id; - } + @ApiModelProperty("名称") + private String name; - public void setId(Long id) { - this.id = id; - } + @ApiModelProperty("公司编码") + private String companyCode; - public Long getPid() { - return pid; - } + @ApiModelProperty("子类") + private List children; - public void setPid(Long pid) { - this.pid = pid; - } + @ApiModelProperty("子类") + private int belongLevel; - public List getChildren() { - return children; + public String getCode() { + return code == null ? "":code; } - - public void setChildren(List children) { - this.children = children; + public String getpCode() { + return pCode == null ? "": pCode; + } + public String getCompanyCode() { + return companyCode == null ? "":companyCode; } } diff --git a/src/main/java/com/pms/ocp/service/ModelSubscribeService.java b/src/main/java/com/pms/ocp/service/ModelSubscribeService.java index 219e702..a914080 100644 --- a/src/main/java/com/pms/ocp/service/ModelSubscribeService.java +++ b/src/main/java/com/pms/ocp/service/ModelSubscribeService.java @@ -2,6 +2,7 @@ package com.pms.ocp.service; import com.pms.ocp.model.dto.ModelSubscribeDTO; import com.pms.ocp.model.entity.ModelSubscribe; +import com.pms.ocp.model.vo.ResponseVO; import java.util.List; @@ -59,4 +60,7 @@ public interface ModelSubscribeService { * @return */ ModelSubscribeDTO getModelSubscribe(String modelId); + + ResponseVO modelListNavigation(String searchCondition); + } diff --git a/src/main/java/com/pms/ocp/service/impl/ModelSubscribeServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/ModelSubscribeServiceImpl.java index 72712aa..c0466ca 100644 --- a/src/main/java/com/pms/ocp/service/impl/ModelSubscribeServiceImpl.java +++ b/src/main/java/com/pms/ocp/service/impl/ModelSubscribeServiceImpl.java @@ -1,9 +1,14 @@ package com.pms.ocp.service.impl; +import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.pms.ocp.common.constants.CodeEnum; +import com.pms.ocp.common.utils.TreeUtils; import com.pms.ocp.mapper.ModelSubscribeMapper; import com.pms.ocp.model.dto.ModelSubscribeDTO; import com.pms.ocp.model.entity.ModelSubscribe; +import com.pms.ocp.model.entity.TreeNode; +import com.pms.ocp.model.vo.ResponseVO; import com.pms.ocp.service.ModelSubscribeService; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; @@ -11,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.time.LocalDateTime; +import java.util.LinkedList; import java.util.List; /** @@ -81,4 +87,38 @@ public class ModelSubscribeServiceImpl implements ModelSubscribeService { public ModelSubscribeDTO getModelSubscribe(String modelId) { return null; } + + + /** + * 服务列表导航树 + * @author huxiuwu + * @date 2022/3/11 + * + * @return pms.ocp.model.vo.ResponseVO + **/ + @Override + public ResponseVO modelListNavigation(String searchCondition) { + //查询模型和模型属性表列表 + List modelProperList = modelSubscribeMapper.selectModelAndModelGroup(searchCondition); + if (CollectionUtil.isEmpty(modelProperList)){ + return ResponseVO.error(CodeEnum.NO_DATA); + } + List modelGroupList = TreeUtils.build(modelProperList); + //查询组织机构表 + List organList = modelSubscribeMapper.selectOrganData(); + //将分类放入各自所属于的组织机构下 + organList.forEach(org + ->{ + modelGroupList.forEach(group->{ + if (org.getCompanyCode().equals(group.getCompanyCode())){ + if(org.getChildren() == null){ + org.setChildren(new LinkedList<>()); + } + org.getChildren().add(group); + } + }); + }); + List result = TreeUtils.build(organList); + return ResponseVO.ok(result); + } } diff --git a/src/main/resources/mapper/ModelSubscribeMapper.xml b/src/main/resources/mapper/ModelSubscribeMapper.xml new file mode 100644 index 0000000..0bed321 --- /dev/null +++ b/src/main/resources/mapper/ModelSubscribeMapper.xml @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file -- 2.26.0