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;
    }
posted @   Cv工程师120621号  阅读(1323)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示

目录导航