baifucheng 2 月之前
父节点
当前提交
91607c7b23

+ 48 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/controller/info/ManagementTeacherController.java

@@ -2,9 +2,12 @@ package com.ruoyi.web.controller.info;
 
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
+import java.util.Set;
+import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
@@ -32,20 +35,31 @@ import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.enums.FilePathSplicingType;
 import com.ruoyi.common.filepathsplicing.FilePathSplicing;
 import com.ruoyi.common.filepathsplicing.FilePathSplicingUtil;
+import com.ruoyi.common.utils.BeanCopyUtils;
+import com.ruoyi.common.utils.CollectionUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.info.hospital.domain.vo.HospitalDepartmentVo;
+import com.ruoyi.info.hospital.domain.vo.HospitalVo;
+import com.ruoyi.info.hospital.service.IHospitalDepartmentService;
+import com.ruoyi.info.hospital.service.IHospitalService;
+import com.ruoyi.info.management.domain.TeacherDepartmentRel;
 import com.ruoyi.info.management.domain.bo.ManagementTeacherBo;
 import com.ruoyi.info.management.domain.bo.ManagementTeacherPageReqBo;
 import com.ruoyi.info.management.domain.vo.ManagementTeacherVo;
 import com.ruoyi.info.management.service.IManagementTeacherService;
+import com.ruoyi.info.management.service.ITeacherDepartmentRelService;
 import com.ruoyi.info.nursing.domain.bo.EnableStatusBo;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.RequiredArgsConstructor;
 
+import static com.ruoyi.common.utils.CollectionUtils.*;
+
 /**
  * 管理老师信息Controller
  *
@@ -63,6 +77,12 @@ public class ManagementTeacherController extends BaseController {
 
     private final FilePathSplicingUtil filePathSplicingUtil;
 
+    private final ITeacherDepartmentRelService iTeacherDepartmentRelService;
+
+    private final IHospitalService iHospitalService;
+
+    private final IHospitalDepartmentService iHospitalDepartmentService;
+
     /**
      * 分页查询管理老师信息列表
      */
@@ -84,7 +104,34 @@ public class ManagementTeacherController extends BaseController {
     public R<ManagementTeacherVo> getInfo(@ApiParam("主键")
                                                   @NotNull(message = "主键不能为空")
                                                   @PathVariable("id") Long id) {
-        return R.ok(iManagementTeacherService.queryById(id));
+        ManagementTeacherVo managementTeacherVo = iManagementTeacherService.queryById(id);
+
+        // 获取管理老师关联的医院和科室信息
+        List<TeacherDepartmentRel> teacherDepartmentRelList = iTeacherDepartmentRelService.queryByTeacherId(id);
+        if (CollUtil.isEmpty(teacherDepartmentRelList)) {
+            return R.ok(managementTeacherVo);
+        }
+
+        // 处理老师关联的医院和科室信息
+        Set<Long> hospitalIds = convertSet(teacherDepartmentRelList, TeacherDepartmentRel::getHospitalId);
+        List<HospitalVo> hospitalList = iHospitalService.queryListByIds(hospitalIds);
+        List<ManagementTeacherVo.HospitalSimpleInfo> hospitalSimpleInfoList = BeanCopyUtils.copyList(hospitalList, ManagementTeacherVo.HospitalSimpleInfo.class);
+
+        // 科室信息
+        for (ManagementTeacherVo.HospitalSimpleInfo hospitalSimpleInfo : hospitalSimpleInfoList) {
+             Set<Long> departmentIds = teacherDepartmentRelList.stream()
+                 .filter(rel -> rel.getHospitalId().equals(hospitalSimpleInfo.getId()))
+                 .map(TeacherDepartmentRel::getDepartmentId)
+                 .collect(Collectors.toSet());
+
+             // 获取关联部门详情
+             List<ManagementTeacherVo.DepartmentSimpleInfo> departmentSimpleInfoList =
+                 BeanCopyUtils.copyList(iHospitalDepartmentService.queryListByIds(departmentIds), ManagementTeacherVo.DepartmentSimpleInfo.class);
+             hospitalSimpleInfo.setDepartmentList(departmentSimpleInfoList);
+        }
+        managementTeacherVo.setHospitalRelList(hospitalSimpleInfoList);
+
+        return R.ok(managementTeacherVo);
     }
 
     /**

+ 33 - 0
ruoyi-info/ruoyi-info-biz/src/main/java/com/ruoyi/info/management/domain/vo/ManagementTeacherVo.java

@@ -5,6 +5,8 @@ import com.alibaba.excel.annotation.ExcelProperty;
 import com.alibaba.excel.annotation.write.style.ColumnWidth;
 import com.alibaba.excel.annotation.write.style.ContentRowHeight;
 import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.ruoyi.common.annotation.ExcelDictFormat;
 import com.ruoyi.common.convert.ExcelDictConvert;
 import com.ruoyi.common.filepathsplicing.FilePathValue;
@@ -16,6 +18,7 @@ import lombok.Data;
 import java.io.Serializable;
 import java.net.URL;
 import java.util.Date;
+import java.util.List;
 
 
 /**
@@ -122,5 +125,35 @@ public class ManagementTeacherVo implements Serializable {
     @ApiModelProperty("是否开启管理护工权限 N-否 Y-是")
     private String manageNursingFlag;
 
+    @ApiModelProperty(value = "创建时间")
+    private Date createTime;
+
+    @ApiModelProperty(value = "关联的医院列表")
+    private List<HospitalSimpleInfo> hospitalRelList;
+
+
+    @Data
+    public static class HospitalSimpleInfo {
+
+        @ApiModelProperty("医院id")
+        private Long id;
+
+        @ApiModelProperty("医院名称")
+        private String name;
+
+        private List<DepartmentSimpleInfo> departmentList;
+    }
+
+    @Data
+    public static class DepartmentSimpleInfo {
+
+        @ApiModelProperty("科室id")
+        private Long id;
+
+        @ApiModelProperty("科室名称")
+        private String name;
+    }
 
 }
+
+