java通过用户id寻找下级

复制代码
private List<Long> getJuniorDeptIds(R<List<SysUser>> userList, List<Long> xiajiId) {
    List<Long> userIds = new ArrayList<>();
    // 创建一个临时列表,用于存储当前层级的下级部门id
    List<Long> currentLevelDeptIds = new ArrayList<>(xiajiId);
    // 直到没有下级部门为止
    while (!currentLevelDeptIds.isEmpty()) {
        List<Long> nextLevelDeptIds = new ArrayList<>();
        // 遍历当前层级的下级部门id
        for (Long deptId : currentLevelDeptIds) {
            for (SysUser datum : userList.getData()) {
                if (Objects.equals(datum.getDeptId(), deptId)) {
                    userIds.add(datum.getUserId());
                    // 将当前部门的所有下级部门id添加到下一层级列表中
                    nextLevelDeptIds.add(datum.getUserId());
                }
            }
        }
        // 更新当前层级的下级部门id为下一层级的部门id
        currentLevelDeptIds = nextLevelDeptIds;
    }
    return userIds;
}
相关推荐
shimly1234567 小时前
比 find + grep 更好用的 nm + addr2line
linux
迷途之人不知返7 小时前
【进程控制】-3-进程等待
linux
大侠归来7 小时前
C语言与C++在基础语法上的区别
java·c语言·c++
_upupup8 小时前
包管理器和vim
linux·服务器
小宋10218 小时前
SQL + RAG 混合问答实战:结构化指标与文档证据如何统一路由
java·jvm·人工智能·sql
一颗小树x8 小时前
NVIDIA 驱动故障排查实录:内核升级导致 nvidia-smi 失效
linux·服务器·nvidia驱动·启动失败·内核升级
bro_Java6668 小时前
链表进阶2:双向链表的构建
java·数据结构·链表
_smart_boy__8 小时前
I.MX6U开发板Uboot无法ping Ubuntu问题解决方案(二)
linux·运维·ubuntu
DianSan_ERP8 小时前
多平台订单自动下载与回传的技术实现:从消息推送到状态闭环引言
java·linux·服务器·前端·网络·架构·自动化
Joe_Wang58 小时前
【从0到1学习JVM · 13】点进JDK源码只有一个分号?搞懂本地方法栈与JNI机制
java·jvm·学习·本地方法栈