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
相关推荐
LuTshoes3 分钟前
spring ai 实战-MCPhandler014 分钟前
【Linux】ELF、链接与动态库,程序装载全解析CodeStats9 分钟前
【Java类加载器】Java 类加载器完整体系深度拆解(下):自定义加载器实战与 SPI 破坏双亲委派(MySQL 驱动揭秘)dishugj12 分钟前
操作系统四大特征|软考架构师考点梳理Huangjin007_19 分钟前
【Linux 系统篇(十九)】进程(七):深入理解虚拟地址空间:从进程地址空间到内核管理砚底藏山河21 分钟前
并发与限频工程:把20只的2秒压到0.5秒不封号(魔码量化实战 #03)ly768922 分钟前
Spring WebFlux背压机制在生产环境的调优与陷阱YIN_尹24 分钟前
【Linux系统编程】模拟实现一个最简版C语言标准IO库云雀衔光34 分钟前
MCP 协议全景:为什么它是 AI 连接工具的「USB-C」ly768939 分钟前
Spring 异步编程的隐藏风险:@Async 线程池耗尽与异常处理详解