其它

java 复制代码
    /**
     * 获取部门列表,支持模糊查询
     */
    public List<SysDeptVo> getDeptList(String deptName) {
        QueryWrapper<SysDeptEntity> wrapper = new QueryWrapper<>();
        wrapper.like(!StrUtil.isEmpty(deptName), "name", deptName);

        List<SysDeptEntity> list = sysDeptMapper.selectList(wrapper);

        List<SysDeptVo> voList = list.stream().map(entity -> {
            SysDeptVo vo = new SysDeptVo();
            BeanUtils.copyProperties(entity, vo);
            vo.setChildren(new ArrayList<>()); // 初始化子部门列表
            return vo;
        }).collect(Collectors.toList());


        Map<String, SysDeptVo> deptMap = voList.stream().collect(Collectors.toMap(SysDeptVo::getDeptId, vo -> vo));

        for (SysDeptVo vo : voList) {
            String parentId = vo.getParentId();
            SysDeptVo parentDept = deptMap.get(parentId);
            if (parentDept != null) {
                parentDept.getChildren().add(vo); // 将当前部门添加到父级部门的子部门列表中
            }
        }

        return voList.stream().filter(s -> {
            SysDeptVo sysDeptVo = deptMap.get(s.getParentId());
            return Objects.isNull(sysDeptVo);   // 筛选出没有父级部门的部门, 即:顶级部门
        }).collect(Collectors.toList());

    }
相关推荐
打工仔折腾 AI12 分钟前
把AI Agent托管在家用电脑:UU远程终端与端口映射实测记录
人工智能·后端·python·langchain·ai agent 实战
vx_Biye_Design39 分钟前
springboot高校选课系统82776-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·课程设计·express
打工仔折腾 AI2 小时前
LLaMA 1 到 LLaMA 3 架构演进拆解:从 RoPE、GQA 到词表扩张
人工智能·后端·python·深度学习·langchain·llama
可乐鸡翅yeah_3 小时前
HLS 分片过期清理,直播旧 TS 分片磁盘爆满问题处理
java·后端·spring·m3u8·m3u8在线·音视频在线播放
张彦峰ZYF3 小时前
加了锁不等于扛得住争用:synchronized、显式锁与 CAS 的语义分层、争用代价账本与选型判据
后端·同步设施·内置锁的四种状态与单向升级·可重入的由来与四条硬边界·显式锁的状态字段与等待队列·读写锁与邮戳锁·一次同步的开销账本
专业程序开发源3 小时前
SSM校园拍摄交流服务平台36936-计算机课程设计、毕业设计
java·spring boot·后端·python·elasticsearch·php·课程设计
Gopher_HBo3 小时前
zap采样器与性能优化内幕
后端
变量探索SEQVEC3 小时前
我埋了 8 个假文件,看谁会上钩:12 天 502 次扫描实录
后端
llqbzllll3 小时前
HashMap 的核心结构:从一次 put 看到扩容、桶迁移与树化边界
后端