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;
}
java通过用户id寻找下级
youmdt2023-09-11 10:32
相关推荐
剑神一笑3 小时前
Linux pgrep 命令详解:按名称查找进程 PID 的高效方法AI人工智能+电脑小能手3 小时前
【大白话说Java面试题 第87题】【Mysql篇】第17题:分布式事务的实现原理?剑神一笑3 小时前
Linux killall 命令详解:按进程名批量终止进程的原理与实践来杯@Java4 小时前
图书管理系统(基于springboot+vue前后端分离的项目)计算机毕业设计java卷毛的技术笔记5 小时前
告别硬编码!Spring AI Alibaba 实现 AI Agent 智能工具调用(Tool Calling)编程大师哥5 小时前
匿名函数 lambda + 高阶函数東雪木5 小时前
多线程与并发编程 专属复习笔记adrninistrat0r5 小时前
Java调用链MCP分析工具噜噜噜阿鲁~5 小时前
python学习笔记 | 11.3、面向对象高级编程-多重继承春生野草6 小时前
反射、Tomcat执行