根据医院编号,查询医院所有科室列表

@Override
    public List<DepartmentVo> findDeptTree(String hoscode) {
        List<DepartmentVo> result = new ArrayList<>();
        //根据医院编号,查询医院所有科室列表
        Department department = new Department() ;
        department.setHoscode(hoscode);
        Example example = Example.of(department);
        //所有科室信息
        List<Department> all = departmentRepository.findAll(example);
        //根据大科室编号 bigcode分组,获取每个大科室里面下级子科室
        Map<String, List<Department>> collect =
                all.stream().collect(Collectors.groupingBy(Department::getBigcode));
        //遍历map集合 departmentMap
        for(Map.Entry<String,List<Department>> entry :collect.entrySet()){
//           大科室编号
            String bigcode = entry.getKey();
            //大科室编号对应的全部数据
            List<Department> departmentList = entry.getValue();
            //封装大科室
            DepartmentVo  departmentVo = new DepartmentVo() ;
            departmentVo.setDepcode(bigcode);
            departmentVo.setDepname(departmentList.get(0).getBigname());
            //封装小科室
            List<DepartmentVo> children = new ArrayList<>();
            for (Department department1 : departmentList) {
                DepartmentVo departmentVo1 = new DepartmentVo();
                departmentVo1.setDepcode(department1.getDepcode());
                departmentVo1.setDepname(department1.getDepname());
                //封装到list集合
                children.add(departmentVo1);
            }
            //把小科室list集合放到大科室children里面
            departmentVo.setChildren(children);
            //放到最终result里面
            result.add(departmentVo);
        }
        //返回
        return result;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值