其它

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());

    }
相关推荐
是Dream呀5 分钟前
无硬件模拟灵衢架构:基于openFuyao社区的UB组件一站式开发实践
后端
码界奇点14 分钟前
基于Django REST framework与Vue的前后端分离后台管理系统设计与实现
vue.js·后端·python·django·毕业设计·源代码管理
疯狂的程序猴16 分钟前
构建现代化 iOS 调试体系,从代码行为到系统级诊断的多工具协同方法论
后端
qq_2562470526 分钟前
PostgreSQL 实践:JSON vs JSONB
后端
bcbnb26 分钟前
被 4.3 拒绝的那些上架,从机制误判到工程治理的完整分析
后端
披荆斩棘的哥哥32 分钟前
LOG:如何在Linux系统安装微软雅黑字体
后端
哈哈老师啊35 分钟前
Springboot基于双减政策的家校互动管理系统8e613(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
程序员西西35 分钟前
深入探索 Spring Boot3 中 Profiles 多环境配置
java·后端·架构
进击的丸子36 分钟前
跨平台人脸识别 SDK 部署指南
linux·后端·代码规范
进击的丸子1 小时前
人脸识别项目如何在Spring Boot项目中如何建立数据库和管理
数据库·后端·mysql