@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;
}
根据医院编号,查询医院所有科室列表
于 2022-01-22 23:45:34 首次发布