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;
}
相关推荐
A13247053121 分钟前
进程管理入门:查看和控制Linux进程
linux·运维·服务器·网络·chrome·github
一只蚊子07 分钟前
C# WinForms配置Halcon
windows·c#·halcon
linksinke10 分钟前
在windows系统上搭建Golang多版本管理器(g)的配置环境
开发语言·windows·golang
云和数据.ChenGuang13 分钟前
openeuler下的git指令集合
linux·运维·数据库·centos
阿蒙Amon13 分钟前
C#每日面试题-进程和线程的区别
java·面试·c#
一 乐14 分钟前
养老院信息|基于springboot + vue养老院信息管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端
深兰科技15 分钟前
深兰科技入选“2025中国新经济30强(行业之星)”,人工智能产业化能力获认可
人工智能·windows·ci/cd·phpstorm·visual studio code·深兰科技·gyic2025
hopsky16 分钟前
mvn install 需要 手动清除 pom.lastUpdated
java·maven·mavbne
59803541517 分钟前
【java工具类】小数、整数转中文小写
android·java·开发语言
cike_y17 分钟前
Mybatis之作用域(Scope)和生命周期-解决属性名和字段名不一致的问题&ResultMap结果集映射
java·开发语言·数据库·tomcat·mybatis