Browse Source

Merge branch '20210512_yw_check' into debug

# Conflicts:
#	src/main/java/com/diagbot/config/ResourceServerConfigurer.java
#	src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
#	src/test/java/com/diagbot/CodeGeneration.java
songxinlu 4 years ago
parent
commit
1105b5266c

+ 3 - 0
src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -235,6 +235,9 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/consoleByDept/medicalCheckFormKs").permitAll()
                 .antMatchers("/print/export/medicalCheckExportByDept").permitAll()
                 .antMatchers("/consoleByDept/medicalCheckTitleKs").permitAll()
+                .antMatchers("/qc/behospitalInfo/logicDelCase").permitAll()
+                .antMatchers("/qc/medCheckInfo/getCheckUserMap").permitAll()
+                .antMatchers("/qc/medCheckInfo/getCheckList").permitAll()
                 .antMatchers("/**").authenticated();
         //                .antMatchers("/**").permitAll();
     }

+ 3 - 0
src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -279,6 +279,9 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/consoleByDept/medicalCheckFormKs", request)
                 || matchers("/print/export/medicalCheckExportByDept", request)
                 || matchers("/consoleByDept/medicalCheckTitleKs", request)
+                || matchers("/qc/behospitalInfo/logicDelCase", request)
+                || matchers("/qc/medCheckInfo/getCheckUserMap", request)
+                || matchers("/qc/medCheckInfo/getCheckList", request)
                 || matchers("/", request)) {
             return true;
         }

+ 91 - 0
src/main/java/com/diagbot/dto/CheckWorkDTO.java

@@ -0,0 +1,91 @@
+package com.diagbot.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * @Description:
+ * @author: wangsy
+ * @time: 2021/5/13 15:00
+ */
+@Getter
+@Setter
+public class CheckWorkDTO {
+
+    /**
+     * 病人住院序号
+     */
+    private String behospitalCode;
+
+    /**
+     * 病人姓名
+     */
+    private String name;
+
+
+    /**
+     * 病案号
+     */
+    private String fileCode;
+
+    /**
+     * 性别
+     */
+    private String sex;
+
+    /**
+     * 年龄
+     */
+    private String age;
+
+    /**
+     * 科室
+     */
+    private String behospitalDept;
+
+    /**
+     * 出院日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date leaveHospitalDate;
+
+
+    /**
+     * 住院天数
+     */
+    private String behospitalDayNum;
+
+    /**
+     * 主管医生
+     */
+    private String attendingDoctor;
+
+    /**
+     * 病历等级
+     */
+    private String level;
+
+    /**
+     * 主诊断
+     */
+    private String diagnose;
+
+    /**
+     * 筛选分值
+     */
+    private String value;
+
+    /**
+     * 生成状态
+     */
+    private String creatStatus;
+
+    /**
+     * 生成日期
+     */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date gmtCreate;
+}

+ 23 - 19
src/main/java/com/diagbot/entity/MedCheckInfo.java

@@ -87,15 +87,11 @@ public class MedCheckInfo implements Serializable {
      */
     private Integer checkType;
 
-    /**
-     * 生成状态(0未生成,1已生成)
-     */
-    private Integer createStatus;
 
     /**
      * 核查任务创建人编号
      */
-    private String jobCreator;
+    private Long jobCreator;
 
     /**
      * 核查任务创建人
@@ -115,7 +111,7 @@ public class MedCheckInfo implements Serializable {
     /**
      * 核查任务分配人编号
      */
-    private String jobDistributor;
+    private Long jobDistributor;
 
     /**
      * 核查任务分配人姓名
@@ -131,18 +127,26 @@ public class MedCheckInfo implements Serializable {
     @Override
     public String toString() {
         return "MedCheckInfo{" +
-            "id=" + id +
-            ", isDeleted=" + isDeleted +
-            ", gmtCreate=" + gmtCreate +
-            ", gmtModified=" + gmtModified +
-            ", creator=" + creator +
-            ", modifier=" + modifier +
-            ", behospitalCode=" + behospitalCode +
-            ", hospitalId=" + hospitalId +
-            ", checkId=" + checkId +
-            ", checkName=" + checkName +
-            ", checkTime=" + checkTime +
-            ", status=" + status +
-        "}";
+                "id=" + id +
+                ", isDeleted=" + isDeleted +
+                ", gmtCreate=" + gmtCreate +
+                ", gmtModified=" + gmtModified +
+                ", creator=" + creator +
+                ", modifier=" + modifier +
+                ", behospitalCode=" + behospitalCode +
+                ", hospitalId=" + hospitalId +
+                ", checkId=" + checkId +
+                ", checkName=" + checkName +
+                ", checkTime=" + checkTime +
+                ", status=" + status +
+                ", checkType=" + checkType +
+                ", jobCreator=" + jobCreator +
+                ", jobCreatorName=" + jobCreatorName +
+                ", jobCreateTime=" + jobCreateTime +
+                ", jobType=" + jobType +
+                ", jobDistributor=" + jobDistributor +
+                ", jobDistributionName=" + jobDistributionName +
+                ", jobDistributionTime=" + jobDistributionTime +
+                "}";
     }
 }

+ 273 - 0
src/main/java/com/diagbot/facade/MedCheckInfoFacade.java

@@ -2,21 +2,33 @@ package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.diagbot.dto.CheckDeptDTO;
+import com.diagbot.dto.DeptCheckUserDTO;
+import com.diagbot.entity.BasDeptInfo;
+import com.diagbot.entity.BasDoctorInfo;
 import com.diagbot.entity.MedCheckInfo;
+import com.diagbot.entity.SysRole;
 import com.diagbot.entity.SysUser;
+import com.diagbot.entity.SysUserDept;
+import com.diagbot.entity.SysUserRole;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.MedCheckInfoServiceImpl;
 import com.diagbot.util.DateUtil;
+import com.diagbot.util.StringUtil;
 import com.diagbot.util.SysUserUtils;
+import com.diagbot.vo.CheckUserVO;
 import com.diagbot.vo.MedCheckInfoAddVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @author wangfeng
@@ -28,6 +40,17 @@ public class MedCheckInfoFacade extends MedCheckInfoServiceImpl {
 
     @Autowired
     SysUserFacade sysUserFacade;
+    @Autowired
+    SysUserRoleFacade sysUserRoleFacade;
+    @Autowired
+    SysRoleFacade sysRoleFacade;
+    @Autowired
+    SysUserDeptFacade sysUserDeptFacade;
+    @Autowired
+    BasDoctorInfoFacade basDoctorInfoFacade;
+    @Autowired
+    BasDeptInfoFacade basDeptInfoFacade;
+
 
     /**
      * @param medCheckInfoAddVO
@@ -108,4 +131,254 @@ public class MedCheckInfoFacade extends MedCheckInfoServiceImpl {
         }
         return res;
     }
+    /**
+     * @Author songxl
+     * @Description 获取操作用户的核查科室以及人员
+     * @Date  2021/5/14
+     * @Param []
+     * @Return java.util.Map<java.lang.String,java.util.List<com.diagbot.dto.CheckDeptDTO>>
+     * @MethodName getCheckUserMap
+     */
+    public Map<String, List<CheckDeptDTO>> getCheckUserMap() {
+
+        //1.获取当前用户对应的管理员角色
+        //获取人员id 和 该人员的医院id
+        Long hospitalId = Long.valueOf(SysUserUtils.getCurrentHospitalID());
+        Long principleId = Long.valueOf(SysUserUtils.getCurrentPrincipleID());
+        //获取核查监管相关角色id
+        List<Long> checkRoleIds = sysRoleFacade.list(new QueryWrapper<SysRole>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .like("name","监管人员")
+        ).stream().map(SysRole::getId).collect(Collectors.toList());
+        //查询该角色的所有角色id
+        List<Long> roleIds = sysUserRoleFacade.list(new QueryWrapper<SysUserRole>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("user_id", principleId)
+//                .in("role_id",checkRoleIds)
+        ).stream().distinct().map(SysUserRole::getRoleId).collect(Collectors.toList());
+        List<Long> searchRoleIds = new ArrayList<>();
+        //当前用户是监管人员或者是超级管理员
+        if(roleIds.contains(-1))
+        {
+               searchRoleIds.addAll(checkRoleIds);
+        }
+        else{
+            searchRoleIds.addAll(containsRole(checkRoleIds,roleIds));
+        }
+        if(searchRoleIds.isEmpty())
+        {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "该用户不是核查监管人员!");
+        }
+        //2.获取相应角色对应的科室以及核查人员
+        Map<String, List<CheckDeptDTO>> checkUserMap = getCheckRoleMap(searchRoleIds,hospitalId,principleId);
+        return checkUserMap;
+    }
+    /**
+     * @Author songxl
+     * @Description 获取相应角色对应的科室以及核查人员
+     * @Date  2021/5/14
+     * @Param [searchRoleIds]
+     * @Return java.util.Map<java.lang.String,java.util.List<java.util.Map<java.lang.String,java.lang.Object>>>
+     * @MethodName getCheckRoleMap
+     */
+
+    private Map<String, List<CheckDeptDTO>> getCheckRoleMap(List<Long> searchRoleIds,Long hospitalId,Long principleId) {
+        Map<String, List<CheckDeptDTO>> checkRoleMap = new HashMap<>();
+        for(Long id:searchRoleIds)
+        {
+            //不同角色不同查询方式
+            switch (id.intValue())
+            {
+                //临床科室监管人员
+                case 4:
+                    getDeptCheckInfo(checkRoleMap,hospitalId,principleId);
+                    break;
+                //质控科监管人员
+                case 5:
+                    getZKKCheckInfo(checkRoleMap,hospitalId,principleId);
+                    break;
+                //院级监管人员
+                case 6:
+                    getYQCheckInfo(checkRoleMap,hospitalId,principleId);
+                    break;
+                default:
+                    break;
+
+
+            }
+        }
+        return checkRoleMap;
+    }
+
+    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();
+        //1.2获取院级质控人员该角色的用户id集合
+        List<Long> userIds = sysUserRoleFacade.list(new QueryWrapper<SysUserRole>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("role_id",roleId)
+        ).stream().map(SysUserRole::getUserId).collect(Collectors.toList());
+        //1.3获取该用户id集合的科室id集合
+        List<String> deptIds = sysUserDeptFacade.list(new QueryWrapper<SysUserDept>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_id",hospitalId)
+                .in("user_id",userIds)
+        ).stream().map(SysUserDept::getDeptId).collect(Collectors.toList());
+        //2.1获取质控人员的科室信息
+        List<BasDeptInfo> deptInfos = basDeptInfoFacade.list(new QueryWrapper<BasDeptInfo>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_id",hospitalId)
+                .in("dept_id",deptIds));
+        //2.2获取监管科室集合所有的医生信息
+        List<BasDoctorInfo> doctorInfos = basDoctorInfoFacade.list(new QueryWrapper<BasDoctorInfo>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_id",hospitalId)
+                .in("dept_id",deptIds));
+        //2.3获取所有医生信息的核查数
+        List<String> doctorIds = doctorInfos.stream().map(BasDoctorInfo::getDoctorId).collect(Collectors.toList());
+        CheckUserVO checkUserVO = new CheckUserVO();
+        checkUserVO.setJobType(1);
+        checkUserVO.setUserList(doctorIds);
+        //通过核查人员id获取核查人员的核查任务数
+        List<DeptCheckUserDTO> userJobs = this.getJobNumByUserId(checkUserVO);
+        addCheckInfoMap(checkRoleMap,doctorInfos,userJobs,deptInfos,6);
+    }
+
+    private void getZKKCheckInfo(Map<String, List<CheckDeptDTO>> checkRoleMap, Long hospitalId, Long principleId) {
+        //1.获取质控科id
+        String zkkDeptId = basDeptInfoFacade.getOne(new QueryWrapper<BasDeptInfo>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_id",hospitalId)
+                .like("dept_name","质管科")).getDeptId();
+        if(StringUtil.isBlank(zkkDeptId))
+        {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "科室质管科不存在!");
+        }
+        //2.获取监管人员所在科室集合
+        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());
+        //3.判断这个人是否在质控科
+        if(deptIds.contains(zkkDeptId))
+        {
+            //4.1获取所有科室
+            List<BasDeptInfo> deptInfos = basDeptInfoFacade.list(new QueryWrapper<BasDeptInfo>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("hospital_id",hospitalId));
+            //4.2获取所有医生信息
+            List<BasDoctorInfo> doctorInfos = basDoctorInfoFacade.list(new QueryWrapper<BasDoctorInfo>()
+                    .eq("is_deleted", IsDeleteEnum.N.getKey())
+                    .eq("hospital_id",hospitalId));
+            //4.3获取所有医生信息的核查数
+            List<String> doctorIds = doctorInfos.stream().map(BasDoctorInfo::getDoctorId).collect(Collectors.toList());
+            CheckUserVO checkUserVO = new CheckUserVO();
+            checkUserVO.setJobType(2);
+            checkUserVO.setUserList(doctorIds);
+            //通过核查人员id获取核查人员的核查任务数
+            List<DeptCheckUserDTO> userJobs = this.getJobNumByUserId(checkUserVO);
+            addCheckInfoMap(checkRoleMap,doctorInfos,userJobs,deptInfos,5);
+        }
+
+    }
+
+    private void getDeptCheckInfo(Map<String, List<CheckDeptDTO>> checkRoleMap, Long hospitalId, Long principleId) {
+        //1.获取监管人员所在科室集合
+        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());
+        //2.1获取科室详情
+        List<BasDeptInfo> deptInfos = basDeptInfoFacade.list(new QueryWrapper<BasDeptInfo>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_id",hospitalId)
+                .in("dept_id",deptIds));
+        //2.2获取监管科室集合所有的医生信息
+        List<BasDoctorInfo> doctorInfos = basDoctorInfoFacade.list(new QueryWrapper<BasDoctorInfo>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_id",hospitalId)
+                .in("dept_id",deptIds));
+        //2.3获取所有医生信息的核查数
+        List<String> doctorIds = doctorInfos.stream().map(BasDoctorInfo::getDoctorId).collect(Collectors.toList());
+        CheckUserVO checkUserVO = new CheckUserVO();
+        checkUserVO.setJobType(0);
+        checkUserVO.setUserList(doctorIds);
+        //通过核查人员id获取核查人员的核查任务数
+        List<DeptCheckUserDTO> userJobs = this.getJobNumByUserId(checkUserVO);
+        addCheckInfoMap(checkRoleMap,doctorInfos,userJobs,deptInfos,4);
+    }
+
+    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);
+        }
+        System.out.println(checkRoleMap.size());
+    }
+
+    /**
+     * @Author songxl
+     * @Description list求交集
+     * @Date  2021/5/14
+     * @Param [checkRoleIds, roleIds]
+     * @Return java.util.List<java.lang.Long>
+     * @MethodName containsRole
+     */
+    private  List<Long> containsRole(List<Long> checkRoleIds, List<Long> roleIds) {
+
+        List<Long> searchRoleIds = new ArrayList<>();
+        for(Long id:roleIds)
+        {
+            if(checkRoleIds.contains(id))
+            {
+                searchRoleIds.add(id);
+            }
+        }
+        return searchRoleIds;
+    }
 }

+ 99 - 71
src/main/java/com/diagbot/facade/MedCheckWorkFacade.java

@@ -1,6 +1,8 @@
 package com.diagbot.facade;
 
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.CheckWorkDTO;
 import com.diagbot.dto.MedicalRecordDTO;
 import com.diagbot.entity.MedBehospitalType;
 import com.diagbot.entity.MedCheckWork;
@@ -12,15 +14,11 @@ import com.diagbot.service.impl.MedicalRecordServiceImpl;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.StringUtil;
 import com.diagbot.util.SysUserUtils;
-import com.diagbot.vo.MedCheckWorkAddVO;
-import com.diagbot.vo.RecordContentVO;
-import com.diagbot.vo.RecordTypeVO;
-import com.diagbot.vo.TaskVO;
+import com.diagbot.vo.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 
@@ -32,15 +30,16 @@ import java.util.List;
 @Component
 public class MedCheckWorkFacade extends MedCheckWorkServiceImpl {
     @Autowired
-    private  MedCheckWorkServiceImpl medCheckWorkServiceImpl;
+    private MedCheckWorkServiceImpl medCheckWorkServiceImpl;
     @Autowired
     private MedBehospitalTypeServiceImpl medBehospitalTypeServiceImpl;
     @Autowired
     private MedicalRecordServiceImpl medicalRecordServiceImpl;
+
     /**
      * @Author songxl
      * @Description 批量插入任务
-     * @Date  2021/5/11
+     * @Date 2021/5/11
      * @Param [medCheckWorkVOList]
      * @Return java.lang.Boolean
      * @MethodName addCheck
@@ -50,11 +49,10 @@ public class MedCheckWorkFacade extends MedCheckWorkServiceImpl {
         Long hospitalId = Long.parseLong(SysUserUtils.getCurrentHospitalID());
         String create = SysUserUtils.getCurrentPrincipleID();
         List<MedCheckWork> checkWorkList = new ArrayList<>();
-        for(MedCheckWorkAddVO medCheckWorkAddVO:medCheckWorkVOList)
-        {
+        for (MedCheckWorkAddVO medCheckWorkAddVO : medCheckWorkVOList) {
             //入参验证
             if (StringUtil.isBlank(medCheckWorkAddVO.getBehospitalCode())
-                    ||StringUtil.isBlank(medCheckWorkAddVO.getWorkType())) {
+                    || StringUtil.isBlank(medCheckWorkAddVO.getWorkType())) {
                 throw new CommonException(CommonErrorCode.PARAM_IS_NULL, "病历id或任务类型不能为空!");
             }
             MedCheckWork medCheckWork = new MedCheckWork();
@@ -67,12 +65,13 @@ public class MedCheckWorkFacade extends MedCheckWorkServiceImpl {
             medCheckWork.setId(Long.valueOf(medCheckWorkAddVO.getBehospitalCode()));
             checkWorkList.add(medCheckWork);
         }
-        return medCheckWorkServiceImpl.saveBatch(checkWorkList,10);
+        return medCheckWorkServiceImpl.saveBatch(checkWorkList, 10);
     }
+
     /**
      * @Author songxl
      * @Description 获取每日住院患者的类型(出院、病危、抢救。。。)
-     * @Date  2021/5/11
+     * @Date 2021/5/11
      * @Param [param]
      * @Return void
      * @MethodName execute
@@ -87,105 +86,134 @@ public class MedCheckWorkFacade extends MedCheckWorkServiceImpl {
 
 
         //定义批量插入的集合
-        HashMap<String,MedBehospitalType> medBehospitalTypeMap = null;
+        HashMap<String, MedBehospitalType> medBehospitalTypeMap = null;
         //1.判断患者类型表是否有记录
         int count = medBehospitalTypeServiceImpl.count();
-        if(count>0)
-        {
+        if (count > 0) {
             medBehospitalTypeMap = new HashMap<>();
             //2.1获取最近指定归档时间间隔的患者
             RecordTypeVO recordContentVO = new RecordTypeVO();
             recordContentVO.setHospitalId(hospiatlId);
             recordContentVO.setModeList(new ArrayList<String>(typeValue.keySet()));
             recordContentVO.setIsPlacefile(1l);//获取已归档的患者
-            recordContentVO.setStartTime(DateUtil.formatDateTime(DateUtil.addMinutes(DateUtil.now(),-30)));
+            recordContentVO.setStartTime(DateUtil.formatDateTime(DateUtil.addMinutes(DateUtil.now(), -30)));
             recordContentVO.setEndTime(DateUtil.formatDateTime(DateUtil.now()));
             getPatientRecordType(medBehospitalTypeMap,
-                    medicalRecordServiceImpl.getMedicalRecord(recordContentVO),typeValue,typeName,hospiatlId);
-        }
-        else
-        {
-           //2.2添加今天之前所有患者的类型
-           //2.2.1获取所有数据数量
-           medBehospitalTypeMap = new HashMap<>();
-           RecordTypeVO recordContentVO = new RecordTypeVO();
-           recordContentVO.setHospitalId(hospiatlId);
-           recordContentVO.setModeList(new ArrayList<String>(typeValue.keySet()));
-           recordContentVO.setIsPlacefile(1l);//获取已归档的患者
-           int num =  medicalRecordServiceImpl.getRecordCount(recordContentVO);
-           if(num>0)
-           {
-
-               if(num<searchSize)
-               {
+                    medicalRecordServiceImpl.getMedicalRecord(recordContentVO), typeValue, typeName, hospiatlId);
+        } else {
+            //2.2添加今天之前所有患者的类型
+            //2.2.1获取所有数据数量
+            medBehospitalTypeMap = new HashMap<>();
+            RecordTypeVO recordContentVO = new RecordTypeVO();
+            recordContentVO.setHospitalId(hospiatlId);
+            recordContentVO.setModeList(new ArrayList<String>(typeValue.keySet()));
+            recordContentVO.setIsPlacefile(1l);//获取已归档的患者
+            int num = medicalRecordServiceImpl.getRecordCount(recordContentVO);
+            if (num > 0) {
+
+                if (num < searchSize) {
                     //执行一次
-                   recordContentVO.setStart(0L);
-                   recordContentVO.setEnd(num+0L);
-                   getPatientRecordType(medBehospitalTypeMap,
-                           medicalRecordServiceImpl.getMedicalRecord(recordContentVO),typeValue,typeName,hospiatlId);
-               }
-               int i = num/searchSize+1;
-               for(int j=0;j<i;j++)
-               {
-                   //5000个一次循环添加
-                   recordContentVO.setStart(j*searchSize*1L);
-                   recordContentVO.setEnd(searchSize*1L);
-                   getPatientRecordType(medBehospitalTypeMap,
-                           medicalRecordServiceImpl.getMedicalRecord(recordContentVO),typeValue,typeName,hospiatlId);
-               }
-
-           }
-
-           //3.批量执行插入操作
-            if(medBehospitalTypeMap.size()>0)
-            {
+                    recordContentVO.setStart(0L);
+                    recordContentVO.setEnd(num + 0L);
+                    getPatientRecordType(medBehospitalTypeMap,
+                            medicalRecordServiceImpl.getMedicalRecord(recordContentVO), typeValue, typeName, hospiatlId);
+                }
+                int i = num / searchSize + 1;
+                for (int j = 0; j < i; j++) {
+                    //5000个一次循环添加
+                    recordContentVO.setStart(j * searchSize * 1L);
+                    recordContentVO.setEnd(searchSize * 1L);
+                    getPatientRecordType(medBehospitalTypeMap,
+                            medicalRecordServiceImpl.getMedicalRecord(recordContentVO), typeValue, typeName, hospiatlId);
+                }
+
+            }
+
+            //3.批量执行插入操作
+            if (medBehospitalTypeMap.size() > 0) {
                 List<MedBehospitalType> medBehospitalTypeList = new ArrayList<>(medBehospitalTypeMap.values());
-                medBehospitalTypeServiceImpl.saveBatch(medBehospitalTypeList,batchSize);
+                medBehospitalTypeServiceImpl.saveBatch(medBehospitalTypeList, batchSize);
             }
 
         }
 
     }
+
     /**
      * @Author songxl
      * @Description 获取患者类型存入批量插入map
-     * @Date  2021/5/11
+     * @Date 2021/5/11
      * @Param [medBehospitalTypeMap, medicalRecordList, typeValue, typeName, hospiatlId]
      * @Return void
      * @MethodName getPatientRecordType
      */
-    private void getPatientRecordType(HashMap<String,MedBehospitalType> medBehospitalTypeMap,
+    private void getPatientRecordType(HashMap<String, MedBehospitalType> medBehospitalTypeMap,
                                       List<MedicalRecordDTO> medicalRecordList,
                                       JSONObject typeValue,
-                                      JSONObject typeName,Long hospiatlId) {
+                                      JSONObject typeName, Long hospiatlId) {
 
-        if(medicalRecordList==null || medicalRecordList.isEmpty()){return;}
+        if (medicalRecordList == null || medicalRecordList.isEmpty()) {
+            return;
+        }
         //1.遍历查询出来的结果
-        for(MedicalRecordDTO medicalRecordDTO:medicalRecordList)
-        {
+        for (MedicalRecordDTO medicalRecordDTO : medicalRecordList) {
             //2.判断批量插入map中有没有这个患者
-            if(medBehospitalTypeMap.containsKey(medicalRecordDTO.getBehospitalCode()))
-            {
+            if (medBehospitalTypeMap.containsKey(medicalRecordDTO.getBehospitalCode())) {
                 //3.比较这两次的分值大小
                 int lval = medBehospitalTypeMap.get(medicalRecordDTO.getBehospitalCode()).getValue();
-                int nval = typeValue.getInteger(medicalRecordDTO.getModeId()+"");
-                if(nval>lval)
-                {
+                int nval = typeValue.getInteger(medicalRecordDTO.getModeId() + "");
+                if (nval > lval) {
                     medBehospitalTypeMap.get(medicalRecordDTO.getBehospitalCode()).setValue(nval);
                     medBehospitalTypeMap.get(medicalRecordDTO.getBehospitalCode())
-                            .setBehospitalType(typeName.getString(medicalRecordDTO.getModeId()+""));
+                            .setBehospitalType(typeName.getString(medicalRecordDTO.getModeId() + ""));
                 }
-            }
-            else {
+            } else {
                 //4.获取分值记录这个患者
                 MedBehospitalType medBehospitalType = new MedBehospitalType();
                 medBehospitalType.setBehospitalCode(medicalRecordDTO.getBehospitalCode());
-                medBehospitalType.setBehospitalType(typeName.getString(medicalRecordDTO.getModeId()+""));
-                medBehospitalType.setValue(typeValue.getInteger(medicalRecordDTO.getModeId()+""));
+                medBehospitalType.setBehospitalType(typeName.getString(medicalRecordDTO.getModeId() + ""));
+                medBehospitalType.setValue(typeValue.getInteger(medicalRecordDTO.getModeId() + ""));
                 medBehospitalType.setCreateTime(DateUtil.now());
                 medBehospitalType.setHospitalId(hospiatlId);
-                medBehospitalTypeMap.put(medicalRecordDTO.getBehospitalCode(),medBehospitalType);
+                medBehospitalTypeMap.put(medicalRecordDTO.getBehospitalCode(), medBehospitalType);
             }
         }
     }
+
+
+    /**
+     * 分页
+     *
+     * @param checkWorkPageVO
+     * @return
+     */
+    public IPage<CheckWorkDTO> pageFac(CheckWorkPageVO checkWorkPageVO) {
+        checkWorkPageSet(checkWorkPageVO);
+        IPage<CheckWorkDTO> res = getCheckWorkPage(checkWorkPageVO);
+        return res;
+    }
+
+    private void checkWorkPageSet(CheckWorkPageVO checkWorkPageVO) {
+        //入参验证
+        //出院时间
+        if (null != checkWorkPageVO && null != checkWorkPageVO.getStartDate()) {
+            checkWorkPageVO.setStartDate(DateUtil.getFirstTimeOfDay(checkWorkPageVO.getStartDate()));
+        }
+        if (null != checkWorkPageVO && null != checkWorkPageVO.getEndDate()) {
+            checkWorkPageVO.setEndDate(DateUtil.getFirstTimeOfDay(DateUtil.addDay(checkWorkPageVO.getEndDate(), 1)));
+        }
+        if (null != checkWorkPageVO && null != checkWorkPageVO.getStartDate() && null != checkWorkPageVO.getEndDate()) {
+            if (DateUtil.after(checkWorkPageVO.getStartDate(), checkWorkPageVO.getEndDate())) {
+                throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, "出院时间的开始时间必须小于结束时间!");
+            }
+        }
+        //住院天数
+        if (null != checkWorkPageVO && null != checkWorkPageVO.getSDay() && null != checkWorkPageVO.getLDay()) {
+            if (checkWorkPageVO.getSDay() > checkWorkPageVO.getLDay()) {
+                throw new CommonException(CommonErrorCode.PARAM_IS_ERROR, "住院天数区间有误!");
+            }
+        }
+        checkWorkPageVO.setHospitalId(Long.parseLong(SysUserUtils.getCurrentHospitalID()));
+    }
+
 }

+ 2 - 1
src/main/java/com/diagbot/facade/QcClientFacade.java

@@ -34,7 +34,8 @@ public class QcClientFacade {
             throw new CommonException(CommonErrorCode.NOT_EXISTS, "配置表内找不到评分接口地址数据!");
         }
         try {
-            uri = new URI(url);
+//            uri = new URI(url);
+            uri = new URI("http://localhost:6010");
         } catch (Exception e) {
             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR);
         }

+ 1 - 0
src/main/java/com/diagbot/facade/QcresultInfoFacade.java

@@ -250,6 +250,7 @@ public class QcresultInfoFacade extends QcresultInfoServiceImpl {
                         .set("opt_type", 3)
                         .set("modifier", useId)
                         .set("gmt_modified", now)
+                        .set("explain_info",algorithmVO.getOptResultAlgVO().getExplainInfo())
                 );
                 break;
             case 4:

+ 9 - 1
src/main/java/com/diagbot/mapper/MedCheckInfoMapper.java

@@ -1,7 +1,12 @@
 package com.diagbot.mapper;
 
+import com.diagbot.dto.DeptCheckUserDTO;
 import com.diagbot.entity.MedCheckInfo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.vo.CheckJobVO;
+import com.diagbot.vo.CheckUserVO;
+
+import java.util.List;
 
 /**
  * <p>
@@ -12,5 +17,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @since 2020-07-06
  */
 public interface MedCheckInfoMapper extends BaseMapper<MedCheckInfo> {
-
+    //通过核查人员id获取核查人员的核查任务数
+    List<DeptCheckUserDTO> getJobNumByUserId(CheckUserVO checkUserVO);
+    //获取未分配的核查任务
+    List<Object> getCheckList(CheckJobVO checkJobVO);
 }

+ 11 - 0
src/main/java/com/diagbot/mapper/MedCheckWorkMapper.java

@@ -1,7 +1,10 @@
 package com.diagbot.mapper;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.CheckWorkDTO;
 import com.diagbot.entity.MedCheckWork;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.vo.CheckWorkPageVO;
 
 /**
  * <p>
@@ -13,4 +16,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface MedCheckWorkMapper extends BaseMapper<MedCheckWork> {
 
+    /**
+     * 核查任务列表
+     *
+     * @param checkWorkPageVO
+     * @return
+     */
+    public IPage<CheckWorkDTO> getCheckWorkPage(CheckWorkPageVO checkWorkPageVO);
+
 }

+ 8 - 0
src/main/java/com/diagbot/service/MedCheckInfoService.java

@@ -1,7 +1,12 @@
 package com.diagbot.service;
 
+import com.diagbot.dto.DeptCheckUserDTO;
 import com.diagbot.entity.MedCheckInfo;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.diagbot.vo.CheckJobVO;
+import com.diagbot.vo.CheckUserVO;
+
+import java.util.List;
 
 /**
  * <p>
@@ -12,5 +17,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
  * @since 2020-07-06
  */
 public interface MedCheckInfoService extends IService<MedCheckInfo> {
+    //通过核查人员id获取核查人员的核查任务数
+    List<DeptCheckUserDTO> getJobNumByUserId(CheckUserVO checkUserVO);
 
+    List<Object> getCheckList(CheckJobVO checkJobVO);
 }

+ 14 - 0
src/main/java/com/diagbot/service/impl/MedCheckInfoServiceImpl.java

@@ -1,11 +1,16 @@
 package com.diagbot.service.impl;
 
+import com.diagbot.dto.DeptCheckUserDTO;
 import com.diagbot.entity.MedCheckInfo;
 import com.diagbot.mapper.MedCheckInfoMapper;
 import com.diagbot.service.MedCheckInfoService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.vo.CheckJobVO;
+import com.diagbot.vo.CheckUserVO;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  * <p>
  * 核查表 服务实现类
@@ -17,4 +22,13 @@ import org.springframework.stereotype.Service;
 @Service
 public class MedCheckInfoServiceImpl extends ServiceImpl<MedCheckInfoMapper, MedCheckInfo> implements MedCheckInfoService {
 
+    @Override
+    public List<DeptCheckUserDTO> getJobNumByUserId(CheckUserVO checkUserVO) {
+        return baseMapper.getJobNumByUserId(checkUserVO);
+    }
+
+    @Override
+    public List<Object> getCheckList(CheckJobVO checkJobVO) {
+        return baseMapper.getCheckList(checkJobVO);
+    }
 }

+ 7 - 0
src/main/java/com/diagbot/service/impl/MedCheckWorkServiceImpl.java

@@ -1,9 +1,12 @@
 package com.diagbot.service.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.diagbot.dto.CheckWorkDTO;
 import com.diagbot.entity.MedCheckWork;
 import com.diagbot.mapper.MedCheckWorkMapper;
 import com.diagbot.service.MedCheckWorkService;
+import com.diagbot.vo.CheckWorkPageVO;
 import org.springframework.stereotype.Service;
 
 /**
@@ -17,4 +20,8 @@ import org.springframework.stereotype.Service;
 @Service
 public class MedCheckWorkServiceImpl extends ServiceImpl<MedCheckWorkMapper, MedCheckWork> implements MedCheckWorkService {
 
+    public IPage<CheckWorkDTO> getCheckWorkPage(CheckWorkPageVO checkWorkPageVO) {
+        return baseMapper.getCheckWorkPage(checkWorkPageVO);
+    }
+
 }

+ 89 - 0
src/main/java/com/diagbot/vo/CheckWorkPageVO.java

@@ -0,0 +1,89 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * <p>
+ * 核查患者病历信息
+ * </p>
+ *
+ * @author wangsy
+ * @since 2021-05-13
+ */
+@Data
+public class CheckWorkPageVO extends Page implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 出院开始时间
+     */
+    private Date startDate;
+
+    /**
+     * 出院结束时间
+     */
+    private Date endDate;
+
+    /**
+     * 生成状态[0-未生成 1-已生成(默认未生成)]
+     */
+    private String creatStatus="0";
+
+    /**
+     * 医院ID
+     */
+    @ApiModelProperty(hidden = true)
+    private Long hospitalId;
+
+    /**
+     * 病人住院序号
+     */
+    private String behospitalCode;
+
+    /**
+     * 科室
+     */
+    private String department;
+
+    /**
+     * 病历等级
+     */
+    private String level;
+
+    /**
+     * 病人姓名
+     */
+    private String name;
+
+    /**
+     * 医生姓名
+     */
+    private String doctorName;
+
+    /**
+     * 主诊断
+     */
+    private String diagnose;
+
+    /**
+     * 最小天数
+     */
+    private Integer sDay;
+
+    /**
+     * 最大天数
+     */
+    private Integer lDay;
+
+    /**
+     * 是否归档(0:未归档,1:已归档)
+     */
+    private String isPlacefile = "1";
+
+}

+ 20 - 4
src/main/java/com/diagbot/web/MedCheckInfoController.java

@@ -2,8 +2,10 @@ package com.diagbot.web;
 
 
 import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.CheckDeptDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.MedCheckInfoFacade;
+import com.diagbot.vo.CheckJobVO;
 import com.diagbot.vo.MedCheckInfoAddVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -13,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -45,10 +48,23 @@ public class MedCheckInfoController {
 
     @ApiOperation(value = "获取核查人员列表[by:songxl]",
             notes = "获取核查人员列表")
-    @PostMapping("/getCheckUserList")
-    @SysLogger("getCheckUserList")
-    public RespDTO<Map<String, Object>> getCheckUserList() {
+    @PostMapping("/getCheckUserMap")
+    @SysLogger("getCheckUserMap")
+    public RespDTO<Map<String, List<CheckDeptDTO>>> getCheckUserMap() {
+        Map<String, List<CheckDeptDTO>> userInfoMap = medCheckInfoFacade.getCheckUserMap();
+        return RespDTO.onSuc(userInfoMap);
+    }
+
 
-        return RespDTO.onSuc(null);
+    @ApiOperation(value = "获取待分配核查任务列表[by:songxl]",
+            notes = "startTime:任务生成开始时间 必填<br>" +
+                    "endTime:  任务生成结束时间 必填<br>" +
+                    "checkType:核查类型 必填 0-科室任务 1-院级 2-质控科<br>" +
+                    "deptList:明细id,必填<br>")
+    @PostMapping("/getCheckList")
+    @SysLogger("getCheckList")
+    public RespDTO<List<Object>> getCheckList(@RequestBody CheckJobVO checkJobVO) {
+        List<Object> userInfos = medCheckInfoFacade.getCheckList(checkJobVO);
+        return RespDTO.onSuc(userInfos);
     }
 }

+ 24 - 0
src/main/java/com/diagbot/web/MedCheckWorkController.java

@@ -1,9 +1,12 @@
 package com.diagbot.web;
 
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.CheckWorkDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.MedCheckWorkFacade;
+import com.diagbot.vo.CheckWorkPageVO;
 import com.diagbot.vo.MedCheckWorkAddVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -39,4 +42,25 @@ public class MedCheckWorkController {
         Boolean res = medCheckworkFacade.addCheck(medCheckWorkVOList);
         return RespDTO.onSuc(res);
     }
+
+    @ApiOperation(value = "核查任务列表[by:wangsy]",
+            notes = "startDate:出院开始时间<br>" +
+                    "endDate:出院结束时间<br>" +
+                    "creatStatus:生成状态<br>" +
+                    "hospitalId: 医院ID<br>" +
+                    "behospitalCode:病人住院序号<br>" +
+                    "department:科室<br>" +
+                    "level:病历等级<br>" +
+                    "name:病人姓名<br>" +
+                    "doctorName:医生姓名<br>" +
+                    "diagnosis:主诊断<br>" +
+                    "sDay:最小天数<br>" +
+                    "lDay:最大天数<br>" +
+                    "isPlacefile:是否归档<br>")
+    @PostMapping("/getUserList")
+    @SysLogger("getUserList")
+    public RespDTO<IPage<CheckWorkDTO>> checkWorkPage(@RequestBody CheckWorkPageVO checkWorkPageVO) {
+        IPage<CheckWorkDTO> data = medCheckworkFacade.pageFac(checkWorkPageVO);
+        return RespDTO.onSuc(data);
+    }
 }

+ 32 - 1
src/main/resources/mapper/MedCheckInfoMapper.xml

@@ -17,7 +17,6 @@
         <result column="check_time" property="checkTime" />
         <result column="status" property="status" />
         <result column="check_type" property="checkType" />
-        <result column="create_status" property="createStatus" />
         <result column="job_creator" property="jobCreator" />
         <result column="job_creator_name" property="jobCreatorName" />
         <result column="job_create_time" property="jobCreateTime" />
@@ -26,5 +25,37 @@
         <result column="job_distribution_name" property="jobDistributionName" />
         <result column="job_distribution_time" property="jobDistributionTime" />
     </resultMap>
+    <!--通过核查人员id获取核查人员的核查任务数-->
+    <select id="getJobNumByUserId" resultType="com.diagbot.dto.DeptCheckUserDTO">
+        SELECT job_distributor doctorId, count(*) as jobNum
+        from med_check_info
+        where is_deleted = 'N'
+        <if test="jobType != null">
+            and job_type = #{jobType}
+        </if>
+        <if test="userList !=null">
+            and job_distributor in
+            <foreach collection="userList" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        GROUP BY job_distributor
+    </select>
 
+    <!--获取待分配核查任务列表-->
+    <select id="getCheckList" resultType="com.diagbot.dto.CheckJobDTO">
+        SELECT job_distributor doctorId, count(*) as jobNum
+        from med_check_info
+        where is_deleted = 'N'
+        <if test="jobType != null">
+            and job_type = #{jobType}
+        </if>
+        <if test="userList !=null">
+            and job_distributor in
+            <foreach collection="userList" item="item" open="(" close=")" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        GROUP BY job_distributor
+    </select>
 </mapper>

+ 75 - 0
src/main/resources/mapper/MedCheckWorkMapper.xml

@@ -19,4 +19,79 @@
         <result column="is_deleted" property="isDeleted" />
     </resultMap>
 
+
+    <select id="getCheckWorkPage" resultType="com.diagbot.dto.CheckWorkDTO">
+        SELECT
+        mbi.behospital_code,
+        mbi.name,
+        mbi.file_code,
+        mbi.sex,
+        mhp.age,
+        mbi.beh_dept_name,
+        mbi.leave_hospital_date,
+        mhp.behospital_day_num,
+        mbi.doctor_name,
+        mqi.level,
+        mbi.diagnose,
+        CASE WHEN mbt.behospital_type='出院病人' THEN '6'
+             WHEN mbt.behospital_type='死亡病人' THEN '6'
+             WHEN mbt.behospital_type='危重病人' THEN '4'
+             WHEN mbt.behospital_type='抢救病人' THEN '5'
+             WHEN mbt.behospital_type='手术病人' THEN '2'
+             WHEN mbt.behospital_type='疑难病人' THEN '3'
+             WHEN mbt.behospital_type='输血病人' THEN '4' ELSE '0' END AS score,
+        CASE WHEN ISNULL(mci.job_create_time) THEN '0' ELSE '1' END AS creatStatus,
+        mci.job_create_time
+        FROM
+        med_behospital_info mbi
+        LEFT JOIN med_home_page mhp
+        ON mbi.behospital_code=mhp.behospital_code
+        AND mbi.hospital_id = mhp.hospital_id
+        LEFT JOIN med_check_info mci
+        ON mbi.behospital_code = mci.behospital_code
+        AND mbi.hospital_id = mci.hospital_id AND mci.is_deleted = 'N'
+        LEFT JOIN med_qcresult_info mqi
+        ON mbi.behospital_code = mqi.behospital_code
+        AND mbi.hospital_id = mqi.hospital_id AND mqi.is_deleted = 'N'
+        LEFT JOIN med_behospital_type mbt ON mbi.behospital_code = mbt.behospital_code
+        AND mbi.hospital_id = mbt.hospital_id AND mbt.is_deleted = 'N'
+        WHERE mbi.is_deleted = 'N'
+        <if test="startDate != null">
+            <![CDATA[ AND mbi.behospital_date >= #{startDate}]]>
+        </if>
+        <if test="endDate != null">
+            <![CDATA[ AND mbi.behospital_date < #{endDate}]]>
+        </if>
+        <if test="creatStatus != null and creatStatus != ''">
+            AND mci.create_status = #{creatStatus}
+        </if>
+        <if test="name != null and name != ''">
+            AND mbi.name like CONCAT('%',#{name},'%')
+        </if>
+        <if test="behospitalCode != null and behospitalCode != ''">
+            AND mbi.behospital_code like CONCAT('%',#{behospitalCode},'%')
+        </if>
+        <if test="department != null and department != ''">
+            AND mbi.beh_dept_name like CONCAT('%',#{department},'%')
+        </if>
+        <if test="sDay != null">
+            <![CDATA[ AND mhp.behospital_day_num >= #{sDay}]]>
+        </if>
+        <if test="lDay != null">
+            <![CDATA[ AND hp.behospital_day_num < #{lDay}]]>
+        </if>
+        <if test="doctorName != null and doctorName != ''">
+            AND mbi.doctor_name LIKE CONCAT( '%', #{doctorName}, '%' )
+        </if>
+        <if test="diagnose != null and diagnose != ''">
+            AND mbi.diagnose LIKE CONCAT( '%', #{diagnose}, '%' )
+        </if>
+        <if test="level != null and level != ''">
+            AND mqi.level= #{level}
+        </if>
+        <if test="isPlacefile != null and isPlacefile != ''">
+            AND mbi.is_placefile = #{isPlacefile}
+        </if>
+    </select>
+
 </mapper>

+ 2 - 2
src/test/java/com/diagbot/CodeGeneration.java

@@ -27,7 +27,7 @@ public class CodeGeneration {
 
         // 全局配置
         GlobalConfig gc = new GlobalConfig();
-        gc.setOutputDir("E://code//mrqcsys");
+        gc.setOutputDir("D://code");
         gc.setFileOverride(true);
         gc.setActiveRecord(false);// 不需要ActiveRecord特性的请改为false
         gc.setEnableCache(false);// XML 二级缓存
@@ -56,7 +56,7 @@ public class CodeGeneration {
         StrategyConfig strategy = new StrategyConfig();
 //        strategy.setTablePrefix(new String[] { "med_" });// 此处可以修改为您的表前缀
         strategy.setNaming(NamingStrategy.underline_to_camel);// 表名生成策略
-        strategy.setInclude(new String[] { "med_qcresult_info"}); // 需要生成的表
+        strategy.setInclude(new String[] { "med_check_info"}); // 需要生成的表
 
         strategy.setSuperServiceClass(null);
         strategy.setSuperServiceImplClass(null);