Explorar o código

Merge remote-tracking branch 'origin/20211018_yw_check' into 20211018_yw_check

chengyao %!s(int64=3) %!d(string=hai) anos
pai
achega
3a0f4210a0

+ 3 - 0
src/main/java/com/diagbot/dto/RegionMedoupDTO.java

@@ -19,5 +19,8 @@ public class RegionMedoupDTO {
   List<MedoupDTO> medoups;
   List<MedoupDTO> medoups;
   @ApiModelProperty("医生医疗组")
   @ApiModelProperty("医生医疗组")
   String localMedoupCode;
   String localMedoupCode;
+  @ApiModelProperty("全部显示flag")
+  boolean showAllFlag;
+
 
 
 }
 }

+ 2 - 2
src/main/java/com/diagbot/facade/MedCheckInfoFacade.java

@@ -253,9 +253,9 @@ public class MedCheckInfoFacade extends MedCheckInfoServiceImpl {
                     checkJobVO.setDoctorIds(basDoctorInfos.stream().map(BasDoctorInfo::getDoctorId).collect(Collectors.toList()));
                     checkJobVO.setDoctorIds(basDoctorInfos.stream().map(BasDoctorInfo::getDoctorId).collect(Collectors.toList()));
                 }
                 }
                 //通过主治医生去查,病区、科室、医疗组不作为筛选条件
                 //通过主治医生去查,病区、科室、医疗组不作为筛选条件
-                checkJobVO.setDepts(null);
+//                checkJobVO.setDepts(null);
                 checkJobVO.setWards(null);
                 checkJobVO.setWards(null);
-                checkJobVO.setMedoups(null);
+//                checkJobVO.setMedoups(null);
                 return getCheckList(checkJobVO);
                 return getCheckList(checkJobVO);
             }
             }
             return getCheckList(checkJobVO);
             return getCheckList(checkJobVO);

+ 13 - 3
src/main/java/com/diagbot/facade/MedCheckWorkFacade.java

@@ -20,6 +20,7 @@ import com.diagbot.entity.RegionDept;
 import com.diagbot.entity.SysTaskCron;
 import com.diagbot.entity.SysTaskCron;
 import com.diagbot.entity.SysUser;
 import com.diagbot.entity.SysUser;
 import com.diagbot.enums.CheckJobTypeEnum;
 import com.diagbot.enums.CheckJobTypeEnum;
+import com.diagbot.enums.CheckerRoleEnum;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.exception.CommonException;
@@ -312,7 +313,7 @@ public class MedCheckWorkFacade {
 //                deptIds.add("999999999999");
 //                deptIds.add("999999999999");
 //            }
 //            }
 //            checkWorkPageVO.setDepartment(deptIds);
 //            checkWorkPageVO.setDepartment(deptIds);
-            //如果没有添加医疗组筛选条件默认筛选全部医疗组
+            //如果没有添加医疗组筛选条件默认查询科室所有数据+医疗组所有人数据
             List<String> codes = null;
             List<String> codes = null;
             if (ListUtil.isEmpty(checkWorkPageVO.getMedoups())) {
             if (ListUtil.isEmpty(checkWorkPageVO.getMedoups())) {
                 //获取当前用户科室
                 //获取当前用户科室
@@ -342,7 +343,7 @@ public class MedCheckWorkFacade {
                 checkWorkPageVO.setDoctorIds(basDoctorInfos.stream().map(BasDoctorInfo::getDoctorId).collect(Collectors.toList()));
                 checkWorkPageVO.setDoctorIds(basDoctorInfos.stream().map(BasDoctorInfo::getDoctorId).collect(Collectors.toList()));
             }
             }
             //通过主治医生去查,病区、科室、医疗组不作为筛选条件
             //通过主治医生去查,病区、科室、医疗组不作为筛选条件
-            checkWorkPageVO.setDepts(null);
+//            checkWorkPageVO.setDepts(null);
             checkWorkPageVO.setWards(null);
             checkWorkPageVO.setWards(null);
         }
         }
     }
     }
@@ -371,6 +372,13 @@ public class MedCheckWorkFacade {
      */
      */
     public RegionMedoupDTO getLocalRegionMedoup() {
     public RegionMedoupDTO getLocalRegionMedoup() {
 
 
+        Long userId = Long.parseLong(SysUserUtils.getCurrentPrincipleID());
+        SysUserBaseVO sysUserRoleBaseVO = new SysUserBaseVO();
+        sysUserRoleBaseVO.setUserId(userId);
+        List<Long> roleIds = sysUserFacade.getUserRoles(sysUserRoleBaseVO).getSelRoles().stream().map(i -> i.getId()).collect(Collectors.toList());
+        if(ListUtil.isEmpty(roleIds)){
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该用户无角色信息");
+        }
         RegionMedoupDTO regionMedoup = new RegionMedoupDTO();
         RegionMedoupDTO regionMedoup = new RegionMedoupDTO();
         SysUserBaseVO sysUserBaseVO = new SysUserBaseVO();
         SysUserBaseVO sysUserBaseVO = new SysUserBaseVO();
         sysUserBaseVO.setUserId(Long.parseLong(SysUserUtils.getCurrentPrincipleID()));
         sysUserBaseVO.setUserId(Long.parseLong(SysUserUtils.getCurrentPrincipleID()));
@@ -402,7 +410,9 @@ public class MedCheckWorkFacade {
                 regionMedoup.setLocalMedoupCode(medoupTemps.get(0));
                 regionMedoup.setLocalMedoupCode(medoupTemps.get(0));
             }
             }
         }
         }
-
+        if(roleIds.contains(CheckerRoleEnum.DEPT_SUPERVISOR.getKey() * 1l)){
+            regionMedoup.setShowAllFlag(true);
+        }
         return regionMedoup;
         return regionMedoup;
     }
     }
 
 

+ 19 - 20
src/main/resources/mapper/MedCheckInfoMapper.xml

@@ -206,29 +206,26 @@
         <if test="name !=null and name != ''">
         <if test="name !=null and name != ''">
             and a.`name` LIKE CONCAT('%',#{name},'%')
             and a.`name` LIKE CONCAT('%',#{name},'%')
         </if>
         </if>
-        <if test="depts !=null and depts.size()!=0 ">
-            and a.beh_dept_id in
-            <foreach collection="depts" item="item" open="(" close=")" separator=",">
-                #{item}
-            </foreach>
-        </if>
+
         <if test="wards !=null and wards.size()!=0 ">
         <if test="wards !=null and wards.size()!=0 ">
             AND a.ward_code in
             AND a.ward_code in
             <foreach collection="wards" item="item" open="(" close=")" separator=",">
             <foreach collection="wards" item="item" open="(" close=")" separator=",">
                 #{item}
                 #{item}
             </foreach>
             </foreach>
         </if>
         </if>
-        <if test="medoups !=null and medoups.size()!=0 ">
-            AND mu.group_id in
-            <foreach collection="medoups" item="item" open="(" close=")" separator=",">
-                #{item}
-            </foreach>
-        </if>
+
         <if test="doctorIds !=null and doctorIds.size()!=0 ">
         <if test="doctorIds !=null and doctorIds.size()!=0 ">
-            AND a.doctor_id in
+            AND (a.doctor_id in
             <foreach collection="doctorIds" item="item" open="(" close=")" separator=",">
             <foreach collection="doctorIds" item="item" open="(" close=")" separator=",">
                 #{item}
                 #{item}
             </foreach>
             </foreach>
+            <if test="depts !=null and depts.size()!=0 and(medoups!=null and medoups.size==0)">
+                or a.beh_dept_id in
+                <foreach collection="depts" item="item" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+            )
         </if>
         </if>
         ) a
         ) a
         JOIN med_check_info b ON a.behospital_code = b.behospital_code
         JOIN med_check_info b ON a.behospital_code = b.behospital_code
@@ -416,12 +413,6 @@
         <if test="behospitalCode != null and behospitalCode != ''">
         <if test="behospitalCode != null and behospitalCode != ''">
             AND mbi.behospital_code like CONCAT('%',#{behospitalCode},'%')
             AND mbi.behospital_code like CONCAT('%',#{behospitalCode},'%')
         </if>
         </if>
-        <if test="depts !=null and depts.size > 0">
-            and mbi.beh_dept_id in
-            <foreach collection="depts" item="item" open="(" close=")" separator=",">
-                #{item}
-            </foreach>
-        </if>
         <if test="smallDay != null">
         <if test="smallDay != null">
             <![CDATA[ AND mhp.behospital_day_num >= #{smallDay}]]>
             <![CDATA[ AND mhp.behospital_day_num >= #{smallDay}]]>
         </if>
         </if>
@@ -447,11 +438,19 @@
             </foreach>
             </foreach>
         </if>
         </if>
         <if test="doctorIds !=null and doctorIds.size > 0">
         <if test="doctorIds !=null and doctorIds.size > 0">
-            and mbi.doctor_id IN
+            and (mbi.doctor_id IN
             <foreach collection="doctorIds" item="item" open="(" close=")" separator=",">
             <foreach collection="doctorIds" item="item" open="(" close=")" separator=",">
                 #{item}
                 #{item}
             </foreach>
             </foreach>
+            <if test="depts !=null and depts.size > 0 and (medoups!=null and medoups.size==0)">
+                or mbi.beh_dept_id in
+                <foreach collection="depts" item="item" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
+            </if>
+            )
         </if>
         </if>
+
         <if test="wards !=null and wards.size > 0">
         <if test="wards !=null and wards.size > 0">
             AND mbi.ward_code IN
             AND mbi.ward_code IN
             <foreach collection="wards" item="item" open="(" close=")" separator=",">
             <foreach collection="wards" item="item" open="(" close=")" separator=",">