ApiHospitalDepartmentController.java 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package com.ruoyi.api.controller.info;
  2. import java.util.List;
  3. import java.util.Set;
  4. import java.util.stream.Collectors;
  5. import org.springframework.validation.annotation.Validated;
  6. import org.springframework.web.bind.annotation.GetMapping;
  7. import org.springframework.web.bind.annotation.RequestMapping;
  8. import org.springframework.web.bind.annotation.RequestParam;
  9. import org.springframework.web.bind.annotation.RestController;
  10. import com.ruoyi.api.controller.common.AbstractApiController;
  11. import com.ruoyi.common.core.domain.R;
  12. import com.ruoyi.common.core.validate.QueryGroup;
  13. import com.ruoyi.common.utils.BeanCopyUtils;
  14. import com.ruoyi.info.hospital.domain.bo.HospitalDepartmentBo;
  15. import com.ruoyi.info.hospital.domain.vo.DepartmentSimpleInfoVo;
  16. import com.ruoyi.info.hospital.domain.vo.HospitalDepartmentVo;
  17. import com.ruoyi.info.hospital.domain.vo.HospitalSimpleInfoVo;
  18. import com.ruoyi.info.hospital.service.IHospitalDepartmentService;
  19. import com.ruoyi.info.management.domain.TeacherDepartmentRel;
  20. import com.ruoyi.info.management.service.ITeacherDepartmentRelService;
  21. import io.swagger.annotations.Api;
  22. import io.swagger.annotations.ApiOperation;
  23. import lombok.RequiredArgsConstructor;
  24. import static com.ruoyi.common.utils.CollectionUtils.convertSet;
  25. /**
  26. * @author fucheng.bai
  27. * @date 2025/9/22
  28. */
  29. @Validated
  30. @Api(value = "API 科室管理控制器", tags = {"科室管理"})
  31. @RequiredArgsConstructor
  32. @RestController
  33. @RequestMapping("/api/info/hospitalDepartment")
  34. public class ApiHospitalDepartmentController extends AbstractApiController {
  35. private final IHospitalDepartmentService iHospitalDepartmentService;
  36. private final ITeacherDepartmentRelService iTeacherDepartmentRelService;
  37. /**
  38. * 获取科室列表
  39. */
  40. @ApiOperation("获取科室列表")
  41. @GetMapping("/list")
  42. public R<List<HospitalDepartmentVo>> list(@Validated(QueryGroup.class) HospitalDepartmentBo bo) {
  43. bo.setRackStatus("0");
  44. return R.ok(iHospitalDepartmentService.queryByHospitalId(bo));
  45. }
  46. @ApiOperation("获取管理老师关联的科室列表")
  47. @GetMapping("/teacher/simpleList")
  48. public R<List<DepartmentSimpleInfoVo>> getTeacherSimpleInfo(@RequestParam(value = "hospitalId", required = false) Long hospitalId) {
  49. Long teacherId = getTeacherId();
  50. List<TeacherDepartmentRel> teacherDepartmentRelList = iTeacherDepartmentRelService.queryByTeacherId(teacherId);
  51. Set<Long> departmentIds = teacherDepartmentRelList.stream()
  52. .filter(item -> hospitalId == null || item.getHospitalId().equals(hospitalId))
  53. .map(TeacherDepartmentRel::getDepartmentId).collect(Collectors.toSet());
  54. List<HospitalDepartmentVo> departmentList = iHospitalDepartmentService.queryListByIds(departmentIds);
  55. List<DepartmentSimpleInfoVo> simpleDepartmentList = BeanCopyUtils.copyList(departmentList, DepartmentSimpleInfoVo.class);
  56. return R.ok(simpleDepartmentList);
  57. }
  58. }