Преглед на файлове

科室主管医生获取

chengyao преди 4 години
родител
ревизия
c3eb7306b4
променени са 2 файла, в които са добавени 52 реда и са изтрити 33 реда
  1. 49 32
      src/main/java/com/diagbot/facade/BasDoctorInfoFacade.java
  2. 3 1
      src/main/java/com/diagbot/web/BasDoctorInfoController.java

+ 49 - 32
src/main/java/com/diagbot/facade/BasDoctorInfoFacade.java

@@ -2,11 +2,10 @@ package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.diagbot.dto.BasDeptInfoDTO;
-import com.diagbot.entity.BasDeptInfo;
-import com.diagbot.entity.BasDoctorInfo;
-import com.diagbot.entity.SysUserDept;
+import com.diagbot.entity.*;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.service.impl.BasDoctorInfoServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.SysUserUtils;
 import com.diagbot.vo.BasDeptInfoVO;
@@ -19,6 +18,7 @@ import org.springframework.stereotype.Component;
 import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
+import java.util.Set;
 
 /**
  * @Description:
@@ -31,6 +31,8 @@ public class BasDoctorInfoFacade extends BasDoctorInfoServiceImpl {
     SysUserDeptFacade sysUserDeptFacade;
     @Autowired
     BasDeptInfoFacade basDeptInfoFacade;
+    @Autowired
+    BehospitalInfoFacade behospitalInfoFacade;
 
     /**
      * 获取医院医生下拉列表信息
@@ -39,37 +41,52 @@ public class BasDoctorInfoFacade extends BasDoctorInfoServiceImpl {
      * @return 医院医生下拉列表信息
      */
     public List<BasDoctorInfo> getDoctorByDept(BasDoctorInfoVO basDoctorInfoVO) {
-        basDoctorInfoVO.setHospitalId(Long.valueOf(SysUserUtils.getCurrentHospitalID()));
-        basDoctorInfoVO.setUserId(Long.valueOf( SysUserUtils.getCurrentPrincipleID()));
-        QueryWrapper<SysUserDept> userDeptWrapper = new QueryWrapper<>();
-        List<BasDoctorInfo> list = new ArrayList<>();
-                userDeptWrapper.eq("hospital_id",basDoctorInfoVO.getHospitalId());
-        userDeptWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
-        userDeptWrapper.eq("user_id",basDoctorInfoVO.getUserId());
-        List<SysUserDept> UserDeptlist = sysUserDeptFacade.list(userDeptWrapper);
-        HashSet<String> deptSet = new HashSet<String>();
+            basDoctorInfoVO.setHospitalId(Long.valueOf(SysUserUtils.getCurrentHospitalID()));
+            basDoctorInfoVO.setUserId(Long.valueOf( SysUserUtils.getCurrentPrincipleID()));
+            QueryWrapper<SysUserDept> userDeptWrapper = new QueryWrapper<>();
+            List<BehospitalInfo> list = new ArrayList<>();
+            List<BasDoctorInfo> doctorData = new ArrayList<>();
+                    userDeptWrapper.eq("hospital_id",basDoctorInfoVO.getHospitalId());
+            userDeptWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+            userDeptWrapper.eq("user_id",basDoctorInfoVO.getUserId());
+            List<SysUserDept> UserDeptlist = sysUserDeptFacade.list(userDeptWrapper);
+            Set<String> deptSet = new HashSet<String>();
+
         if(ListUtil.isNotEmpty(UserDeptlist)){
-            UserDeptlist.forEach(sysUserDept->{
-                deptSet.add(sysUserDept.getDeptId());
-            });
-            QueryWrapper<BasDeptInfo> deptInfo = new QueryWrapper<>();
-            deptInfo.eq("hospital_id",basDoctorInfoVO.getHospitalId());
-            deptInfo.eq("is_deleted", IsDeleteEnum.N.getKey());
-            deptInfo.eq("dept_name",basDoctorInfoVO.getDeptName());
-            deptInfo.in("dept_id",deptSet);
-            BasDeptInfo deptOne = basDeptInfoFacade.getOne(deptInfo);
-            QueryWrapper<BasDoctorInfo> QueryWrapper = new QueryWrapper<>();
-            QueryWrapper.eq("hospital_id",basDoctorInfoVO.getHospitalId());
-            QueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
-            QueryWrapper.eq("dept_id",deptOne.getDeptId());
-            if(StringUtils.isNotEmpty(basDoctorInfoVO.getInputStr())){
-                QueryWrapper.like("name",basDoctorInfoVO.getInputStr());
+                UserDeptlist.forEach(sysUserDept->{
+                    deptSet.add(sysUserDept.getDeptId());
+                });
+                QueryWrapper<BasDeptInfo> deptInfo = new QueryWrapper<>();
+                deptInfo.eq("hospital_id",basDoctorInfoVO.getHospitalId());
+                deptInfo.eq("is_deleted", IsDeleteEnum.N.getKey());
+                deptInfo.eq("dept_name",basDoctorInfoVO.getDeptName());
+                deptInfo.in("dept_id",deptSet);
+                List<BasDeptInfo> listInfo = basDeptInfoFacade.list(deptInfo);
+                Set<String> deptSetInfo = new HashSet<String>();
+                if(ListUtil.isNotEmpty(listInfo)){
+                    listInfo.forEach(basDeptInfo->{
+                        deptSetInfo.add(basDeptInfo.getDeptId());
+                    });
+                QueryWrapper<BehospitalInfo> QueryWrapper = new QueryWrapper<>();
+                QueryWrapper.eq("hospital_id",basDoctorInfoVO.getHospitalId());
+                QueryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey());
+                QueryWrapper.in("beh_dept_id",deptSetInfo);
+
+                if(StringUtils.isNotEmpty(basDoctorInfoVO.getInputStr())){
+                    QueryWrapper.like("doctor_name",basDoctorInfoVO.getInputStr());
+                }
+                QueryWrapper.groupBy("doctor_name");
+                QueryWrapper.orderByAsc("doctor_name");
+                list = behospitalInfoFacade.list(QueryWrapper);
             }
-            QueryWrapper.orderByAsc("name");
-            list = this.list(QueryWrapper);
         }
-
-        return list;
+        list.forEach(behospitalInfo -> {
+            BasDoctorInfo basDoctorInfo = new BasDoctorInfo();
+            basDoctorInfo.setHospitalId(behospitalInfo.getHospitalId());
+            basDoctorInfo.setDoctorId(behospitalInfo.getDoctorId());
+            basDoctorInfo.setName(behospitalInfo.getDoctorName());
+            doctorData.add(basDoctorInfo);
+        });
+            return doctorData;
     }
-
 }

+ 3 - 1
src/main/java/com/diagbot/web/BasDoctorInfoController.java

@@ -4,6 +4,8 @@ package com.diagbot.web;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.BasDeptInfoDTO;
 import com.diagbot.dto.RespDTO;
+import com.diagbot.entity.BasDoctorInfo;
+import com.diagbot.entity.BasHospitalInfo;
 import com.diagbot.facade.BasDoctorInfoFacade;
 import com.diagbot.vo.BasDeptInfoVO;
 import com.diagbot.vo.data.BasDoctorInfoVO;
@@ -37,7 +39,7 @@ public class BasDoctorInfoController {
             notes = "inputStr: 搜索参数")
     @PostMapping("/getList")
     @SysLogger("getList")
-    public RespDTO<List<BasDeptInfoDTO>> getList(@RequestBody BasDoctorInfoVO basDoctorInfoVO) {
+    public RespDTO<List<BasDoctorInfo>> getList(@RequestBody BasDoctorInfoVO basDoctorInfoVO) {
         return RespDTO.onSuc(basDoctorInfoFacade.getDoctorByDept(basDoctorInfoVO));
     }
 }