package com.ruoyi.api.controller.info; import java.util.List; import java.util.Set; import java.util.stream.Collectors; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import com.ruoyi.api.controller.common.AbstractApiController; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.validate.QueryGroup; import com.ruoyi.common.utils.BeanCopyUtils; import com.ruoyi.info.hospital.domain.bo.HospitalDepartmentBo; import com.ruoyi.info.hospital.domain.vo.DepartmentSimpleInfoVo; import com.ruoyi.info.hospital.domain.vo.HospitalDepartmentVo; import com.ruoyi.info.hospital.domain.vo.HospitalSimpleInfoVo; import com.ruoyi.info.hospital.service.IHospitalDepartmentService; import com.ruoyi.info.management.domain.TeacherDepartmentRel; import com.ruoyi.info.management.service.ITeacherDepartmentRelService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import static com.ruoyi.common.utils.CollectionUtils.convertSet; /** * @author fucheng.bai * @date 2025/9/22 */ @Validated @Api(value = "API 科室管理控制器", tags = {"科室管理"}) @RequiredArgsConstructor @RestController @RequestMapping("/api/info/hospitalDepartment") public class ApiHospitalDepartmentController extends AbstractApiController { private final IHospitalDepartmentService iHospitalDepartmentService; private final ITeacherDepartmentRelService iTeacherDepartmentRelService; /** * 获取科室列表 */ @ApiOperation("获取科室列表") @GetMapping("/list") public R> list(@Validated(QueryGroup.class) HospitalDepartmentBo bo) { bo.setRackStatus("0"); return R.ok(iHospitalDepartmentService.queryByHospitalId(bo)); } @ApiOperation("获取管理老师关联的科室列表") @GetMapping("/teacher/simpleList") public R> getTeacherSimpleInfo(@RequestParam(value = "hospitalId", required = false) Long hospitalId) { Long teacherId = getTeacherId(); List teacherDepartmentRelList = iTeacherDepartmentRelService.queryByTeacherId(teacherId); Set departmentIds = teacherDepartmentRelList.stream() .filter(item -> hospitalId == null || item.getHospitalId().equals(hospitalId)) .map(TeacherDepartmentRel::getDepartmentId).collect(Collectors.toSet()); List departmentList = iHospitalDepartmentService.queryListByIds(departmentIds); List simpleDepartmentList = BeanCopyUtils.copyList(departmentList, DepartmentSimpleInfoVo.class); return R.ok(simpleDepartmentList); } }