diff --git a/src/main/java/com/pms/ocp/model/vo/OcpModelGroupVO.java b/src/main/java/com/pms/ocp/model/vo/OcpModelGroupVO.java index 68a5c6cd9105c48f1c189915b6ef32566528cd34..1cfaaa2e03c42f64c61a6f13f45329da659d937b 100644 --- a/src/main/java/com/pms/ocp/model/vo/OcpModelGroupVO.java +++ b/src/main/java/com/pms/ocp/model/vo/OcpModelGroupVO.java @@ -88,12 +88,15 @@ public class OcpModelGroupVO implements Serializable { @ApiModelProperty(value = "是否已删除0未删除 1未删除") private Integer isDelete; + @TableField(exist = false) + @ApiModelProperty(value = "层级") + private int level; /** * 子类集合 */ @TableField(exist = false) @ApiModelProperty(value = "子类集合") - List childrenList; + private List childrenList; public String getModelGroupCode() { return modelGroupCode == null ? "" : modelGroupCode; @@ -102,6 +105,7 @@ public class OcpModelGroupVO implements Serializable { public String getModelGroupPcode() { return modelGroupPcode == null ? "" : modelGroupPcode; } + } diff --git a/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java index 4855c8d9795645bfbdfe0c2633981d510d7a2a07..f8f7dda6c689dd6c844cbbab8d8351e907d899aa 100644 --- a/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java +++ b/src/main/java/com/pms/ocp/service/impl/ModelClassifyServiceImpl.java @@ -64,7 +64,6 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { **/ @Override public ResponseVO> subclassDetailsList(int currentPage,int pageSize,String parentGroupCode,String subclassGroupName) { - //查询所有 List ocpModelGroupVOList = this.selectByCondition(null,null); //将查询到所有数据的list转换为key为分类code,value为本身的map @@ -140,7 +139,11 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { /** * 构建树节点 - */ + * @author huxiuwu + * @date 2022/3/10 + * @param treeNodes 需要构建的list + * @return List + **/ private List build(List treeNodes) { List result = new ArrayList<>(); //list转map =>将每个对象的id作为key,自己作为value. @@ -152,9 +155,12 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { //得到自己的父类 OcpModelGroupVO parent = nodeMap.get(node.getModelGroupPcode()); if (parent != null && !(node.getModelGroupCode().equals(parent.getModelGroupCode()))) { + //防止每次都new list或者只是使用该对象就new对象浪费内存或者覆盖上一次记录 if (parent.getChildrenList() == null) { parent.setChildrenList(new LinkedList<>()); } + //说明他有父类其下子类都需要加一级 + addLevel(node,treeNodes); parent.getChildrenList().add(node); continue; } @@ -162,6 +168,21 @@ public class ModelClassifyServiceImpl implements ModelClassifyService { } return result; } + /** + * + * @author huxiuwu + * @date 2022/3/10 + * @param parent 父类 + * @param treeNodes 需要遍历list + **/ + private void addLevel(OcpModelGroupVO parent, List treeNodes) { + parent.setLevel(parent.getLevel()+1); + for (OcpModelGroupVO treeNode : treeNodes) { + if (treeNode != null && parent.getModelGroupCode().equals(treeNode.getModelGroupPcode())){ + addLevel(treeNode,treeNodes); + } + } + } private List selectByCondition(String... searchCondition) { QueryWrapper queryWrapper = new QueryWrapper<>();