组织机构列表转树形结构Hutool工具类TreeUtil
Posted 牛哄哄的柯南
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了组织机构列表转树形结构Hutool工具类TreeUtil相关的知识,希望对你有一定的参考价值。
组织机构列表转树形结构【Hutool工具类TreeUtil】
问题引入
我们把单位表的信息根据上下级转化为树形结构输出展示,应该是很常见的,我们可以写递归自己去查,今天我们介绍的是使用Hutool的工具类TreeUtil来实现,只能说是十分之方便快捷简单。
具体操作
引入依赖
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.6</version>
</dependency>
根据业务查出List
//根据业务查出List
List<DeptEntity> deptList = deptMapper.getDeptList();
List转树形结构
//配置类
TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
//主键
treeNodeConfig.setIdKey("id");
treeNodeConfig.setNameKey("name");
//标识父节点的id
treeNodeConfig.setParentIdKey("parent");
//单位级别相同的会有优先级排序,这个Weight就是
treeNodeConfig.setWeightKey("order");
// 最大递归深度
treeNodeConfig.setDeep(5);
//构建树形
//标识顶级单位的ID,实践证明null也是可以的
String rootId = "0"
//deptList 就是上面根据业务查出来的List
List<Tree<String>> treeNodes = TreeUtil.build(deptList , rootId, treeNodeConfig,
(treeNode, tree) ->
//treeNode指的就是DeptEntity,也就是组织实体类
tree.setId(treeNode.getId());
tree.setParentId(treeNode.getParent());
//这里就是上面表示的排序
tree.setWeight(treeNode.getOrder());
tree.setName(treeNode.getName());
// 扩展属性 ...
//还可以添加一些自定义key的属性,例如关联上部门上的人员
tree.putExtra("people", treeNode.getPeople());
//tree.putExtra("other", new Object());
);
//最后得到的treeNodes就是我们想要的树形结构
return treeNodes;
这样就得到一个树形的组织机构树了,只要配置类和不同的数据库做对应即可。
版权声明:
原创博主:牛哄哄的柯南
博主原文链接:https://keafmd.blog.csdn.net/
个人博客链接:https://www.keafmd.top/
看完如果对你有帮助,感谢点击下面的点赞支持!
[哈哈][抱拳]
加油!
共同努力!
Keafmd
感谢支持牛哄哄的柯南,期待你的三连+关注~~
keep accumulate for my dream【共勉】
↓ ↓ ↓ ↓ ↓ ↓
以上是关于组织机构列表转树形结构Hutool工具类TreeUtil的主要内容,如果未能解决你的问题,请参考以下文章
MySQL查询父节点下面的所有子孙节点,查询用户列表时多级(公司)部门处理,根据反射,递归树形结构工具类