Java实现查询该节点所有下级数据
摘要
使用递归实现查询下级节点,直接上代码
/**
* @Author: 石银博
* @Description: 获取该节点所有下级部门(不包含该节点部门)
* @DateTime: 2022/8/18 15:30
* @Params: deptCodes 部门id
* @Return
*/
private List<ZzDepartment> getAllChildrenNodeByParent(List<String> deptCodes){
List<ZzDepartment> departments = zzDepartmentMapper.getChildrenNodeByDeptCode(deptCodes);
if (!CollectionUtils.isEmpty(departments)){
List<String> collect = departments.stream().map(item -> item.getDeptCode()).collect(Collectors.toList());
departments.addAll(getAllChildrenNodeByParent(collect));
return departments;
}else {
return Lists.newArrayList();
}
}
实现将有父子关系的一组数据构建为树形结构
public List<ZzDepartment> buildDeptTreeSelect(List<ZzDepartment> list) {
List<ZzDepartment> treeList = new ArrayList<ZzDepartment>();
for (ZzDepartment tree : list) {
//找到根
if (tree.getParentDeptCode() == null) {
treeList.add(tree);
}
//找到子
for (ZzDepartment treeNode : list) {
if (treeNode.getParentDeptCode()!=null&&treeNode.getParentDeptCode().equals(tree.getDeptCode())) {
if (tree.getChildren() == null) {
tree.setChildren(new ArrayList<ZzDepartment>());
}
tree.getChildren().add(treeNode);
}
}
}
return treeList;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了