Browse Source

核查员已核查数据数量字段添加

songxinlu 4 năm trước cách đây
mục cha
commit
d35e715ea5

+ 2 - 0
src/main/java/com/diagbot/dto/DeptCheckUserDTO.java

@@ -21,4 +21,6 @@ public class DeptCheckUserDTO {
     private String doctorName;
     //核查数
     private int jobNum;
+    private int checkNum;
+    private int status;
 }

+ 49 - 46
src/main/java/com/diagbot/facade/MedCheckInfoFacade.java

@@ -422,24 +422,11 @@ public class MedCheckInfoFacade extends MedCheckInfoServiceImpl {
         if(deptMap!=null&&!deptMap.isEmpty())
         {
             //2.3获取所有医生信息的核查数
-            List<DeptCheckUserDTO> userJobs = new ArrayList<>();
-            if(checkUserDTOS!=null&&!checkUserDTOS.isEmpty()){
-                checkUserDTOS.stream().forEach(checkUserDTO->{
-                    CheckUserVO checkUserVO = new CheckUserVO();
-                    checkUserVO.setJobType(CheckJobTypeEnum.HOSP_SUPERVISOR.getKey());
-                    checkUserVO.setUserList(Lists.newArrayList(checkUserDTO.getDoctorId()));
-                    checkUserVO.setDeptIds(Lists.newArrayList(checkUserDTO.getDeptId()));
-                    //通过核查人员id获取核查人员的核查任务数
-                    DeptCheckUserDTO temp = baseMapper.getOtherJobNumByUserId(checkUserVO);
-                    if(temp!=null)
-                    {
-                        temp.setDeptId(checkUserDTO.getDeptId());
-                        userJobs.add(temp);
-                    }
-                });
-            }
-
-            addCheckInfoMaps(checkRoleMap,deptMap,userJobs,checkUserDTOS,CheckerRoleEnum.HOSP_SUPERVISOR.getKey());
+            CheckUserVO checkUserVO = new CheckUserVO();
+            checkUserVO.setJobType(CheckJobTypeEnum.HOSP_SUPERVISOR.getKey());
+            //通过核查人员id获取核查人员的核查任务数
+            List<DeptCheckUserDTO> userJobs = baseMapper.getDeptJobNumByUserId(checkUserVO);
+            addCheckInfoMaps(checkRoleMap,deptMap,userJobs,checkUserDTOS,CheckerRoleEnum.HOSP_SUPERVISOR.getKey(),CheckJobTypeEnum.HOSP_SUPERVISOR.getKey());
         }
         else {
             checkRoleMap.put(CheckerRoleEnum.HOSP_SUPERVISOR.getKey()+"",new ArrayList<>());
@@ -494,23 +481,15 @@ public class MedCheckInfoFacade extends MedCheckInfoServiceImpl {
         {
             //2.3获取质控科核查人员的核查数
             List<String> doctorIds = checkUserDTOS.stream().map(CheckUserDTO::getDoctorId).collect(Collectors.toList());
-            List<DeptCheckUserDTO> userJobs = new ArrayList<>();
-            if(doctorIds!=null&&!doctorIds.isEmpty())
-            {
-                doctorIds.stream().forEach(userid->{
-                    CheckUserVO checkUserVO = new CheckUserVO();
-                    checkUserVO.setJobType(CheckJobTypeEnum.QUAT_SUPERVISOR.getKey());
-                    checkUserVO.setUserList(Lists.newArrayList(userid));
-                    //通过核查人员id获取核查人员的核查任务数
-                    DeptCheckUserDTO temp = baseMapper.getOtherJobNumByUserId(checkUserVO);
-                    if(temp!=null)
-                    {
-                        temp.setDeptId(zkkDeptId);
-                        userJobs.add(temp);
-                    }
-                });
-            }
-            addCheckInfoMaps(checkRoleMap,deptMap,userJobs,checkUserDTOS,CheckerRoleEnum.QUAT_SUPERVISOR.getKey());
+            CheckUserVO checkUserVO = new CheckUserVO();
+            checkUserVO.setJobType(CheckJobTypeEnum.QUAT_SUPERVISOR.getKey());
+            checkUserVO.setUserList(doctorIds);
+            //通过核查人员id获取核查人员的核查任务数
+            List<DeptCheckUserDTO> userJobs = baseMapper.getDeptJobNumByUserId(checkUserVO);
+            userJobs.stream().forEach(deptCheckUserDTO -> {
+                deptCheckUserDTO.setDeptId(zkkDeptId);
+            });
+            addCheckInfoMaps(checkRoleMap,deptMap,userJobs,checkUserDTOS,CheckerRoleEnum.QUAT_SUPERVISOR.getKey(),CheckJobTypeEnum.QUAT_SUPERVISOR.getKey());
         }
         else {
             checkRoleMap.put(CheckerRoleEnum.QUAT_SUPERVISOR.getKey()+"",new ArrayList<>());
@@ -563,7 +542,7 @@ public class MedCheckInfoFacade extends MedCheckInfoServiceImpl {
             checkUserVO.setDeptIds(deptIds);
             //通过核查人员id获取核查人员的核查任务数
             List<DeptCheckUserDTO> userJobs = baseMapper.getDeptJobNumByUserId(checkUserVO);
-            addCheckInfoMaps(checkRoleMap,deptMap,userJobs,checkUserDTOS,CheckerRoleEnum.DEPT_SUPERVISOR.getKey());
+            addCheckInfoMaps(checkRoleMap,deptMap,userJobs,checkUserDTOS,CheckerRoleEnum.DEPT_SUPERVISOR.getKey(),CheckJobTypeEnum.DEPT_SUPERVISOR.getKey());
         }
         else {
             checkRoleMap.put(CheckerRoleEnum.DEPT_SUPERVISOR.getKey()+"",new ArrayList<>());
@@ -582,7 +561,7 @@ public class MedCheckInfoFacade extends MedCheckInfoServiceImpl {
      * @MethodName addCheckInfoMap
      */
     private void addCheckInfoMaps(Map<String, List<CheckDeptDTO>> checkRoleMap, Map<String, String> deptMap,
-                                  List<DeptCheckUserDTO> userJobs, List<CheckUserDTO> checkUserDTOS, int roleId) {
+                                  List<DeptCheckUserDTO> userJobs, List<CheckUserDTO> checkUserDTOS, int roleId,int jobType) {
         if(deptMap.isEmpty()||checkUserDTOS.isEmpty()){}
         checkRoleMap.put(roleId+"",new ArrayList<CheckDeptDTO>());
         //遍历科室
@@ -612,21 +591,45 @@ public class MedCheckInfoFacade extends MedCheckInfoServiceImpl {
                 //遍历数量
                 for(DeptCheckUserDTO jobNumDto:userJobs)
                 {
-                    //这个科室有这个人
-                    if(deptCheckUserDTO.getDeptId().equals(jobNumDto.getDeptId()))
+                    //非院区任务
+                    if(CheckJobTypeEnum.HOSP_SUPERVISOR.getKey()!=jobType)
                     {
-                        if(deptCheckUserDTO.getDoctorId().equals(jobNumDto.getDoctorId()))
+                        //这个科室有这个人
+                        if(deptCheckUserDTO.getDeptId().equals(jobNumDto.getDeptId()))
                         {
-                            deptCheckUserDTO.setJobNum(jobNumDto.getJobNum());
+                            if(deptCheckUserDTO.getDoctorId().equals(jobNumDto.getDoctorId()))
+                            {
+                                if(jobNumDto.getStatus()==0){
+                                    deptCheckUserDTO.setJobNum(deptCheckUserDTO.getJobNum()+jobNumDto.getJobNum());
+                                }
+                                if(jobNumDto.getStatus()==1){
+
+                                    deptCheckUserDTO.setCheckNum(deptCheckUserDTO.getCheckNum()+jobNumDto.getJobNum());
+                                }
+                            }
+
                         }
-                        //没有这个人
-//                        else
-//                        {
-//                            deptCheckUserDTO.setJobNum(0);
-//                        }
+                    }
+                    //院区任务不是同一科室的人员数量增加
+                    else if(CheckJobTypeEnum.HOSP_SUPERVISOR.getKey()==jobType)
+                    {
+                        if(!deptCheckUserDTO.getDeptId().equals(jobNumDto.getDeptId()))
+                        {
+                            if(deptCheckUserDTO.getDoctorId().equals(jobNumDto.getDoctorId()))
+                            {
+                                if(jobNumDto.getStatus()==0){
+                                    deptCheckUserDTO.setJobNum(deptCheckUserDTO.getJobNum()+jobNumDto.getJobNum());
+                                }
+                                if(jobNumDto.getStatus()==1){
+
+                                    deptCheckUserDTO.setCheckNum(deptCheckUserDTO.getCheckNum()+jobNumDto.getJobNum());
+                                }
+                            }
 
+                        }
                     }
 
+
                 }
             }
             checkRoleMap.get(roleId+"").add(checkDeptDTO);

+ 0 - 2
src/main/java/com/diagbot/mapper/MedCheckInfoMapper.java

@@ -29,8 +29,6 @@ public interface MedCheckInfoMapper extends BaseMapper<MedCheckInfo> {
     IPage<CheckJobDTO> getCheckList(CheckJobPageVO checkJobVO);
     //临床科室核查人员通过id获取核查人员的核查任务数
     List<DeptCheckUserDTO> getDeptJobNumByUserId(CheckUserVO checkUserVO);
-    //院级、质控科核查人员通过id获取核查人员的核查任务数
-    DeptCheckUserDTO getOtherJobNumByUserId(CheckUserVO checkUserVO);
     //核查任务列表
     IPage<CheckWorkDTO> getCheckWorkPage(CheckWorkPageVO checkWorkPageVO);
     //获取指定核查人员的核查任务

+ 2 - 0
src/main/java/com/diagbot/vo/CheckUserVO.java

@@ -21,6 +21,8 @@ public class CheckUserVO {
     private List<String> deptIds;
     //医院
     private Long hospitalId;
+    //核查状态 0未核查1核查
+    private int status;
     //科室类型集合
     private List<String> deptStations;
 

+ 12 - 25
src/main/resources/mapper/MedCheckInfoMapper.xml

@@ -57,57 +57,44 @@
             </foreach>
         </if>
     </select>
-    <!--临床科室核查人员通过id获取核查人员的核查任务数-->
+    <!--核查人员通过id获取核查人员的核查任务数-->
     <select id="getDeptJobNumByUserId" resultType="com.diagbot.dto.DeptCheckUserDTO">
         SELECT
         a.beh_dept_id deptId ,
         b.check_id doctorId,
-        count(*) as jobNum
+        count(*) as jobNum,
+        b.`status`
         from
         med_behospital_info a LEFT JOIN med_check_info b on a.behospital_code = b.behospital_code and a.hospital_id = b.hospital_id
-        where b.is_deleted = 'N' and a.is_deleted = 'N' and b.job_distribution_name is not null and b.`status` = 0
+        where b.is_deleted = 'N' and a.is_deleted = 'N' and b.job_distribution_name is not null  and b.`status` is not null
         <if test="jobType != null ">
             and b.job_type = #{jobType}
         </if>
+
         <if test="userList !=null and userList.size!=0">
             and b.check_id in
             <foreach collection="userList" item="item" open="(" close=")" separator=",">
                 #{item}
             </foreach>
         </if>
-        <if test="deptIds !=null and deptIds.size()!=0">
+        <if test="deptIds !=null and deptIds.size()!=0 and jobType ==0">
             and a.beh_dept_id in
             <foreach collection="deptIds" item="item" open="(" close=")" separator=",">
                 #{item}
             </foreach>
         </if>
-        GROUP BY a.beh_dept_id,b.check_id
-    </select>
-
-    <!--院级、质控科核查人员通过id获取核查人员的核查任务数-->
-    <select id="getOtherJobNumByUserId" resultType="com.diagbot.dto.DeptCheckUserDTO">
-        SELECT
-        b.check_id doctorId,
-        count(*) as jobNum
-        from
-        med_behospital_info a LEFT JOIN med_check_info b on a.behospital_code = b.behospital_code and a.hospital_id = b.hospital_id
-        where  b.is_deleted = 'N' and a.is_deleted = 'N' and b.job_distribution_name is not null and b.`status` = 0
-        <if test="jobType != null ">
-            and b.job_type = #{jobType}
-        </if>
-        <if test="userList !=null and userList.size!=0">
-            and b.check_id in
-            <foreach collection="userList" item="item" open="(" close=")" separator=",">
-                #{item}
-            </foreach>
-        </if>
         <if test="deptIds !=null and deptIds.size()!=0 and jobType ==2">
             and a.beh_dept_id not in
             <foreach collection="deptIds" item="item" open="(" close=")" separator=",">
                 #{item}
             </foreach>
         </if>
-        GROUP BY b.check_id
+        <if test="jobType ==0 or jobType ==2">
+            GROUP BY a.beh_dept_id,b.check_id,b.`status`
+        </if>
+        <if test="jobType ==1">
+            GROUP BY b.check_id,b.`status`
+        </if>
     </select>