瀏覽代碼

义乌核查,任务分配相关功能修改

songxinlu 4 年之前
父節點
當前提交
c8939c0051

+ 5 - 0
src/main/java/com/diagbot/dto/CheckJobDTO.java

@@ -23,6 +23,11 @@ public class CheckJobDTO {
     private String attendingDoctor;
     //出院日期
     private String leaveHospitalDate;
+    //任务分配人员id
+    private Long jobDistributor;
+
     //筛选分值
     private int value;
+    //取消分配标志
+    private Boolean delFlag;
 }

+ 138 - 118
src/main/java/com/diagbot/facade/MedCheckInfoFacade.java

@@ -16,6 +16,8 @@ import com.diagbot.entity.SysRole;
 import com.diagbot.entity.SysUser;
 import com.diagbot.entity.SysUserDept;
 import com.diagbot.entity.SysUserRole;
+import com.diagbot.enums.CheckJobTypeEnum;
+import com.diagbot.enums.CheckerRoleEnum;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
@@ -184,7 +186,8 @@ public class MedCheckInfoFacade extends MedCheckInfoServiceImpl {
             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该用户不是核查监管人员!");
         }
         //质控科监管人员
-        if(searchRoleIds.contains(5L)&&"2".equals(checkJobVO.getJobType()))
+        if(searchRoleIds.contains(CheckerRoleEnum.QUAT_SUPERVISOR.getKey()*1l)
+                &&(CheckJobTypeEnum.QUAT_SUPERVISOR.getKey()+"").equals(checkJobVO.getJobType()))
         {
             //用户是不是质管科人员校验
             String zkkDeptId = basDeptInfoFacade.getOne(new QueryWrapper<BasDeptInfo>()
@@ -204,36 +207,53 @@ public class MedCheckInfoFacade extends MedCheckInfoServiceImpl {
             //3.判断这个人是否在质控科
             if(deptIds.contains(zkkDeptId))
             {
+                //质控科任务分配列表是任务类型是质控科的任务与科室无关
                 return getCheckList(checkJobVO);
             }
         }
-        //临床科室监管人员
-        else if(searchRoleIds.contains(4L)&&"0".equals(checkJobVO.getJobType()))
+        //临床科室监管人员 或 院级监管人员
+        else if(searchRoleIds.contains(CheckerRoleEnum.DEPT_SUPERVISOR.getKey()*1l)
+                ||searchRoleIds.contains(CheckerRoleEnum.HOSP_SUPERVISOR.getKey()*1l))
         {
-            //获取监管人员所在科室集合
-            List<String> deptIds = sysUserDeptFacade.list(new QueryWrapper<SysUserDept>()
-                    .eq("is_deleted", IsDeleteEnum.N.getKey())
-                    .eq("hospital_id",hospitalId)
-                    .eq("user_id",principleId)
-            ).stream().map(SysUserDept::getDeptId).collect(Collectors.toList());
-            if(deptIds!=null&&!deptIds.isEmpty()){
-                checkJobVO.setDeptList(deptIds);
-            }
-            return getCheckList(checkJobVO);
-        }
-        //院级监管人员
-        else if(searchRoleIds.contains(6L)&&"1".equals(checkJobVO.getJobType()))
-        {
-            //获取监管人员所在科室集合
-            List<String> deptIds = sysUserDeptFacade.list(new QueryWrapper<SysUserDept>()
-                    .eq("is_deleted", IsDeleteEnum.N.getKey())
-                    .eq("hospital_id",hospitalId)
-                    .eq("user_id",principleId)
-            ).stream().map(SysUserDept::getDeptId).collect(Collectors.toList());
-            //分配除了监管人员以外其他科室的核查任务
-            if(deptIds!=null&&!deptIds.isEmpty()){
-                checkJobVO.setDeptList(deptIds);
+            //查询没有指定科室
+            if(checkJobVO.getDeptList()==null||checkJobVO.getDeptList().isEmpty())
+            {
+                //科室获取待分配任务所在科室集合
+                if(CheckJobTypeEnum.DEPT_SUPERVISOR.getKey()==Integer.parseInt(checkJobVO.getJobType())){
+                    List<String> deptIds = sysUserDeptFacade.list(new QueryWrapper<SysUserDept>()
+                            .eq("is_deleted", IsDeleteEnum.N.getKey())
+                            .eq("hospital_id",hospitalId)
+                            .eq("user_id",principleId)
+                    ).stream().map(SysUserDept::getDeptId).collect(Collectors.toList());
+
+                    if(deptIds!=null&&!deptIds.isEmpty()){
+                        checkJobVO.setDeptList(deptIds);
+                    }
+                }
+                //院区获取
+                if(CheckJobTypeEnum.HOSP_SUPERVISOR.getKey()==Integer.parseInt(checkJobVO.getJobType())){
+//                    //获取管理员所在科室
+//                    List<String> deptIds = sysUserDeptFacade.list(new QueryWrapper<SysUserDept>()
+//                            .eq("is_deleted", IsDeleteEnum.N.getKey())
+//                            .eq("hospital_id",hospitalId)
+//                            .eq("user_id",principleId)
+//                    ).stream().map(SysUserDept::getDeptId).collect(Collectors.toList());
+//                    //获取所有院区核查人员所在科室
+//                    CheckUserVO checkUserVOS = new CheckUserVO();
+//                    checkUserVOS.setRoleIds(Lists.newArrayList(CheckerRoleEnum.HOSP_GENERAL.getKey()*1l));
+//                    checkUserVOS.setDeptStations(Lists.newArrayList("住院"));
+//                    checkUserVOS.setHospitalId(hospitalId);
+//                    List<CheckUserDTO> checkUserDTOS = baseMapper.getCheckUser(checkUserVOS);
+//                    Set<String> hospGeneralDeptIds= checkUserDTOS.stream()
+//                            .map(CheckUserDTO::getDeptId).collect(Collectors.toSet());
+//                    //去除管理员所在科室
+//                    if(hospGeneralDeptIds!=null&&!hospGeneralDeptIds.isEmpty()&&deptIds!=null){
+//                        hospGeneralDeptIds.removeAll(deptIds);
+//                        checkJobVO.setDeptList(new ArrayList<>(hospGeneralDeptIds));
+//                    }
+                }
             }
+
             return getCheckList(checkJobVO);
         }
         else
@@ -370,27 +390,30 @@ public class MedCheckInfoFacade extends MedCheckInfoServiceImpl {
     private void getYQCheckInfo(Map<String, List<CheckDeptDTO>> checkRoleMap, Long hospitalId, Long principleId) {
         //1.获取院级质控人员有哪些
         //1.1获取院级质控人员角色id
-        Long roleId = sysRoleFacade.getOne(new QueryWrapper<SysRole>()
-                .eq("is_deleted", IsDeleteEnum.N.getKey())
-                .eq("name","院级质控人员")).getId();
         CheckUserVO checkUserVOS = new CheckUserVO();
-        checkUserVOS.setRoleIds(Lists.newArrayList(roleId));
+        checkUserVOS.setRoleIds(Lists.newArrayList(CheckerRoleEnum.HOSP_GENERAL.getKey()*1l));
         checkUserVOS.setDeptStations(Lists.newArrayList("住院"));
-        checkUserVOS.setUserId(principleId);
-        checkUserVOS.setRoleId(6L);
         checkUserVOS.setHospitalId(hospitalId);
         List<CheckUserDTO> checkUserDTOS = baseMapper.getCheckUser(checkUserVOS);
         //2.1获取科室详情
         Map<String,String> deptMap = checkUserDTOS.stream()
                 .collect(Collectors.toMap(CheckUserDTO::getDeptId,CheckUserDTO::getDeptName, (v1, v2) -> v2));
-        //2.3获取所有医生信息的核查数
-        List<String> doctorIds = checkUserDTOS.stream().map(CheckUserDTO::getDoctorId).collect(Collectors.toList());
-        CheckUserVO checkUserVO = new CheckUserVO();
-        checkUserVO.setJobType(1);
-        checkUserVO.setUserList(doctorIds);
-        //通过核查人员id获取核查人员的核查任务数
-        List<DeptCheckUserDTO> userJobs = baseMapper.getJobNumByUserId(checkUserVO);
-        addCheckInfoMaps(checkRoleMap,deptMap,userJobs,checkUserDTOS,6);
+        if(deptMap!=null&&!deptMap.isEmpty())
+        {
+            //2.3获取所有医生信息的核查数
+            List<String> doctorIds = checkUserDTOS.stream().map(CheckUserDTO::getDoctorId).collect(Collectors.toList());
+            CheckUserVO checkUserVO = new CheckUserVO();
+            checkUserVO.setJobType(CheckJobTypeEnum.HOSP_SUPERVISOR.getKey());
+            checkUserVO.setUserList(doctorIds);
+            checkUserVO.setDeptIds(new ArrayList<>(deptMap.keySet()));
+            //通过核查人员id获取核查人员的核查任务数
+            List<DeptCheckUserDTO> userJobs = baseMapper.getJobNumByUserId(checkUserVO);
+            addCheckInfoMaps(checkRoleMap,deptMap,userJobs,checkUserDTOS,CheckerRoleEnum.HOSP_SUPERVISOR.getKey());
+        }
+        else {
+            checkRoleMap.put(CheckerRoleEnum.HOSP_SUPERVISOR.getKey()+"",new ArrayList<>());
+        }
+
     }
     /**
      * @Author songxl
@@ -420,23 +443,32 @@ public class MedCheckInfoFacade extends MedCheckInfoServiceImpl {
         if(deptIds.contains(zkkDeptId))
         {
             CheckUserVO checkUserVOS = new CheckUserVO();
-            checkUserVOS.setRoleIds(Lists.newArrayList(7L,8L,9L));
-            checkUserVOS.setDeptStations(Lists.newArrayList("住院","质管"));
-            checkUserVOS.setUserId(principleId);
-            checkUserVOS.setRoleId(5L);
+            //质管科人员角色
+            checkUserVOS.setRoleIds(Lists.newArrayList(CheckerRoleEnum.QUAT_GENERAL.getKey()*1l));
+            //质管科
+            checkUserVOS.setDeptStations(Lists.newArrayList("质管"));
+            checkUserVOS.setDeptIds(Lists.newArrayList(zkkDeptId));
             checkUserVOS.setHospitalId(hospitalId);
             List<CheckUserDTO> checkUserDTOS = baseMapper.getCheckUser(checkUserVOS);
             //2.1获取科室详情
             Map<String,String> deptMap = checkUserDTOS.stream()
                     .collect(Collectors.toMap(CheckUserDTO::getDeptId,CheckUserDTO::getDeptName, (v1, v2) -> v2));
-            //2.3获取所有医生信息的核查数
-            List<String> doctorIds = checkUserDTOS.stream().map(CheckUserDTO::getDoctorId).collect(Collectors.toList());
-            CheckUserVO checkUserVO = new CheckUserVO();
-            checkUserVO.setJobType(2);
-            checkUserVO.setUserList(doctorIds);
-            //通过核查人员id获取核查人员的核查任务数
-            List<DeptCheckUserDTO> userJobs = baseMapper.getJobNumByUserId(checkUserVO);
-            addCheckInfoMaps(checkRoleMap,deptMap,userJobs,checkUserDTOS,5);
+            if(deptMap!=null&&!deptMap.isEmpty())
+            {
+                //2.3获取质控科核查人员的核查数
+                List<String> doctorIds = checkUserDTOS.stream().map(CheckUserDTO::getDoctorId).collect(Collectors.toList());
+                CheckUserVO checkUserVO = new CheckUserVO();
+                checkUserVO.setJobType(CheckJobTypeEnum.QUAT_SUPERVISOR.getKey());
+                checkUserVO.setUserList(doctorIds);
+                checkUserVO.setDeptIds(Lists.newArrayList(zkkDeptId));
+                //通过核查人员id获取核查人员的核查任务数
+                List<DeptCheckUserDTO> userJobs = baseMapper.getJobNumByUserId(checkUserVO);
+                addCheckInfoMaps(checkRoleMap,deptMap,userJobs,checkUserDTOS,CheckerRoleEnum.QUAT_SUPERVISOR.getKey());
+            }
+            else {
+                checkRoleMap.put(CheckerRoleEnum.QUAT_SUPERVISOR.getKey()+"",new ArrayList<>());
+            }
+
         }
 
     }
@@ -457,8 +489,15 @@ public class MedCheckInfoFacade extends MedCheckInfoServiceImpl {
                 .eq("user_id",principleId)
         ).stream().map(SysUserDept::getDeptId).collect(Collectors.toList());
         if(deptIds.isEmpty()){return;}
+        //1.2去除质管科
+        String zkkDeptId = basDeptInfoFacade.getOne(new QueryWrapper<BasDeptInfo>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_id",hospitalId)
+                .like("dept_name","质管科")).getDeptId();
+        if(StringUtil.isNotBlank(zkkDeptId)){deptIds.remove(zkkDeptId);}
         CheckUserVO checkUserVOS = new CheckUserVO();
-        checkUserVOS.setRoleIds(Lists.newArrayList(4L,7L));
+        //科室普通核查人员角色筛选
+        checkUserVOS.setRoleIds(Lists.newArrayList(CheckerRoleEnum.DEPT_GENERAL.getKey()*1l));
         checkUserVOS.setDeptIds(deptIds);
         checkUserVOS.setDeptStations(Lists.newArrayList("住院"));
         checkUserVOS.setHospitalId(hospitalId);
@@ -466,14 +505,24 @@ public class MedCheckInfoFacade extends MedCheckInfoServiceImpl {
         //2.1获取科室详情
         Map<String,String> deptMap = checkUserDTOS.stream()
                 .collect(Collectors.toMap(CheckUserDTO::getDeptId,CheckUserDTO::getDeptName, (v1, v2) -> v2));
-        //2.3获取所有医生信息的核查数
-        List<String> doctorIds = checkUserDTOS.stream().map(CheckUserDTO::getDoctorId).collect(Collectors.toList());
-        CheckUserVO checkUserVO = new CheckUserVO();
-        checkUserVO.setJobType(0);
-        checkUserVO.setUserList(doctorIds);
-        //通过核查人员id获取核查人员的核查任务数
-        List<DeptCheckUserDTO> userJobs = baseMapper.getJobNumByUserId(checkUserVO);
-        addCheckInfoMaps(checkRoleMap,deptMap,userJobs,checkUserDTOS,4);
+        if(deptMap!=null&&!deptMap.isEmpty())
+        {
+            //2.3获取所有医生信息的核查数
+            List<String> doctorIds = checkUserDTOS.stream().map(CheckUserDTO::getDoctorId).collect(Collectors.toList());
+            CheckUserVO checkUserVO = new CheckUserVO();
+            checkUserVO.setJobType(CheckJobTypeEnum.DEPT_SUPERVISOR.getKey());
+            checkUserVO.setUserList(doctorIds);
+            checkUserVO.setDeptIds(deptIds);
+            //通过核查人员id获取核查人员的核查任务数
+            List<DeptCheckUserDTO> userJobs = baseMapper.getJobNumByUserId(checkUserVO);
+            addCheckInfoMaps(checkRoleMap,deptMap,userJobs,checkUserDTOS,CheckerRoleEnum.DEPT_SUPERVISOR.getKey());
+        }
+        else {
+            checkRoleMap.put(CheckerRoleEnum.DEPT_SUPERVISOR.getKey()+"",new ArrayList<>());
+        }
+
+
+
     }
 
     /**
@@ -515,8 +564,9 @@ public class MedCheckInfoFacade extends MedCheckInfoServiceImpl {
                 //遍历数量
                 for(DeptCheckUserDTO jobNumDto:userJobs)
                 {
-                    //有这个人
-                    if(deptCheckUserDTO.getDoctorId().equals(jobNumDto.getDoctorId()))
+                    //这个科室有这个人
+                    if(deptCheckUserDTO.getDeptId().equals(jobNumDto.getDeptId())&&
+                            deptCheckUserDTO.getDoctorId().equals(jobNumDto.getDoctorId()))
                     {
                         deptCheckUserDTO.setJobNum(jobNumDto.getJobNum());
                     }
@@ -532,60 +582,6 @@ public class MedCheckInfoFacade extends MedCheckInfoServiceImpl {
     }
 
 
-    /**
-     * @Author songxl
-     * @Description 拼装科室、核查人员、任务数对象
-     * @Date  2021/5/17
-     * @Param [checkRoleMap, doctorInfos, userJobs, deptInfos, roleId]
-     * @Return void
-     * @MethodName addCheckInfoMap
-     */
-    private void addCheckInfoMap(Map<String, List<CheckDeptDTO>> checkRoleMap, List<BasDoctorInfo> doctorInfos,
-                                 List<DeptCheckUserDTO> userJobs, List<BasDeptInfo> deptInfos, int roleId) {
-        if(deptInfos.isEmpty()||doctorInfos.isEmpty()){}
-        checkRoleMap.put(roleId+"",new ArrayList<CheckDeptDTO>());
-        //遍历科室
-        for(BasDeptInfo deptInfo:deptInfos)
-        {
-            //科室对象
-            CheckDeptDTO checkDeptDTO = new CheckDeptDTO();
-            checkDeptDTO.setDeptId(deptInfo.getDeptId());
-            checkDeptDTO.setDeptName(deptInfo.getDeptName());
-            checkDeptDTO.setDeptcheckUsers(new ArrayList<DeptCheckUserDTO>());
-            //遍历医生
-            for(BasDoctorInfo doctorInfo:doctorInfos)
-            {
-                //同一科室
-                if(checkDeptDTO.getDeptId().equals(doctorInfo.getDeptId()))
-                {
-                    DeptCheckUserDTO deptCheckUserDTO = new DeptCheckUserDTO();
-                    deptCheckUserDTO.setDeptId(doctorInfo.getDeptId());
-                    deptCheckUserDTO.setDeptName(deptInfo.getDeptName());
-                    deptCheckUserDTO.setDoctorId(doctorInfo.getDoctorId());
-                    deptCheckUserDTO.setDoctorName(doctorInfo.getName());
-                    checkDeptDTO.getDeptcheckUsers().add(deptCheckUserDTO);
-                }
-            }
-            for(DeptCheckUserDTO deptCheckUserDTO:checkDeptDTO.getDeptcheckUsers())
-            {
-                //遍历数量
-                for(DeptCheckUserDTO jobNumDto:userJobs)
-                {
-                    //有这个人
-                    if(deptCheckUserDTO.getDoctorId().equals(jobNumDto.getDoctorId()))
-                    {
-                        deptCheckUserDTO.setJobNum(jobNumDto.getJobNum());
-                    }
-                    //没有这个人
-                    else
-                    {
-                        deptCheckUserDTO.setJobNum(0);
-                    }
-                }
-            }
-            checkRoleMap.get(roleId+"").add(checkDeptDTO);
-        }
-    }
 
     /**
      * @Author songxl
@@ -626,6 +622,14 @@ public class MedCheckInfoFacade extends MedCheckInfoServiceImpl {
         {
             throw new CommonException(CommonErrorCode.PARAM_IS_NULL,"入参为空");
         }
+        //全院的话要判断院级核查人员和核查病历不是同一科室
+        if(StringUtil.isNotBlank(distributionJobVO.getCheckDept())
+                &&distributionJobVO.getBehospitalDepts()!=null
+                &&!distributionJobVO.getBehospitalDepts().isEmpty()){
+            if(distributionJobVO.getBehospitalDepts().contains(distributionJobVO.getCheckDept())){
+                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR,"院级核查人员和核查病历是同一科室");
+            }
+        }
         //获取人员id 和 该人员的医院id
         Long hospitalId = Long.valueOf(SysUserUtils.getCurrentHospitalID());
         Long principleId = Long.valueOf(SysUserUtils.getCurrentPrincipleID());
@@ -716,6 +720,22 @@ public class MedCheckInfoFacade extends MedCheckInfoServiceImpl {
         {
             throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "没有传核查用户id!");
         }
-        return baseMapper.getCheckListByUserId(checkJobVO);
+        List<CheckJobDTO> checkJobDTOS= baseMapper.getCheckListByUserId(checkJobVO);
+        //获取当前登录人员
+        Long principleId = Long.valueOf(SysUserUtils.getCurrentPrincipleID());
+        List<CheckJobDTO> outCheckJobDTOS = new ArrayList<>();
+        //判断分配人员是否是当前人员
+        for(CheckJobDTO checkJobDTO:checkJobDTOS)
+        {
+            if (principleId.equals(checkJobDTO.getJobDistributor()))
+            {
+                checkJobDTO.setDelFlag(true);
+            }
+            else {
+                checkJobDTO.setDelFlag(false);
+            }
+            outCheckJobDTOS.add(checkJobDTO);
+        }
+        return outCheckJobDTOS;
     }
 }

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

@@ -5,7 +5,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.CheckWorkDTO;
 import com.diagbot.dto.MedicalRecordDTO;
-import com.diagbot.entity.*;
+import com.diagbot.entity.MedBehospitalType;
+import com.diagbot.entity.MedCheckInfo;
+import com.diagbot.entity.SysTaskCron;
+import com.diagbot.entity.SysUser;
+import com.diagbot.enums.CheckJobTypeEnum;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
@@ -24,7 +28,12 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
-import java.util.*;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.stream.Collectors;
 
 
 /**
@@ -242,7 +251,7 @@ public class MedCheckWorkFacade {
         }
     }
 
-    public boolean getCheckListByUserId() {
+    public boolean createMedBeHospitalInfoType() {
         //1.获取定时任务
         SysTaskCron task = sysTaskCronFacade.getOne(new QueryWrapper<SysTaskCron>()
                 .eq("cron_code", "TASK019"), false);

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

@@ -23,9 +23,5 @@ public class CheckUserVO {
     private Long hospitalId;
     //科室类型集合
     private List<String> deptStations;
-    //角色id
-    private  Long roleId;
-    //用户id
-    private  Long userId;
 
 }

+ 4 - 0
src/main/java/com/diagbot/vo/DistributionJobVO.java

@@ -27,6 +27,10 @@ public class DistributionJobVO {
     //核查用户姓名
     @ApiModelProperty("核查用户姓名")
     private String checkName;
+    @ApiModelProperty("核查用户科室id")
+    private String checkDept;
+    @ApiModelProperty("病人住院科室集合")
+    private List<String> behospitalDepts;
     //操作类型 分配或取消 0-分配,1-取消分配
     @ApiModelProperty("操作类型 分配或取消 0-分配,1-取消分配")
     private String distributionType;

+ 3 - 3
src/main/java/com/diagbot/web/MedCheckInfoController.java

@@ -71,7 +71,7 @@ public class MedCheckInfoController {
                     "或<br>" +
                     "behosDateStart:  出院开始时间 必填<br>" +
                     "behosDateEnd:  出院结束时间 必填<br>" +
-                    "jobType:核查任务类型 必填 0-科室任务 1-院级 2-质控科<br>" )
+                    "jobType:核查任务类型 必填 0-科室任务  1-质控科 2-院级<br>" )
     @PostMapping("/getCheckList")
     @SysLogger("getCheckList")
     public RespDTO<IPage<CheckJobDTO>> getCheckList(@RequestBody CheckJobPageVO checkJobPageVO) {
@@ -105,7 +105,7 @@ public class MedCheckInfoController {
                     "备注:如果历史患者病历类型已经生成,接口只会筛选当前时间前半个小时入院患者生成类型")
     @PostMapping("/createMedBeHospitalInfoType")
     @SysLogger("createMedBeHospitalInfoType")
-    public RespDTO<Boolean> getCheckListByUserId() {
-        return RespDTO.onSuc(medCheckWorkFacade.getCheckListByUserId());
+    public RespDTO<Boolean> createMedBeHospitalInfoType() {
+        return RespDTO.onSuc(medCheckWorkFacade.createMedBeHospitalInfoType());
     }
 }

+ 39 - 36
src/main/resources/mapper/MedCheckInfoMapper.xml

@@ -31,26 +31,19 @@
         a.id doctorId,
         a.linkman doctorName,
         c.dept_id deptId,
-        d.dept_name deptName,
-        b.role_id  roleId
+        d.dept_name deptName
         from
         sys_user a,sys_user_role b,sys_user_dept c ,bas_dept_info d
         where a.id = b.user_id and a.is_deleted = "N" and b.is_deleted = "N" and c.is_deleted = "N" and a.id = c.user_id
         and d.dept_id = c.dept_id and c.hospital_id = d.hospital_id
         and c.hospital_id = #{hospitalId}
-        <if test="roleIds !=null and roleIds.size()!=0 and roleId ==null and userId ==null">
+        <if test="roleIds !=null and roleIds.size()!=0 ">
             and b.role_id in
             <foreach collection="roleIds" item="item" open="(" close=")" separator=",">
                 #{item}
             </foreach>
         </if>
-        <if test="roleIds !=null and roleIds.size()!=0 and roleId !=null and userId !=null">
-            and (b.role_id in
-            <foreach collection="roleIds" item="item" open="(" close=")" separator=",">
-                #{item}
-            </foreach>
-             or (b.role_id =#{roleId} and  a.id = #{userId}))
-        </if>
+
         <if test="deptIds !=null and deptIds.size()!=0">
             and c.dept_id in
             <foreach collection="deptIds" item="item" open="(" close=")" separator=",">
@@ -67,21 +60,28 @@
     <!--通过核查人员id获取核查人员的核查任务数-->
     <select id="getJobNumByUserId" resultType="com.diagbot.dto.DeptCheckUserDTO">
         SELECT
-        check_id doctorId,
+        a.beh_dept_id deptId ,
+        b.check_id doctorId,
         count(*) as jobNum
         from
-        med_check_info
-        where is_deleted = 'N' and job_distribution_name is not null
-        <if test="jobType != null and jobType != ''">
-            and job_type = #{jobType}
+        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 b.job_distribution_name is not null
+        <if test="jobType != null ">
+            and b.job_type = #{jobType}
         </if>
-        <if test="userList !=null">
-            and check_id in
+        <if test="userList !=null and userList.size!=0">
+            and b.check_id in
             <foreach collection="userList" item="item" open="(" close=")" separator=",">
                 #{item}
             </foreach>
         </if>
-        GROUP BY check_id
+        <if test="deptIds !=null and deptIds.size()!=0">
+            and a.beh_dept_id in
+            <foreach collection="deptIds" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        GROUP BY a.beh_dept_id
     </select>
 
     <!--获取待分配核查任务列表-->
@@ -115,39 +115,33 @@
                     <![CDATA[ AND b.job_create_time >= #{startTime}]]>
                 </if>
                 <if test="endTime != null and endTime != ''">
-                    <![CDATA[ AND b.job_create_time < #{endTime}]]>
+                    <![CDATA[ AND b.job_create_time <= #{endTime}]]>
                 </if>
 
                 <if test="behosDateStart != null and behosDateStart != ''">
                     <![CDATA[ AND a.leave_hospital_date >= #{behosDateStart}]]>
                 </if>
                 <if test="behosDateEnd != null and behosDateEnd != ''">
-                    <![CDATA[ AND a.leave_hospital_date < #{behosDateEnd}]]>
+                    <![CDATA[ AND a.leave_hospital_date <= #{behosDateEnd}]]>
                  </if>
                 <if test="doctorName !=null and doctorName != ''">
-                    and a.doctor_name = #{doctorName}
+                    and a.doctor_name LIKE CONCAT('%',#{doctorName},'%')
                 </if>
                 <if test="behospitalCode !=null and behospitalCode != ''">
-                    and a.behospital_code = #{behospitalCode}
+                    and a.behospital_code LIKE CONCAT('%',#{behospitalCode},'%')
                 </if>
                 <if test="name !=null and name != ''">
                     and a.`name` LIKE CONCAT('%',#{name},'%')
                 </if>
-                <if test="deptList !=null and deptList.size()!=0 and jobType ==0">
+                <if test="deptList !=null and deptList.size()!=0">
                     and a.beh_dept_id in
                     <foreach collection="deptList" item="item" open="(" close=")" separator=",">
                         #{item}
                     </foreach>
                 </if>
-                <if test="deptList !=null and deptList.size()!=0 and jobType ==1">
-                    and a.beh_dept_id not in
-                    <foreach collection="deptList" item="item" open="(" close=")" separator=",">
-                        #{item}
-                    </foreach>
-                </if>
 
         ) a LEFT JOIN med_behospital_type b on a.behospital_code = b.behospital_code
-        and a.hospital_id = b.hospital_id and b.is_deleted = 'N' ORDER BY b.`value` DESC ,a.leave_hospital_date DESC
+        and a.hospital_id = b.hospital_id and b.is_deleted = 'N'
     </select>
 
 
@@ -158,8 +152,10 @@
         a.beh_dept_name behospitalDept,
         a.doctor_name attendingDoctor,
         a.leave_hospital_date leaveHospitalDate,
-        a.`name`,b.`value`,
-        a.id
+        a.`name`,
+        b.`value`,
+        a.id,
+        a.job_distributor jobDistributor
         from
         (select
             a.behospital_code,
@@ -169,7 +165,8 @@
             a.leave_hospital_date,
             a.hospital_id,
             a.beh_dept_id,
-            b.id
+            b.id,
+            b.job_distributor
             from
             med_behospital_info a ,med_check_info b
             where a.behospital_code = b.behospital_code and a.hospital_id = b.hospital_id and a.is_deleted = 'N'
@@ -178,20 +175,26 @@
                 <![CDATA[ AND b.job_create_time >= #{startTime}]]>
             </if>
             <if test="endTime != null and endTime != ''">
-                <![CDATA[ AND b.job_create_time < #{endTime}]]>
+                <![CDATA[ AND b.job_create_time <= #{endTime}]]>
             </if>
 
             <if test="behosDateStart != null and behosDateStart != ''">
                 <![CDATA[ AND a.leave_hospital_date >= #{behosDateStart}]]>
             </if>
             <if test="behosDateEnd != null and behosDateEnd != ''">
-                <![CDATA[ AND a.leave_hospital_date < #{behosDateEnd}]]>
+                <![CDATA[ AND a.leave_hospital_date <= #{behosDateEnd}]]>
             </if>
             <if test="checkId !=null and checkId != ''">
                 and b.check_id = #{checkId}
             </if>
+            <if test="deptList !=null and deptList.size()!=0">
+                and a.beh_dept_id in
+                <foreach collection="deptList" item="item" open="(" close=")" separator=",">
+                    #{item}
+                </foreach>
+            </if>
         ) a LEFT JOIN med_behospital_type b on a.behospital_code = b.behospital_code
-        and a.hospital_id = b.hospital_id and b.is_deleted = 'N' ORDER BY b.`value` DESC ,a.leave_hospital_date DESC
+        and a.hospital_id = b.hospital_id and b.is_deleted = 'N'
     </select>
     <select id="getCheckWorkPage" resultType="com.diagbot.dto.CheckWorkDTO">
         SELECT