瀏覽代碼

Merge branch '20220517_v2.8.0通用版_质控核查迭代' into debug

# Conflicts:
#	src/main/java/com/diagbot/config/ResourceServerConfigurer.java
#	src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
#	src/main/resources/bootstrap.yml
songxinlu 3 年之前
父節點
當前提交
0126c1af53
共有 37 個文件被更改,包括 2212 次插入20 次删除
  1. 119 0
      doc/049.20220518v2.8.0_通用版_质控核查迭代/qc_init_v2.8.0_通用版_质控核查迭代.sql
  2. 131 0
      src/main/java/com/diagbot/aop/RunBehospitalInfoTypeAspect.java
  3. 6 6
      src/main/java/com/diagbot/config/ResourceServerConfigurer.java
  4. 3 0
      src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
  5. 72 0
      src/main/java/com/diagbot/dto/GetCheckRecordPageDTO.java
  6. 89 0
      src/main/java/com/diagbot/dto/GetDeptDistributionDTO.java
  7. 177 0
      src/main/java/com/diagbot/entity/CheckDistributionScheme.java
  8. 185 0
      src/main/java/com/diagbot/entity/CheckDistributionSchemePerson.java
  9. 125 0
      src/main/java/com/diagbot/entity/CheckRecord.java
  10. 211 0
      src/main/java/com/diagbot/entity/CheckRecordExamine.java
  11. 65 0
      src/main/java/com/diagbot/facade/CheckDistributionSchemeFacade.java
  12. 25 0
      src/main/java/com/diagbot/facade/CheckRecordExamineFacade.java
  13. 29 0
      src/main/java/com/diagbot/facade/CheckRecordFacade.java
  14. 72 14
      src/main/java/com/diagbot/facade/MedCheckWorkFacade.java
  15. 6 0
      src/main/java/com/diagbot/facade/QcresultInfoFacade.java
  16. 16 0
      src/main/java/com/diagbot/mapper/CheckDistributionSchemeMapper.java
  17. 16 0
      src/main/java/com/diagbot/mapper/CheckDistributionSchemePersonMapper.java
  18. 21 0
      src/main/java/com/diagbot/mapper/CheckRecordExamineMapper.java
  19. 22 0
      src/main/java/com/diagbot/mapper/CheckRecordMapper.java
  20. 16 0
      src/main/java/com/diagbot/service/CheckDistributionSchemePersonService.java
  21. 16 0
      src/main/java/com/diagbot/service/CheckDistributionSchemeService.java
  22. 16 0
      src/main/java/com/diagbot/service/CheckRecordExamineService.java
  23. 16 0
      src/main/java/com/diagbot/service/CheckRecordService.java
  24. 20 0
      src/main/java/com/diagbot/service/impl/CheckDistributionSchemePersonServiceImpl.java
  25. 20 0
      src/main/java/com/diagbot/service/impl/CheckDistributionSchemeServiceImpl.java
  26. 20 0
      src/main/java/com/diagbot/service/impl/CheckRecordExamineServiceImpl.java
  27. 20 0
      src/main/java/com/diagbot/service/impl/CheckRecordServiceImpl.java
  28. 67 0
      src/main/java/com/diagbot/vo/GetCheckRecordPageVO.java
  29. 87 0
      src/main/java/com/diagbot/vo/GetDeptDistributionVO.java
  30. 53 0
      src/main/java/com/diagbot/web/CheckDistributionSchemeController.java
  31. 20 0
      src/main/java/com/diagbot/web/CheckDistributionSchemePersonController.java
  32. 51 0
      src/main/java/com/diagbot/web/CheckRecordController.java
  33. 44 0
      src/main/java/com/diagbot/web/CheckRecordExamineController.java
  34. 33 0
      src/main/resources/mapper/CheckDistributionSchemeMapper.xml
  35. 21 0
      src/main/resources/mapper/CheckDistributionSchemePersonMapper.xml
  36. 165 0
      src/main/resources/mapper/CheckRecordExamineMapper.xml
  37. 137 0
      src/main/resources/mapper/CheckRecordMapper.xml

+ 119 - 0
doc/049.20220518v2.8.0_通用版_质控核查迭代/qc_init_v2.8.0_通用版_质控核查迭代.sql

@@ -0,0 +1,119 @@
+use `qc`;
+
+SET FOREIGN_KEY_CHECKS=0;
+
+-- ----------------------------
+-- Table structure for med_check_distribution_scheme
+-- ----------------------------
+DROP TABLE IF EXISTS `med_check_distribution_scheme`;
+CREATE TABLE `med_check_distribution_scheme` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `hospital_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '医院ID',
+  `dept_ids` varchar(1024) DEFAULT NULL COMMENT '住院科室ID集合(多个用逗号隔开)',
+  `dept_names` varchar(1024) DEFAULT NULL COMMENT '住院科室名称集合(多个用逗号隔开)',
+  `scheme_name` varchar(60) NOT NULL COMMENT '方案名称',
+  `stage` char(3) NOT NULL DEFAULT '0' COMMENT '核查病历阶段(运行病历(未出院):0、  运行病历(已出院):1、 终末病历:2)',
+  `in_time_frame` int(8) DEFAULT NULL COMMENT '入院日期-近多少天',
+  `out_time_frame` int(8) DEFAULT NULL COMMENT '出院日期-近多少天',
+  `level` varchar(32) DEFAULT NULL COMMENT '病历等级',
+  `behospital_type` varchar(32) DEFAULT NULL COMMENT '病历类型(普通病人、手术病人、疑难病人、危重病人、抢救病人、死亡病人)',
+  `check_status` char(3) NOT NULL DEFAULT '0' COMMENT '核查状态(0:未核查 1:已核查)',
+  `is_check_all` char(3) NOT NULL DEFAULT '0' COMMENT '全部核查(0:无 1:全部)',
+  `check_ratio` int(8) DEFAULT NULL COMMENT '核查比例',
+  `check_num` int(8) DEFAULT NULL COMMENT '核查数量',
+  `distribution_type` char(3) NOT NULL DEFAULT '0' COMMENT '分配方式(0:平均分配;1:按比例分配) 默认平均分配',
+  `task_time_limit` int(8) DEFAULT NULL COMMENT '任务时限',
+  `is_timing` char(3) NOT NULL DEFAULT '0' COMMENT '是否定时任务(0:非定时任务 1:是定时任务)',
+  `scheduled_task_expression` varchar(255) DEFAULT NULL COMMENT '任务生成时间表达式',
+  `is_deleted` char(3) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(60) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(60) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='核查分配方案表';
+
+-- ----------------------------
+-- Records of med_check_distribution_scheme
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for med_check_distribution_scheme_person
+-- ----------------------------
+DROP TABLE IF EXISTS `med_check_distribution_scheme_person`;
+CREATE TABLE `med_check_distribution_scheme_person` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `scheme_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '方案id',
+  `check_ratio` int(8) DEFAULT NULL COMMENT '核查比例',
+  `check_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '核查员id',
+  `check_name` varchar(60) DEFAULT NULL COMMENT '核查员姓名',
+  `check_time` datetime DEFAULT NULL COMMENT '核查时间',
+  `is_deleted` char(3) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(60) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(60) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='核查分配方案人员表';
+
+-- ----------------------------
+-- Records of med_check_distribution_scheme_person
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for med_check_record
+-- ----------------------------
+DROP TABLE IF EXISTS `med_check_record`;
+CREATE TABLE `med_check_record` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `hospital_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '医院ID',
+  `behospital_code` varchar(16) NOT NULL COMMENT '病人住院ID',
+  `check_type` char(3) NOT NULL DEFAULT '2' COMMENT '核查类型(0病历,1病案首页,2全部)',
+  `job_creator` bigint(20) NOT NULL DEFAULT '0' COMMENT '核查任务创建人编号',
+  `job_creator_name` varchar(60) DEFAULT NULL COMMENT '核查任务创建人',
+  `job_create_time` datetime DEFAULT NULL COMMENT '核查任务生成时间',
+  `job_type` char(3) NOT NULL DEFAULT '0' COMMENT '核查任务类型(0-科室任务 1-质控科 2-院级)',
+  `job_distributor` bigint(20) NOT NULL DEFAULT '0' COMMENT '核查任务分配人编号',
+  `job_distribution_name` varchar(60) DEFAULT NULL COMMENT '核查任务分配人姓名',
+  `job_distribution_time` datetime DEFAULT NULL COMMENT '核查任务分配时间',
+  `work_flow_node_id` bigint(20) NOT NULL COMMENT '当前工作流节点id',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(60) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(60) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='核查记录表';
+
+-- ----------------------------
+-- Records of med_check_record
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for med_check_record_examine
+-- ----------------------------
+DROP TABLE IF EXISTS `med_check_record_examine`;
+CREATE TABLE `med_check_record_examine` (
+  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
+  `check_record` bigint(20) NOT NULL COMMENT '核查记录id',
+  `hospital_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '医院ID',
+  `behospital_code` varchar(16) NOT NULL COMMENT '病人住院ID',
+  `check_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '核查人编号',
+  `check_name` varchar(60) DEFAULT NULL COMMENT '核查人姓名',
+  `check_time` datetime DEFAULT NULL COMMENT '核查时间',
+  `status` char(3) NOT NULL DEFAULT '0' COMMENT '核查状态(0待核查,1已核查)',
+  `is_deleted` char(1) NOT NULL DEFAULT 'N' COMMENT '是否删除,N:未删除,Y:删除',
+  `gmt_create` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录创建时间',
+  `gmt_modified` datetime NOT NULL DEFAULT '1970-01-01 12:00:00' COMMENT '记录修改时间,如果时间是1970年则表示纪录未修改',
+  `creator` varchar(60) NOT NULL DEFAULT '0' COMMENT '创建人,0表示无创建人值',
+  `modifier` varchar(60) NOT NULL DEFAULT '0' COMMENT '修改人,如果为0则表示纪录未修改',
+  `remark` varchar(255) NOT NULL DEFAULT '' COMMENT '备注',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='核查记录审批表';
+
+-- ----------------------------
+-- Records of med_check_record_examine
+-- ----------------------------

+ 131 - 0
src/main/java/com/diagbot/aop/RunBehospitalInfoTypeAspect.java

@@ -0,0 +1,131 @@
+package com.diagbot.aop;
+
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.entity.SysTaskCron;
+import com.diagbot.facade.MedCheckWorkFacade;
+import com.diagbot.facade.SysTaskCronFacade;
+import com.diagbot.util.HttpUtils;
+import com.diagbot.util.StringUtil;
+import org.apache.commons.collections4.MapUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.aspectj.lang.JoinPoint;
+import org.aspectj.lang.annotation.AfterReturning;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @Description:运行病历每次评分后生成对应的患者类型
+ * @Author: songxl
+ * @time: 2022/5/19 10:18
+ */
+
+@Aspect
+@Component
+public class RunBehospitalInfoTypeAspect {
+    @Autowired
+    private MedCheckWorkFacade medCheckWorkFacade;
+    @Autowired
+    private SysTaskCronFacade sysTaskCronFacade;
+
+    // 操作配置织入点 analyze_rpc
+    @Pointcut("execution(public * com.diagbot.web.BehospitalInfoController.analyzeApi(..))" +
+            "||execution(public * com.diagbot.web.BehospitalInfoController.analyze_rpc(..))" +
+            "||execution(public * com.diagbot.web.BehospitalInfoController.analyzeRun(..))")
+    public void makeTypePointCut() {
+    }
+
+    /**
+     * 操作后执行
+     *
+     * @param joinPoint
+     * @param jsonResult
+     * @Return void
+     */
+    @AfterReturning(pointcut = "makeTypePointCut()", returning = "jsonResult")
+    public void analyzeAfterReturning(JoinPoint joinPoint, Object jsonResult) {
+        try {
+            //获取请求入参
+            String params = getRequestParams(joinPoint);
+            if (StringUtils.isNotBlank(params)) {
+                //生成患者类型
+                makeType(params);
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+
+    /**
+     * 存储消息通知
+     *
+     * @param params
+     * @Return void
+     */
+    private void makeType(String params) {
+        //参数处理
+        if (StringUtil.isNotEmpty(params) && "{".equals(params.substring(0, 1))) {
+            JSONObject paramJSON = JSONObject.parseObject(params);
+            if (StringUtil.isBlank(paramJSON.getString("behospitalCode"))) {
+                return;
+            }
+            SysTaskCron task = sysTaskCronFacade.getOne(new QueryWrapper<SysTaskCron>()
+                    .eq("cron_code", "TASK019"), false);
+            //2.执行定时任务
+            if (null != task && StringUtil.isNotBlank(task.getCron())) {
+                try {
+                    medCheckWorkFacade.execute(task.getParam(), paramJSON.getString("behospitalCode"));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
+
+
+    /**
+     * /**
+     * 获取请求的参数
+     *
+     * @param joinPoint
+     * @Return java.lang.String
+     */
+    private String getRequestParams(JoinPoint joinPoint) throws Exception {
+        Map<String, String[]> map = HttpUtils.getHttpServletRequest().getParameterMap();
+        if (MapUtils.isNotEmpty(map)) {
+            String params = JSONObject.toJSONString(map);
+            return params;
+        } else {
+            Object[] args = joinPoint.getArgs();
+            if (null != args) {
+                return argsArrayToString(joinPoint.getArgs());
+            }
+        }
+        return "";
+    }
+
+    /**
+     * 参数拼装
+     *
+     * @param paramsArray
+     * @Return java.lang.String
+     */
+    private String argsArrayToString(Object[] paramsArray) {
+        String params = "";
+        if (paramsArray != null && paramsArray.length > 0) {
+            for (int i = 0; i < paramsArray.length; i++) {
+                if (null != (paramsArray[i])) {
+                    Object jsonObj = JSONObject.toJSONString(paramsArray[i]);
+                    params += jsonObj.toString() + " ";
+                }
+            }
+        }
+        return params.trim();
+    }
+}
+
+

+ 6 - 6
src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -203,14 +203,8 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/console/medicalCheckForm").permitAll()
                 .antMatchers("/qc/behospitalInfo/analyzeCds").permitAll()
                 .antMatchers("/console/medicalCheckTitle").permitAll()
-                .antMatchers("/console/export/medicalCheckExport").permitAll()
-                .antMatchers("/console/export/medicalCheckInnerExport").permitAll()
                 .antMatchers("/console/badLevelPage").permitAll()
                 .antMatchers("/console/badLevelXYPage").permitAll()
-                .antMatchers("/console/export/badUnQualifiedLevelPagePageExport").permitAll()
-                .antMatchers("/console/export/badQualifiedLevelPagePageExport").permitAll()
-                .antMatchers("/console/export/badUnQualifiedLevelPageXYExport").permitAll()
-                .antMatchers("/console/export/badQualifiedLevelPageXYExport").permitAll()
                 .antMatchers("/qc/medNurse/getMedNursePage").permitAll()
                 .antMatchers("/qc/medRecordOther/getMedRecordOtherPage").permitAll()
                 .antMatchers("/qc/medRecordOther/getMedRecordContentOther").permitAll()
@@ -306,6 +300,12 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/qc/qcType/add").permitAll()
                 .antMatchers("/qc/qcType/update").permitAll()
                 .antMatchers("/qc/qcType/copy").permitAll()
+                .antMatchers("/qc/getDoctorDetail/**").permitAll()
+                .antMatchers("/qcView/data/*").permitAll()
+                .antMatchers("/medDefectFeedback/*").permitAll()
+                .antMatchers("/medNewsNotice/**").permitAll()
+                .antMatchers("/checkDistributionScheme/**").permitAll()
+                .antMatchers("/checkRecord/**").permitAll()
                 .antMatchers("/**").authenticated();
         //                .antMatchers("/**").permitAll();
     }

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

@@ -383,6 +383,9 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/qc/qcType/add", request)
                 || matchers("/qc/qcType/update", request)
                 || matchers("/qc/qcType/copy", request)
+                || matchers("/medNewsNotice/**", request)
+                || matchers("/checkDistributionScheme/**", request)
+                || matchers("/checkRecord/**", request)
                 || matchers("/", request)) {
             return true;
         }

+ 72 - 0
src/main/java/com/diagbot/dto/GetCheckRecordPageDTO.java

@@ -0,0 +1,72 @@
+package com.diagbot.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description:
+ * @author: zhanghang
+ * @time: 2022/5/19 11:17
+ */
+@Data
+public class GetCheckRecordPageDTO implements Serializable {
+
+    private static final long serialVersionUID = 8293787268000187792L;
+    @ApiModelProperty(value = "分配日期")
+    private Date jobDistributionTime;
+
+    @ApiModelProperty(value = "截止日期")
+    private Date jobEndTime;
+
+    @ApiModelProperty(value = "核查日期")
+    private Date checkTime;
+
+    @ApiModelProperty(value = "核查状态(0待核查,1已核查)")
+    private String status;
+
+    @ApiModelProperty(value = "核查人姓名")
+    private String checkName;
+
+    @ApiModelProperty(value = "病历等级")
+    private String level;
+
+    @ApiModelProperty(value = "病人住院序号")
+    private String behospitalCode;
+
+    @ApiModelProperty(value = "病人姓名")
+    private String name;
+
+    @ApiModelProperty(value = "病案号")
+    private String fileCode;
+
+    @ApiModelProperty(value = "性别")
+    private String sex;
+
+    @ApiModelProperty(value = "年龄")
+    private String age;
+
+    @ApiModelProperty(value = "科室")
+    private String behDeptName;
+
+    @ApiModelProperty(value = "入院时间")
+    private Date behospitalDate;
+
+    @ApiModelProperty(value = "出院时间")
+    private Date leaveHospitalDate;
+
+    @ApiModelProperty(value = "住院天数")
+    private String hospitalizationDays;
+
+    @ApiModelProperty(value = "医生姓名")
+    private String directorDoctorName;
+
+    @ApiModelProperty(value = "主诊断")
+    private String diagnose;
+
+    @ApiModelProperty(value = "病历类型")
+    private String behospitalType;
+
+}

+ 89 - 0
src/main/java/com/diagbot/dto/GetDeptDistributionDTO.java

@@ -0,0 +1,89 @@
+package com.diagbot.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 任务分配-科室列表页分页接口-接口出参
+ * @Author songxl
+ * @Date 2022/4/11 9:20
+ */
+@ApiModel(value = "任务分配-科室列表页分页接口-接口出参")
+@Getter
+@Setter
+public class GetDeptDistributionDTO implements Serializable {
+    private static final long serialVersionUID = 2887264914225402143L;
+
+    @ApiModelProperty(value = "病人住院序号")
+    private String behospitalCode;
+
+    @ApiModelProperty(value = "患者姓名")
+    private String name;
+
+    @ApiModelProperty(value = "档案号")
+    private String fileCode;
+
+    @ApiModelProperty(value = "性别")
+    private String sex;
+
+    @ApiModelProperty(value = "年龄")
+    private String age = "";
+
+    @ApiModelProperty(value = "科室")
+    private String behDeptName;
+
+    @ApiModelProperty(value = "入院时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date behospitalDate;
+
+    @ApiModelProperty(value = "出院时间")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    private Date leaveHospitalDate;
+
+    @ApiModelProperty(value = "住院天数")
+    private String behospitalDayNum;
+
+    @ApiModelProperty(value = "主管医生")
+    private String doctorName;
+
+    @ApiModelProperty(value = "病历得分")
+    private Double scoreRes;
+
+    @ApiModelProperty(value = "病历等级")
+    private String level;
+
+    @ApiModelProperty(value = "主诊断")
+    private String diagnose;
+
+    @ApiModelProperty(value = "病历类型")
+    private String behospitalType;
+
+    @ApiModelProperty(value = "病历类型对应分值")
+    private String value;
+
+    @ApiModelProperty(value = "科室核查状态")
+    private String deptCheckStatus;
+
+    @ApiModelProperty(value = "科室核查人")
+    private String deptChName;
+
+    @ApiModelProperty(value = "院级核查状态")
+    private String hospCheckStatus;
+
+    @ApiModelProperty(value = "院级核查人")
+    private String hospChName;
+
+    @ApiModelProperty(value = "质控科核查状态")
+    private String quatCheckStatus;
+
+    @ApiModelProperty(value = "质控科核查人")
+    private String quatChName;
+
+
+}

+ 177 - 0
src/main/java/com/diagbot/entity/CheckDistributionScheme.java

@@ -0,0 +1,177 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 核查分配方案表
+ * </p>
+ *
+ * @author songxl
+ * @since 2022-05-18
+ */
+@TableName("med_check_distribution_scheme")
+@Getter
+@Setter
+public class CheckDistributionScheme implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 住院科室ID集合(多个用逗号隔开)
+     */
+    private String deptIds;
+
+    /**
+     * 住院科室名称集合(多个用逗号隔开)
+     */
+    private String deptNames;
+
+    /**
+     * 方案名称
+     */
+    private String schemeName;
+
+    /**
+     * 核查病历阶段(运行病历(未出院):0、  运行病历(已出院):1、 终末病历:2)
+     */
+    private String stage;
+
+    /**
+     * 入院日期-近多少天
+     */
+    private Integer inTimeFrame;
+
+    /**
+     * 出院日期-近多少天
+     */
+    private Integer outTimeFrame;
+
+    /**
+     * 病历等级
+     */
+    private String level;
+
+    /**
+     * 病历类型(普通病人、手术病人、疑难病人、危重病人、抢救病人、死亡病人)
+     */
+    private String behospitalType;
+
+    /**
+     * 核查状态(0:未核查 1:已核查)
+     */
+    private String checkStatus;
+
+    /**
+     * 全部核查(0:无 1:全部)
+     */
+    private String isCheckAll;
+
+    /**
+     * 核查比例
+     */
+    private Integer checkRatio;
+
+    /**
+     * 核查数量
+     */
+    private Integer checkNum;
+
+    /**
+     * 分配方式(0:平均分配;1:按比例分配) 默认平均分配
+     */
+    private String distributionType;
+
+    /**
+     * 任务时限
+     */
+    private Integer taskTimeLimit;
+
+    /**
+     * 是否定时任务(0:非定时任务 1:是定时任务)
+     */
+    private String isTiming;
+
+    /**
+     * 任务生成时间表达式
+     */
+    private String scheduledTaskExpression;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private LocalDateTime gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private LocalDateTime gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+
+    @Override
+    public String toString() {
+        return "CheckDistributionScheme{" +
+            "id=" + id +
+            ", hospitalId=" + hospitalId +
+            ", deptIds=" + deptIds +
+            ", deptNames=" + deptNames +
+            ", schemeName=" + schemeName +
+            ", stage=" + stage +
+            ", inTimeFrame=" + inTimeFrame +
+            ", outTimeFrame=" + outTimeFrame +
+            ", level=" + level +
+            ", behospitalType=" + behospitalType +
+            ", checkStatus=" + checkStatus +
+            ", isCheckAll=" + isCheckAll +
+            ", checkRatio=" + checkRatio +
+            ", checkNum=" + checkNum +
+            ", distributionType=" + distributionType +
+            ", taskTimeLimit=" + taskTimeLimit +
+            ", isTiming=" + isTiming +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+            ", remark=" + remark +
+        "}";
+    }
+}

+ 185 - 0
src/main/java/com/diagbot/entity/CheckDistributionSchemePerson.java

@@ -0,0 +1,185 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 核查分配方案人员表
+ * </p>
+ *
+ * @author songxl
+ * @since 2022-05-18
+ */
+@TableName("med_check_distribution_scheme_person")
+public class CheckDistributionSchemePerson implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 方案id
+     */
+    private Long schemeId;
+
+    /**
+     * 核查比例
+     */
+    private Integer checkRatio;
+
+    /**
+     * 核查员id
+     */
+    private Long checkId;
+
+    /**
+     * 核查员姓名
+     */
+    private String checkName;
+
+    /**
+     * 核查时间
+     */
+    private LocalDateTime checkTime;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private LocalDateTime gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private LocalDateTime gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+    public Long getSchemeId() {
+        return schemeId;
+    }
+
+    public void setSchemeId(Long schemeId) {
+        this.schemeId = schemeId;
+    }
+    public Integer getCheckRatio() {
+        return checkRatio;
+    }
+
+    public void setCheckRatio(Integer checkRatio) {
+        this.checkRatio = checkRatio;
+    }
+    public Long getCheckId() {
+        return checkId;
+    }
+
+    public void setCheckId(Long checkId) {
+        this.checkId = checkId;
+    }
+    public String getCheckName() {
+        return checkName;
+    }
+
+    public void setCheckName(String checkName) {
+        this.checkName = checkName;
+    }
+    public LocalDateTime getCheckTime() {
+        return checkTime;
+    }
+
+    public void setCheckTime(LocalDateTime checkTime) {
+        this.checkTime = checkTime;
+    }
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+    public LocalDateTime getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(LocalDateTime gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public LocalDateTime getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(LocalDateTime gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "CheckDistributionSchemePerson{" +
+            "id=" + id +
+            ", schemeId=" + schemeId +
+            ", checkRatio=" + checkRatio +
+            ", checkId=" + checkId +
+            ", checkName=" + checkName +
+            ", checkTime=" + checkTime +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+            ", remark=" + remark +
+        "}";
+    }
+}

+ 125 - 0
src/main/java/com/diagbot/entity/CheckRecord.java

@@ -0,0 +1,125 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 核查记录表
+ * </p>
+ *
+ * @author songxl
+ * @since 2022-05-18
+ */
+@TableName("med_check_record")
+@Getter
+@Setter
+@ToString
+public class CheckRecord implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 病人住院ID
+     */
+    private String behospitalCode;
+
+    /**
+     * 核查类型(0病历,1病案首页,2全部)
+     */
+    private String checkType;
+
+    /**
+     * 核查任务创建人编号
+     */
+    private Long jobCreator;
+
+    /**
+     * 核查任务创建人
+     */
+    private String jobCreatorName;
+
+    /**
+     * 核查任务生成时间
+     */
+    private LocalDateTime jobCreateTime;
+
+    /**
+     * 核查任务类型(0-科室任务 1-质控科 2-院级)
+     */
+    private String jobType;
+
+    /**
+     * 核查任务分配人编号
+     */
+    private Long jobDistributor;
+
+    /**
+     * 核查任务分配人姓名
+     */
+    private String jobDistributionName;
+
+    /**
+     * 核查任务分配时间
+     */
+    private LocalDateTime jobDistributionTime;
+
+    /**
+     * 当前工作流节点id
+     */
+    private Long workFlowNodeId;
+
+    /**
+     * 任务截止日期
+     */
+    private Long jobEndTime;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private LocalDateTime gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private LocalDateTime gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 211 - 0
src/main/java/com/diagbot/entity/CheckRecordExamine.java

@@ -0,0 +1,211 @@
+package com.diagbot.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 核查记录审批表
+ * </p>
+ *
+ * @author songxl
+ * @since 2022-05-18
+ */
+@TableName("med_check_record_examine")
+public class CheckRecordExamine implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 核查记录id
+     */
+    private Long checkRecord;
+
+    /**
+     * 医院ID
+     */
+    private Long hospitalId;
+
+    /**
+     * 病人住院ID
+     */
+    private String behospitalCode;
+
+    /**
+     * 核查人编号
+     */
+    private Long checkId;
+
+    /**
+     * 核查人姓名
+     */
+    private String checkName;
+
+    /**
+     * 核查时间
+     */
+    private LocalDateTime checkTime;
+
+    /**
+     * 核查状态(0待核查,1已核查)
+     */
+    private String status;
+
+    /**
+     * 是否删除,N:未删除,Y:删除
+     */
+    private String isDeleted;
+
+    /**
+     * 记录创建时间
+     */
+    private LocalDateTime gmtCreate;
+
+    /**
+     * 记录修改时间,如果时间是1970年则表示纪录未修改
+     */
+    private LocalDateTime gmtModified;
+
+    /**
+     * 创建人,0表示无创建人值
+     */
+    private String creator;
+
+    /**
+     * 修改人,如果为0则表示纪录未修改
+     */
+    private String modifier;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+    public Long getCheckRecord() {
+        return checkRecord;
+    }
+
+    public void setCheckRecord(Long checkRecord) {
+        this.checkRecord = checkRecord;
+    }
+    public Long getHospitalId() {
+        return hospitalId;
+    }
+
+    public void setHospitalId(Long hospitalId) {
+        this.hospitalId = hospitalId;
+    }
+    public String getBehospitalCode() {
+        return behospitalCode;
+    }
+
+    public void setBehospitalCode(String behospitalCode) {
+        this.behospitalCode = behospitalCode;
+    }
+    public Long getCheckId() {
+        return checkId;
+    }
+
+    public void setCheckId(Long checkId) {
+        this.checkId = checkId;
+    }
+    public String getCheckName() {
+        return checkName;
+    }
+
+    public void setCheckName(String checkName) {
+        this.checkName = checkName;
+    }
+    public LocalDateTime getCheckTime() {
+        return checkTime;
+    }
+
+    public void setCheckTime(LocalDateTime checkTime) {
+        this.checkTime = checkTime;
+    }
+    public String getStatus() {
+        return status;
+    }
+
+    public void setStatus(String status) {
+        this.status = status;
+    }
+    public String getIsDeleted() {
+        return isDeleted;
+    }
+
+    public void setIsDeleted(String isDeleted) {
+        this.isDeleted = isDeleted;
+    }
+    public LocalDateTime getGmtCreate() {
+        return gmtCreate;
+    }
+
+    public void setGmtCreate(LocalDateTime gmtCreate) {
+        this.gmtCreate = gmtCreate;
+    }
+    public LocalDateTime getGmtModified() {
+        return gmtModified;
+    }
+
+    public void setGmtModified(LocalDateTime gmtModified) {
+        this.gmtModified = gmtModified;
+    }
+    public String getCreator() {
+        return creator;
+    }
+
+    public void setCreator(String creator) {
+        this.creator = creator;
+    }
+    public String getModifier() {
+        return modifier;
+    }
+
+    public void setModifier(String modifier) {
+        this.modifier = modifier;
+    }
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    @Override
+    public String toString() {
+        return "CheckRecordExamine{" +
+            "id=" + id +
+            ", checkRecord=" + checkRecord +
+            ", hospitalId=" + hospitalId +
+            ", behospitalCode=" + behospitalCode +
+            ", checkId=" + checkId +
+            ", checkName=" + checkName +
+            ", checkTime=" + checkTime +
+            ", status=" + status +
+            ", isDeleted=" + isDeleted +
+            ", gmtCreate=" + gmtCreate +
+            ", gmtModified=" + gmtModified +
+            ", creator=" + creator +
+            ", modifier=" + modifier +
+            ", remark=" + remark +
+        "}";
+    }
+}

+ 65 - 0
src/main/java/com/diagbot/facade/CheckDistributionSchemeFacade.java

@@ -0,0 +1,65 @@
+package com.diagbot.facade;
+
+
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.TypeReference;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.diagbot.entity.SysTaskCron;
+import com.diagbot.service.impl.CheckDistributionSchemeServiceImpl;
+import com.diagbot.util.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @Description:
+ * @author: zhanghang
+ * @time: 2022/5/18 16:48
+ */
+@Component
+public class CheckDistributionSchemeFacade extends CheckDistributionSchemeServiceImpl {
+    @Autowired
+    private SysTaskCronFacade sysTaskCronFacade;
+
+    @Autowired
+    private SysDictionaryFacade sysDictionaryFacade;
+
+    /**
+     * 新增获取病历类型接口
+     *
+     * @param
+     * @return:
+     */
+    public Map<String, String> getAddRecordType() {
+        //条件暂时不加是否删除
+        SysTaskCron sysTaskCron = sysTaskCronFacade.getBaseMapper().selectOne(new QueryWrapper<SysTaskCron>()
+                .eq("cron_code", "TASK019")
+        );
+        Map<String, String> params = new HashMap<>();
+        if (sysTaskCron != null) {
+            String param = sysTaskCron.getParam();
+            if (StringUtil.isNotEmpty(param)) {
+                JSONObject paramJson = JSONObject.parseObject(param);
+                JSONObject typeName = paramJson.getJSONObject("typeName");
+                params = JSONObject.parseObject(typeName.toJSONString(), new TypeReference<Map<String, String>>() {
+                });
+            }
+        }
+        return params;
+    }
+
+
+    /**
+     * 获取分配方案接口
+     *
+     * @param
+     * @return:
+     */
+    public Map<String, String> getDistributionType() {
+        Map<String, Map<String, String>> dictionaryWithKey = sysDictionaryFacade.getDictionaryWithKey();
+        Map<String, String> stringMap = dictionaryWithKey.get("48");
+        return stringMap;
+    }
+}

+ 25 - 0
src/main/java/com/diagbot/facade/CheckRecordExamineFacade.java

@@ -0,0 +1,25 @@
+package com.diagbot.facade;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.GetDeptDistributionDTO;
+import com.diagbot.service.impl.CheckRecordExamineServiceImpl;
+import com.diagbot.util.SysUserUtils;
+import com.diagbot.vo.GetDeptDistributionVO;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * @Description:
+ * @author: zhanghang
+ * @time: 2022/5/18 16:48
+ */
+@Component
+public class CheckRecordExamineFacade extends CheckRecordExamineServiceImpl {
+
+    public IPage<GetDeptDistributionDTO> getDeptDistributionPage(GetDeptDistributionVO getDeptDistributionVO) {
+        getDeptDistributionVO.setHospitalId(Long.parseLong(SysUserUtils.getCurrentHospitalID()));
+        return this.baseMapper.getDeptDistributionPage(getDeptDistributionVO);
+    }
+
+}

+ 29 - 0
src/main/java/com/diagbot/facade/CheckRecordFacade.java

@@ -0,0 +1,29 @@
+package com.diagbot.facade;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.GetCheckRecordPageDTO;
+import com.diagbot.service.impl.CheckRecordServiceImpl;
+import com.diagbot.vo.GetCheckRecordPageVO;
+import org.springframework.stereotype.Component;
+
+
+/**
+ * @Description:
+ * @author: zhanghang
+ * @time: 2022/5/18 16:48
+ */
+@Component
+public class CheckRecordFacade extends CheckRecordServiceImpl {
+
+    /**
+     * 获取病历核查分页接口
+     *
+     * @param
+     * @return:
+     */
+    public IPage<GetCheckRecordPageDTO> getCheckRecordPage(GetCheckRecordPageVO getCheckRecordPagevo) {
+        return this.baseMapper.getCheckRecordPage(getCheckRecordPagevo);
+    }
+
+}

+ 72 - 14
src/main/java/com/diagbot/facade/MedCheckWorkFacade.java

@@ -2,13 +2,16 @@ package com.diagbot.facade;
 
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.BasDeptInfoDTO;
 import com.diagbot.dto.BehospitalInfoAgeDTO;
 import com.diagbot.dto.CheckWorkDTO;
 import com.diagbot.dto.MedicalRecordDTO;
+import com.diagbot.entity.BehospitalInfo;
 import com.diagbot.entity.MedBehospitalType;
 import com.diagbot.entity.MedCheckInfo;
+import com.diagbot.entity.MedicalRecord;
 import com.diagbot.entity.SysTaskCron;
 import com.diagbot.entity.SysUser;
 import com.diagbot.enums.CheckJobTypeEnum;
@@ -18,6 +21,7 @@ import com.diagbot.exception.CommonException;
 import com.diagbot.service.impl.MedBehospitalTypeServiceImpl;
 import com.diagbot.service.impl.MedCheckInfoServiceImpl;
 import com.diagbot.service.impl.MedicalRecordServiceImpl;
+import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.StringUtil;
@@ -180,6 +184,56 @@ public class MedCheckWorkFacade {
         }
     }
 
+
+    /**
+     * @Author songxl
+     * @Description 获取每日住院患者的类型(出院、病危、抢救。。。)
+     * @Date 2021/5/11
+     * @Param [param]
+     * @Return void
+     * @MethodName execute
+     */
+    public void execute(String param, String behospitalCode) {
+        if (StringUtil.isBlank(behospitalCode) || StringUtil.isBlank(param)) {
+            return;
+        }
+        JSONObject paramJson = JSONObject.parseObject(param);
+        JSONObject typeValue = paramJson.getJSONObject("typeVal");
+        JSONObject typeName = paramJson.getJSONObject("typeName");
+        int searchSize = paramJson.getInteger("searchSize");
+        int batchSize = paramJson.getInteger("batchSize");
+
+
+        //定义批量插入的集合
+        HashMap<String, MedBehospitalType> medBehospitalTypeMap = new HashMap<>();
+        //1.获取有指定文书、没有患者类型的患者数据
+        RecordTypeVO recordContentVO = new RecordTypeVO();
+        recordContentVO.setModeList(new ArrayList<>(typeValue.keySet()));
+        List<MedicalRecord> medicalRecords = medicalRecordServiceImpl.list(new QueryWrapper<MedicalRecord>()
+                .eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq(SysUserUtils.getCurrentHospitalID() != null, "hospital_id", SysUserUtils.getCurrentHospitalID())
+                .eq("behospital_code", behospitalCode));
+        List<MedicalRecordDTO> medicalRecordList = BeanUtil.listCopyTo(medicalRecords, MedicalRecordDTO.class);
+        if (medicalRecordList != null && !medicalRecordList.isEmpty()) {
+            getPatientRecordType(medBehospitalTypeMap, medicalRecordList, typeValue, typeName);
+        }
+        //2.批量执行插入操作
+        try {
+            if (medBehospitalTypeMap != null && medBehospitalTypeMap.size() > 0) {
+                //删除原来的插入新的
+                medBehospitalTypeServiceImpl.remove(new UpdateWrapper<MedBehospitalType>()
+                        .eq("is_deleted", IsDeleteEnum.N.getKey())
+                        .eq(SysUserUtils.getCurrentHospitalID() != null, "hospital_id", SysUserUtils.getCurrentHospitalID())
+                        .in("behospital_code", medBehospitalTypeMap.keySet()));
+
+                List<MedBehospitalType> medBehospitalTypeList = new ArrayList<>(medBehospitalTypeMap.values());
+                medBehospitalTypeServiceImpl.saveOrUpdateBatch(medBehospitalTypeList, batchSize);
+            }
+        } catch (Exception e) {
+            log.error(e.getMessage(), e);
+        }
+    }
+
     /**
      * @Author songxl
      * @Description 获取患者类型存入批量插入map
@@ -200,23 +254,27 @@ public class MedCheckWorkFacade {
         for (MedicalRecordDTO medicalRecordDTO : medicalRecordList) {
             //2.判断批量插入map中有没有这个患者
             if (medBehospitalTypeMap.containsKey(medicalRecordDTO.getBehospitalCode())) {
-                //3.比较这两次的分值大小
-                int lval = medBehospitalTypeMap.get(medicalRecordDTO.getBehospitalCode()).getValue();
-                int nval = typeValue.getInteger(medicalRecordDTO.getModeId() + "");
-                if (nval > lval) {
-                    medBehospitalTypeMap.get(medicalRecordDTO.getBehospitalCode()).setValue(nval);
-                    medBehospitalTypeMap.get(medicalRecordDTO.getBehospitalCode())
-                            .setBehospitalType(typeName.getString(medicalRecordDTO.getModeId() + ""));
+                if (typeName.containsKey(medicalRecordDTO.getModeId() + "")) {
+                    //3.比较这两次的分值大小
+                    int lval = medBehospitalTypeMap.get(medicalRecordDTO.getBehospitalCode()).getValue();
+                    int nval = typeValue.getInteger(medicalRecordDTO.getModeId() + "");
+                    if (nval > lval) {
+                        medBehospitalTypeMap.get(medicalRecordDTO.getBehospitalCode()).setValue(nval);
+                        medBehospitalTypeMap.get(medicalRecordDTO.getBehospitalCode())
+                                .setBehospitalType(typeName.getString(medicalRecordDTO.getModeId() + ""));
+                    }
                 }
             } else {
                 //4.获取分值记录这个患者
-                MedBehospitalType medBehospitalType = new MedBehospitalType();
-                medBehospitalType.setBehospitalCode(medicalRecordDTO.getBehospitalCode());
-                medBehospitalType.setBehospitalType(typeName.getString(medicalRecordDTO.getModeId() + ""));
-                medBehospitalType.setValue(typeValue.getInteger(medicalRecordDTO.getModeId() + ""));
-                medBehospitalType.setCreateTime(DateUtil.now());
-                medBehospitalType.setHospitalId(medicalRecordDTO.getHospitalId());
-                medBehospitalTypeMap.put(medicalRecordDTO.getBehospitalCode(), medBehospitalType);
+                if (typeName.containsKey(medicalRecordDTO.getModeId() + "")) {
+                    MedBehospitalType medBehospitalType = new MedBehospitalType();
+                    medBehospitalType.setBehospitalCode(medicalRecordDTO.getBehospitalCode());
+                    medBehospitalType.setBehospitalType(typeName.getString(medicalRecordDTO.getModeId() + ""));
+                    medBehospitalType.setValue(typeValue.getInteger(medicalRecordDTO.getModeId() + ""));
+                    medBehospitalType.setCreateTime(DateUtil.now());
+                    medBehospitalType.setHospitalId(medicalRecordDTO.getHospitalId());
+                    medBehospitalTypeMap.put(medicalRecordDTO.getBehospitalCode(), medBehospitalType);
+                }
             }
         }
     }

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

@@ -168,6 +168,12 @@ public class QcresultInfoFacade extends QcresultInfoServiceImpl {
                 .set("is_deleted", IsDeleteEnum.Y.getKey())
                 .set("modifier", useId)
                 .set("gmt_modified", now));
+        //清空本病历所有历史记录的page_data和menu_data
+        this.update(new UpdateWrapper<QcresultInfo>()
+                .eq("hospital_id", analyzeVO.getHospitalId())
+                .eq("behospital_code", analyzeVO.getBehospitalCode())
+                .set("page_data",null)
+                .set("menu_data",null));
         //新增记录
         QcresultInfo qcresultInfo = new QcresultInfo();
         if (qcresultInfoOld != null) {

+ 16 - 0
src/main/java/com/diagbot/mapper/CheckDistributionSchemeMapper.java

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.CheckDistributionScheme;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 核查分配方案表 Mapper 接口
+ * </p>
+ *
+ * @author songxl
+ * @since 2022-05-18
+ */
+public interface CheckDistributionSchemeMapper extends BaseMapper<CheckDistributionScheme> {
+
+}

+ 16 - 0
src/main/java/com/diagbot/mapper/CheckDistributionSchemePersonMapper.java

@@ -0,0 +1,16 @@
+package com.diagbot.mapper;
+
+import com.diagbot.entity.CheckDistributionSchemePerson;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 核查分配方案人员表 Mapper 接口
+ * </p>
+ *
+ * @author songxl
+ * @since 2022-05-18
+ */
+public interface CheckDistributionSchemePersonMapper extends BaseMapper<CheckDistributionSchemePerson> {
+
+}

+ 21 - 0
src/main/java/com/diagbot/mapper/CheckRecordExamineMapper.java

@@ -0,0 +1,21 @@
+package com.diagbot.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.GetDeptDistributionDTO;
+import com.diagbot.entity.CheckRecordExamine;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.vo.GetDeptDistributionVO;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ * 核查记录审批表 Mapper 接口
+ * </p>
+ *
+ * @author songxl
+ * @since 2022-05-18
+ */
+public interface CheckRecordExamineMapper extends BaseMapper<CheckRecordExamine> {
+
+    IPage<GetDeptDistributionDTO> getDeptDistributionPage(@Param("getDeptDistributionVO") GetDeptDistributionVO getDeptDistributionVO);
+}

+ 22 - 0
src/main/java/com/diagbot/mapper/CheckRecordMapper.java

@@ -0,0 +1,22 @@
+package com.diagbot.mapper;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.GetCheckRecordPageDTO;
+import com.diagbot.dto.GetDeptDistributionDTO;
+import com.diagbot.entity.CheckRecord;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.diagbot.vo.GetCheckRecordPageVO;
+import com.diagbot.vo.GetDeptDistributionVO;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ * 核查记录表 Mapper 接口
+ * </p>
+ *
+ * @author songxl
+ * @since 2022-05-18
+ */
+public interface CheckRecordMapper extends BaseMapper<CheckRecord> {
+    IPage<GetCheckRecordPageDTO>  getCheckRecordPage(@Param("getCheckRecordPagevo") GetCheckRecordPageVO getCheckRecordPagevo);
+}

+ 16 - 0
src/main/java/com/diagbot/service/CheckDistributionSchemePersonService.java

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.CheckDistributionSchemePerson;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 核查分配方案人员表 服务类
+ * </p>
+ *
+ * @author songxl
+ * @since 2022-05-18
+ */
+public interface CheckDistributionSchemePersonService extends IService<CheckDistributionSchemePerson> {
+
+}

+ 16 - 0
src/main/java/com/diagbot/service/CheckDistributionSchemeService.java

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.CheckDistributionScheme;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 核查分配方案表 服务类
+ * </p>
+ *
+ * @author songxl
+ * @since 2022-05-18
+ */
+public interface CheckDistributionSchemeService extends IService<CheckDistributionScheme> {
+
+}

+ 16 - 0
src/main/java/com/diagbot/service/CheckRecordExamineService.java

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.CheckRecordExamine;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 核查记录审批表 服务类
+ * </p>
+ *
+ * @author songxl
+ * @since 2022-05-18
+ */
+public interface CheckRecordExamineService extends IService<CheckRecordExamine> {
+
+}

+ 16 - 0
src/main/java/com/diagbot/service/CheckRecordService.java

@@ -0,0 +1,16 @@
+package com.diagbot.service;
+
+import com.diagbot.entity.CheckRecord;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 核查记录表 服务类
+ * </p>
+ *
+ * @author songxl
+ * @since 2022-05-18
+ */
+public interface CheckRecordService extends IService<CheckRecord> {
+
+}

+ 20 - 0
src/main/java/com/diagbot/service/impl/CheckDistributionSchemePersonServiceImpl.java

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.CheckDistributionSchemePerson;
+import com.diagbot.mapper.CheckDistributionSchemePersonMapper;
+import com.diagbot.service.CheckDistributionSchemePersonService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 核查分配方案人员表 服务实现类
+ * </p>
+ *
+ * @author songxl
+ * @since 2022-05-18
+ */
+@Service
+public class CheckDistributionSchemePersonServiceImpl extends ServiceImpl<CheckDistributionSchemePersonMapper, CheckDistributionSchemePerson> implements CheckDistributionSchemePersonService {
+
+}

+ 20 - 0
src/main/java/com/diagbot/service/impl/CheckDistributionSchemeServiceImpl.java

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.CheckDistributionScheme;
+import com.diagbot.mapper.CheckDistributionSchemeMapper;
+import com.diagbot.service.CheckDistributionSchemeService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 核查分配方案表 服务实现类
+ * </p>
+ *
+ * @author songxl
+ * @since 2022-05-18
+ */
+@Service
+public class CheckDistributionSchemeServiceImpl extends ServiceImpl<CheckDistributionSchemeMapper, CheckDistributionScheme> implements CheckDistributionSchemeService {
+
+}

+ 20 - 0
src/main/java/com/diagbot/service/impl/CheckRecordExamineServiceImpl.java

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.CheckRecordExamine;
+import com.diagbot.mapper.CheckRecordExamineMapper;
+import com.diagbot.service.CheckRecordExamineService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 核查记录审批表 服务实现类
+ * </p>
+ *
+ * @author songxl
+ * @since 2022-05-18
+ */
+@Service
+public class CheckRecordExamineServiceImpl extends ServiceImpl<CheckRecordExamineMapper, CheckRecordExamine> implements CheckRecordExamineService {
+
+}

+ 20 - 0
src/main/java/com/diagbot/service/impl/CheckRecordServiceImpl.java

@@ -0,0 +1,20 @@
+package com.diagbot.service.impl;
+
+import com.diagbot.entity.CheckRecord;
+import com.diagbot.mapper.CheckRecordMapper;
+import com.diagbot.service.CheckRecordService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 核查记录表 服务实现类
+ * </p>
+ *
+ * @author songxl
+ * @since 2022-05-18
+ */
+@Service
+public class CheckRecordServiceImpl extends ServiceImpl<CheckRecordMapper, CheckRecord> implements CheckRecordService {
+
+}

+ 67 - 0
src/main/java/com/diagbot/vo/GetCheckRecordPageVO.java

@@ -0,0 +1,67 @@
+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;
+
+/**
+ * @Description:
+ * @author: zhanghang
+ * @time: 2022/5/19 10:54
+ */
+@Data
+public class GetCheckRecordPageVO extends Page implements Serializable {
+
+    private static final long serialVersionUID = -790951997817612690L;
+    @ApiModelProperty(value = "医院id", required = true)
+    private Long hospitalId;
+
+    @ApiModelProperty(value = "用户id",hidden = true)
+    private String userId;
+
+    @ApiModelProperty(value = "核查任务分配开始时间")
+    private Date jobDistributionTimeStart;
+
+    @ApiModelProperty(value = "核查任务分配结束时间")
+    private Date jobDistributionTimeEnd;
+
+    @ApiModelProperty(value = "病人姓名")
+    private String name;
+
+    @ApiModelProperty(value = "病人住院序号")
+    private String behospitalCode;
+
+    @ApiModelProperty(value = "科室名称")
+    private String deptName;
+
+    @ApiModelProperty(value = "住院开始天数")
+    private Long hospitalizationDaysStart;
+
+    @ApiModelProperty(value = "住院结束天数")
+    private Long hospitalizationDaysEnd;
+
+    @ApiModelProperty(value = "医生姓名")
+    private String doctorName;
+
+    @ApiModelProperty(value = "主诊断")
+    private String diagnoseName;
+
+    @ApiModelProperty(value = "病历等级")
+    private String level;
+
+    @ApiModelProperty(value = "病历类型")
+    private String recordType;
+
+    @ApiModelProperty(value = "核查状态")
+    private String status;
+
+    @ApiModelProperty(value = "核查任务类型(0-科室任务 1-质控科 2-院级)")
+    private String jobType;
+
+    @ApiModelProperty(value = "是否归档(0:未归档,1:已归档)")
+    private String isPlacefile;
+
+}

+ 87 - 0
src/main/java/com/diagbot/vo/GetDeptDistributionVO.java

@@ -0,0 +1,87 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 任务分配-科室列表页分页接口-接口入参
+ * @Author songxl
+ * @Date 2022/5/23 9:20
+ */
+@ApiModel(value = "任务分配-科室列表页分页接口-接口入参")
+@Getter
+@Setter
+public class GetDeptDistributionVO extends Page implements Serializable {
+    private static final long serialVersionUID = -4950067898393122612L;
+
+    @ApiModelProperty(value = "是否归档(0:未归档,1:已归档)", required = true)
+    @NotBlank(message = "是否归档为空")
+    private String isPlacefile = "1";
+
+    @ApiModelProperty(value = "医院ID",hidden = true)
+    private Long hospitalId;
+
+    @ApiModelProperty(value = "入院时间开始时间")
+    private Date behosDateStart;
+
+    @ApiModelProperty(value = "入院时间结束时间")
+    private Date behosDateEnd;
+
+    @ApiModelProperty(value = "出院时间开始时间")
+    private Date leaveHosDateStart;
+
+    @ApiModelProperty(value = "出院时间结束时间")
+    private Date leaveHosDateEnd;
+
+    @ApiModelProperty(value = "病人住院ID")
+    private String behospitalCode;
+
+    @ApiModelProperty(value = "病人姓名")
+    private String name;
+
+    @ApiModelProperty(value = "住院科室名称")
+    private String deptName;
+
+    @ApiModelProperty(value = "住院天数-开始时间")
+    private String behospitalDayNumStart;
+
+    @ApiModelProperty(value = "住院天数-截止时间")
+    private String behospitalDayNumEnd;
+
+    @ApiModelProperty(value = "医生姓名")
+    private String doctorName;
+
+    @ApiModelProperty(value = "医生工号")
+    private String doctorCode;
+
+    @ApiModelProperty(value = "主诊断")
+    private String diagnose;
+
+    @ApiModelProperty(value = "病历等级")
+    private String level;
+
+    @ApiModelProperty(value = "病历类型")
+    private String behospitalType;
+
+    @ApiModelProperty(hidden = true)
+    private Long userId;
+
+    private String deptId;
+
+    @ApiModelProperty(value = "科室核查状态")
+    private String deptCheckStatus;
+
+    @ApiModelProperty(value = "院级核查状态")
+    private String hospCheckStatus;
+
+    @ApiModelProperty(value = "质控科核查状态")
+    private String quatCheckStatus;
+
+}

+ 53 - 0
src/main/java/com/diagbot/web/CheckDistributionSchemeController.java

@@ -0,0 +1,53 @@
+package com.diagbot.web;
+
+
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.RespDTO;
+
+import com.diagbot.facade.CheckDistributionSchemeFacade;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RestController;
+
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 核查分配方案表 前端控制器
+ * </p>
+ *
+ * @author songxl
+ * @since 2022-05-18
+ */
+@RestController
+@RequestMapping("/checkDistributionScheme")
+@Api(value = "病历核查-分配方案API", tags = { "病历核查-分配方案API" })
+public class CheckDistributionSchemeController {
+
+    @Autowired
+    private CheckDistributionSchemeFacade checkDistributionSchemeFacade;
+
+    @ApiOperation(value = "新增获取病历类型接口[by:zhanghang]",
+            notes = "新增获取病历类型接口")
+    @PostMapping("/getAddRecordType")
+    @SysLogger("getAddRecordType")
+    public RespDTO<Map<String, String>> getAddRecordType() {
+        Map<String, String> addRecordType = checkDistributionSchemeFacade.getAddRecordType();
+        return RespDTO.onSuc(addRecordType);
+    }
+
+
+    @ApiOperation(value = "获取分配方案接口[by:zhanghang]",
+            notes = "获取分配方案接口")
+    @PostMapping("/getDistributionType")
+    @SysLogger("getDistributionType")
+    public RespDTO<Map<String, String>> getDistributionType() {
+        return RespDTO.onSuc(checkDistributionSchemeFacade.getDistributionType());
+    }
+
+}

+ 20 - 0
src/main/java/com/diagbot/web/CheckDistributionSchemePersonController.java

@@ -0,0 +1,20 @@
+package com.diagbot.web;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+
+/**
+ * <p>
+ * 核查分配方案人员表 前端控制器
+ * </p>
+ *
+ * @author songxl
+ * @since 2022-05-18
+ */
+@Controller
+@RequestMapping("/checkDistributionSchemePerson")
+public class CheckDistributionSchemePersonController {
+
+}

+ 51 - 0
src/main/java/com/diagbot/web/CheckRecordController.java

@@ -0,0 +1,51 @@
+package com.diagbot.web;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.GetCheckRecordPageDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.CheckRecordFacade;
+import com.diagbot.util.StringUtil;
+import com.diagbot.util.SysUserUtils;
+import com.diagbot.vo.GetCheckRecordPageVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * <p>
+ * 核查记录表 前端控制器
+ * </p>
+ *
+ * @author songxl
+ * @since 2022-05-18
+ */
+@RestController
+@RequestMapping("/checkRecord")
+@Api(value = "病历核查API", tags = { "病历核查API" })
+public class CheckRecordController {
+
+    @Autowired
+    private CheckRecordFacade checkRecordFacade;
+
+    @ApiOperation(value = "获取病历核查分页接口[by:zhanghang]",
+            notes = "获取病历核查分页接口")
+    @PostMapping("/getCheckRecordPage")
+    @SysLogger("getCheckRecordPage")
+    public RespDTO<IPage<GetCheckRecordPageDTO>> getCheckRecordPage(@RequestBody GetCheckRecordPageVO getCheckRecordPagevo) {
+     /*   String userId = SysUserUtils.getCurrentPrincipleID();
+        if(StringUtil.isNotEmpty(userId)) {
+            getCheckRecordPagevo.setUserId(userId);
+        }*/
+        return RespDTO.onSuc(checkRecordFacade.getCheckRecordPage(getCheckRecordPagevo));
+    }
+
+}

+ 44 - 0
src/main/java/com/diagbot/web/CheckRecordExamineController.java

@@ -0,0 +1,44 @@
+package com.diagbot.web;
+
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.GetDeptDistributionDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.facade.CheckRecordExamineFacade;
+import com.diagbot.facade.CheckRecordFacade;
+import com.diagbot.vo.GetDeptDistributionVO;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 核查记录审批表 前端控制器
+ * </p>
+ *
+ * @author songxl
+ * @since 2022-05-18
+ */
+@RestController
+@RequestMapping("/checkRecord")
+@Api(value = "病历核查API", tags = { "病历核查API" })
+public class CheckRecordExamineController {
+
+    @Autowired
+    private CheckRecordExamineFacade checkRecordExamineFacade;
+
+    @ApiOperation(value = "任务分配-科室列表页分页接口[by:songxl]",
+            notes = "任务分配-科室列表页分页接口")
+    @PostMapping("/getDeptDistributionPage")
+    @SysLogger("getDeptDistributionPage")
+    public RespDTO<IPage<GetDeptDistributionDTO>> getDeptDistributionPage(@RequestBody GetDeptDistributionVO getDeptDistributionVO) {
+        return RespDTO.onSuc(checkRecordExamineFacade.getDeptDistributionPage(getDeptDistributionVO));
+    }
+}

+ 33 - 0
src/main/resources/mapper/CheckDistributionSchemeMapper.xml

@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.CheckDistributionSchemeMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.CheckDistributionScheme">
+        <id column="id" property="id" />
+        <result column="hospital_id" property="hospitalId" />
+        <result column="dept_ids" property="deptIds" />
+        <result column="dept_names" property="deptNames" />
+        <result column="scheme_name" property="schemeName" />
+        <result column="stage" property="stage" />
+        <result column="in_time_frame" property="inTimeFrame" />
+        <result column="out_time_frame" property="outTimeFrame" />
+        <result column="level" property="level" />
+        <result column="behospital_type" property="behospitalType" />
+        <result column="check_status" property="checkStatus" />
+        <result column="is_check_all" property="isCheckAll" />
+        <result column="check_ratio" property="checkRatio" />
+        <result column="check_num" property="checkNum" />
+        <result column="distribution_type" property="distributionType" />
+        <result column="task_time_limit" property="taskTimeLimit" />
+        <result column="is_timing" property="isTiming" />
+        <result column="scheduled_task_expression" property="scheduledTaskExpression" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+</mapper>

+ 21 - 0
src/main/resources/mapper/CheckDistributionSchemePersonMapper.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.CheckDistributionSchemePersonMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.CheckDistributionSchemePerson">
+        <id column="id" property="id" />
+        <result column="scheme_id" property="schemeId" />
+        <result column="check_ratio" property="checkRatio" />
+        <result column="check_id" property="checkId" />
+        <result column="check_name" property="checkName" />
+        <result column="check_time" property="checkTime" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="remark" property="remark" />
+    </resultMap>
+
+</mapper>

+ 165 - 0
src/main/resources/mapper/CheckRecordExamineMapper.xml

@@ -0,0 +1,165 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.CheckRecordExamineMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.CheckRecordExamine">
+        <id column="id" property="id" />
+        <result column="check_record" property="checkRecord" />
+        <result column="hospital_id" property="hospitalId" />
+        <result column="behospital_code" property="behospitalCode" />
+        <result column="check_id" property="checkId" />
+        <result column="check_name" property="checkName" />
+        <result column="check_time" property="checkTime" />
+        <result column="status" property="status" />
+        <result column="is_deleted" property="isDeleted" />
+        <result column="gmt_create" property="gmtCreate" />
+        <result column="gmt_modified" property="gmtModified" />
+        <result column="creator" property="creator" />
+        <result column="modifier" property="modifier" />
+        <result column="remark" property="remark" />
+    </resultMap>
+    <select id="getDeptDistributionPage" resultType="com.diagbot.dto.GetDeptDistributionDTO">
+        SELECT DISTINCT
+        mbi.behospital_code behospitalCode,
+        mbi.`name`,
+        mbi.file_code fileCode,
+        mbi.sex,
+        mhp.age,
+        mbi.beh_dept_name behDeptName,
+        mbi.behospital_date behospitalDate,
+        mbi.leave_hospital_date leaveHospitalDate,
+        mhp.behospital_day_num + 0 behospitalDayNum,
+        mbi.doctor_name doctorName,
+        mqi.score_res scoreRes,
+        mqi.`level`,
+        mbi.diagnose,
+        mbt.behospital_type behospitalType,
+        mbt.`value`,
+        -- 科室核查
+        ks_mcre.check_name deptChName,
+        IF (
+        ks_mcre.`status` IS NULL,
+        '-1',
+        ks_mcre.`status`
+        ) deptCheckStatus,
+        -- 质控科核查
+        zkk_mcre.check_name quatChName,
+        IF (
+        zkk_mcre.`status` IS NULL,
+        '-1',
+        zkk_mcre.`status`
+        ) quatCheckStatus,
+        -- 院级核查
+        yj_mcre.check_name hospChName,
+        IF (
+        yj_mcre.`status` IS NULL,
+        '-1',
+        yj_mcre.`status`
+        ) hospCheckStatus
+
+        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
+        AND mhp.is_deleted = 'N'
+        JOIN med_qcresult_info mqi ON mbi.behospital_code = mqi.behospital_code
+        AND mbi.hospital_id = mqi.hospital_id
+        AND mqi.is_deleted = 'N'
+        AND mqi.score_res IS NOT NULL
+        JOIN med_behospital_type mbt ON mbi.behospital_code = mbt.behospital_code
+        AND mbi.hospital_id = mbt.hospital_id
+        AND mbt.is_deleted = 'N'
+        -- 科室核查
+        LEFT JOIN med_check_record ks_mcr ON ks_mcr.hospital_id = mbi.hospital_id
+        AND ks_mcr.behospital_code = mbi.behospital_code
+        AND ks_mcr.is_deleted = 'N'
+        AND ks_mcr.job_type = 0
+        AND ks_mcr.id IN (
+        SELECT
+        max(id)
+        FROM
+        med_check_record
+        WHERE
+        hospital_id = #{getDeptDistributionVO.hospitalId}
+        AND job_type = 0
+        AND work_flow_node_id != 2
+        GROUP BY
+        behospital_code
+        )
+        LEFT JOIN med_check_record_examine ks_mcre ON ks_mcr.id = ks_mcre.check_record
+        AND ks_mcre.is_deleted = 'N'
+        -- 质控科核查
+        LEFT JOIN med_check_record zkk_mcr ON zkk_mcr.hospital_id = mbi.hospital_id
+        AND zkk_mcr.behospital_code = mbi.behospital_code
+        AND zkk_mcr.is_deleted = 'N'
+        AND zkk_mcr.job_type = 1
+        AND zkk_mcr.id IN (
+        SELECT
+        max(id)
+        FROM
+        med_check_record
+        WHERE
+        hospital_id = #{getDeptDistributionVO.hospitalId}
+        AND job_type = 1
+        AND work_flow_node_id != 2
+        GROUP BY
+        behospital_code
+        )
+        LEFT JOIN med_check_record_examine zkk_mcre ON zkk_mcr.id = zkk_mcre.check_record
+        AND zkk_mcre.is_deleted = 'N'
+        -- 院级核查
+        LEFT JOIN med_check_record yj_mcr ON yj_mcr.hospital_id = mbi.hospital_id
+        AND yj_mcr.behospital_code = mbi.behospital_code
+        AND yj_mcr.is_deleted = 'N'
+        AND yj_mcr.job_type = 2
+        AND yj_mcr.id IN (
+        SELECT
+        max(id)
+        FROM
+        med_check_record
+        WHERE
+        hospital_id = #{getDeptDistributionVO.hospitalId}
+        AND job_type = 2
+        AND work_flow_node_id != 2
+        GROUP BY
+        behospital_code
+        )
+        LEFT JOIN med_check_record_examine yj_mcre ON yj_mcr.id = yj_mcre.check_record
+        AND yj_mcre.is_deleted = 'N'
+        WHERE
+        mbi.hospital_id = #{getDeptDistributionVO.hospitalId}
+        AND mbi.is_deleted = 'N'
+        <if test="getDeptDistributionVO.behosDateStart != null and getDeptDistributionVO.behosDateEnd != null ">
+            <![CDATA[ and mbi.behospital_date >= #{getDeptDistributionVO.behosDateStart}]]>
+            <![CDATA[ and mbi.behospital_date <= #{getDeptDistributionVO.behosDateEnd}]]>
+        </if>
+        <if test="getDeptDistributionVO.leaveHosDateStart != null and getDeptDistributionVO.leaveHosDateEnd != null ">
+            <![CDATA[ and mbi.leave_hospital_date >= #{getDeptDistributionVO.leaveHosDateStart}]]>
+            <![CDATA[ and mbi.leave_hospital_date <= #{getDeptDistributionVO.leaveHosDateEnd}]]>
+        </if>
+
+        <if test="getDeptDistributionVO.isPlacefile != null and getDeptDistributionVO.isPlacefile!=''">
+            AND mbi.is_placefile = #{getDeptDistributionVO.isPlacefile}
+        </if>
+        <if test="getDeptDistributionVO.name != null and getDeptDistributionVO.name != ''">
+            AND mbi.name like concat('%', #{getDeptDistributionVO.name}, '%')
+        </if>
+        <if test="getDeptDistributionVO.behospitalCode != null and getDeptDistributionVO.behospitalCode != ''">
+            AND mbi.behospital_code like concat('%', #{getDeptDistributionVO.behospitalCode}, '%')
+        </if>
+        <if test="getDeptDistributionVO.deptName != null and getDeptDistributionVO.deptName != ''">
+            AND mbi.beh_dept_name = #{getDeptDistributionVO.deptName}
+        </if>
+        <if test="getDeptDistributionVO.behospitalDayNumStart != null and getDeptDistributionVO.behospitalDayNumStart != ''
+               and getDeptDistributionVO.behospitalDayNumEnd != null and getDeptDistributionVO.behospitalDayNumEnd != ''">
+            <![CDATA[ and mhp.behospital_day_num >= #{getDeptDistributionVO.behospitalDayNumStart}]]>
+            <![CDATA[ and mhp.behospital_day_num <= #{getDeptDistributionVO.behospitalDayNumEnd}]]>
+        </if>
+        <if test="getDeptDistributionVO.doctorName != null and getDeptDistributionVO.doctorName != ''">
+            AND mbi.doctor_name like concat('%', #{getDeptDistributionVO.doctorName}, '%')
+        </if>
+
+    </select>
+
+</mapper>

+ 137 - 0
src/main/resources/mapper/CheckRecordMapper.xml

@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.diagbot.mapper.CheckRecordMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.diagbot.entity.CheckRecord">
+        <id column="id" property="id"/>
+        <result column="hospital_id" property="hospitalId"/>
+        <result column="behospital_code" property="behospitalCode"/>
+        <result column="check_type" property="checkType"/>
+        <result column="job_creator" property="jobCreator"/>
+        <result column="job_creator_name" property="jobCreatorName"/>
+        <result column="job_create_time" property="jobCreateTime"/>
+        <result column="job_type" property="jobType"/>
+        <result column="job_distributor" property="jobDistributor"/>
+        <result column="job_distribution_name" property="jobDistributionName"/>
+        <result column="job_distribution_time" property="jobDistributionTime"/>
+        <result column="work_flow_node_id" property="workFlowNodeId"/>
+        <result column="job_end_time" property="jobEndTime"/>
+        <result column="is_deleted" property="isDeleted"/>
+        <result column="gmt_create" property="gmtCreate"/>
+        <result column="gmt_modified" property="gmtModified"/>
+        <result column="creator" property="creator"/>
+        <result column="modifier" property="modifier"/>
+        <result column="remark" property="remark"/>
+    </resultMap>
+
+    <select id="getCheckRecordPage" resultType="com.diagbot.dto.GetCheckRecordPageDTO">
+        SELECT
+        t2.* ,
+        mhp.age
+        FROM
+        (
+        SELECT
+        t1.*,
+        mbi.name,
+        mbi.sex,
+        mbi.file_code fileCode,
+        mbi.beh_dept_name behDeptName,
+        mbi.behospital_date behospitalDate,
+        mbi.leave_hospital_date leaveHospitalDate,
+        CASE WHEN ISNULL(mbi.leave_hospital_date) THEN '-' ELSE (SELECT
+        TIMESTAMPDIFF(DAY,mbi.behospital_date,mbi.leave_hospital_date)) END hospitalizationDays,
+        mbi.director_doctor_id directorDoctorId,
+        mbi.director_doctor_name directorDoctorName,
+        mbi.diagnose,
+        mbt.behospital_type behospitalType,
+        mbi.is_placefile,
+        mqc.`level`
+        FROM
+        (
+        SELECT
+        mcr.id,
+        mcr.hospital_id hospitalId,
+        mcr.behospital_code behospitalCode,
+        mcr.check_type checkType,
+        mcr.job_creator jobCreator,
+        mcr.job_creator_name jobCreatorName,
+        mcr.job_create_time jobCreateTime,
+        mcr.job_type jobType,
+        mcr.job_distributor jobDistributor,
+        mcr.job_distribution_name jobDistributionName,
+        mcr.job_distribution_time jobDistributionTime,
+        mcr.work_flow_node_id workFlowNodeId,
+        mcr.job_end_time jobEndTime,
+        mcre.check_record checkRecord,
+        mcre.check_id checkId,
+        mcre.check_name checkName,
+        mcre.check_time checkTime,
+        mcre. STATUS
+        FROM
+        (
+        SELECT * from
+        med_check_record mc
+        where
+        mc.is_deleted = 'N'
+        <if test="getCheckRecordPagevo.jobDistributionTimeStart != null ">
+            <![CDATA[ and mc.job_distribution_time >= #{getCheckRecordPagevo.jobDistributionTimeStart}]]>
+        </if>
+        <if test="getCheckRecordPagevo.jobDistributionTimeEnd != null ">
+            <![CDATA[ and mc.job_distribution_time <= #{getCheckRecordPagevo.jobDistributionTimeEnd}]]>
+        </if>
+        <if test="getCheckRecordPagevo.behospitalCode != null and getCheckRecordPagevo.behospitalCode != ''">
+            AND mc.behospital_code = #{getCheckRecordPagevo.behospitalCode}
+        </if>
+        <if test="getCheckRecordPagevo.jobType != null and getCheckRecordPagevo.jobType != ''">
+            AND mc.job_type = #{getCheckRecordPagevo.jobType}
+        </if>
+        <if test="getCheckRecordPagevo.userId != null and getCheckRecordPagevo.userId != ''">
+            AND ( mc.job_creator = #{getCheckRecordPagevo.userId} or ISNULL(mc.job_creator) or mc.job_distributor = #{getCheckRecordPagevo.userId})
+        </if>
+        ) mcr
+        LEFT JOIN med_check_record_examine mcre ON mcr.id = mcre.check_record
+        AND mcre.is_deleted = 'N'
+        ) t1 LEFT JOIN med_behospital_info mbi on t1.behospitalCode=mbi.behospital_code
+        and mbi.is_deleted='N'
+        LEFT JOIN med_behospital_type mbt on t1.behospitalCode=mbt.behospital_code
+        and mbt.is_deleted='N'
+        LEFT JOIN med_qcresult_info mqc on t1.behospitalCode=mqc.behospital_code
+        and mqc.is_deleted='N'
+        )t2 ,
+        med_home_page mhp
+        where
+        t2.behospitalCode=mhp.behospital_code
+        <if test="getCheckRecordPagevo.hospitalizationDaysEnd != null and getCheckRecordPagevo.hospitalizationDaysEnd != ''">
+            <![CDATA[ and t2.hospitalizationDays <= #{getCheckRecordPagevo.hospitalizationDaysEnd}]]>
+        </if>
+        <if test="getCheckRecordPagevo.hospitalizationDaysStart != null and getCheckRecordPagevo.hospitalizationDaysStart != ''">
+            <![CDATA[ and t2.hospitalizationDays >= #{getCheckRecordPagevo.hospitalizationDaysStart}]]>
+        </if>
+        <if test="getCheckRecordPagevo.doctorName != null and getCheckRecordPagevo.doctorName != ''">
+            AND t2.directorDoctorName like concat('%', #{getCheckRecordPagevo.doctorName}, '%')
+        </if>
+        <if test="getCheckRecordPagevo.diagnoseName != null and getCheckRecordPagevo.diagnoseName != ''">
+            AND t2.diagnose like concat('%', #{getCheckRecordPagevo.diagnoseName}, '%')
+        </if>
+        <if test="getCheckRecordPagevo.name != null and getCheckRecordPagevo.name!=''">
+            AND t2.name like concat('%', #{getCheckRecordPagevo.name}, '%')
+        </if>
+        <if test="getCheckRecordPagevo.isPlacefile != null and getCheckRecordPagevo.isPlacefile!=''">
+            AND t2.is_placefile = #{getCheckRecordPagevo.isPlacefile}
+        </if>
+        <if test="getCheckRecordPagevo.deptName != null and getCheckRecordPagevo.deptName != ''">
+            AND t2.behDeptName = #{getCheckRecordPagevo.deptName}
+        </if>
+        <if test="getCheckRecordPagevo.level != null and getCheckRecordPagevo.level!=''">
+            AND t2.level = #{getCheckRecordPagevo.level}
+        </if>
+        <if test="getCheckRecordPagevo.recordType != null and getCheckRecordPagevo.recordType!=''">
+            AND t2.behospitalType = #{getCheckRecordPagevo.recordType}
+        </if>
+        <if test="getCheckRecordPagevo.status != null and getCheckRecordPagevo.status!=''">
+            AND t2.status = #{getCheckRecordPagevo.status}
+        </if>
+    </select>
+
+</mapper>