Browse Source

稽查导出合并处理

chengyao 4 years ago
parent
commit
9d715a7deb

+ 25 - 31
src/main/java/com/diagbot/dto/MedicalCheckDTO.java

@@ -21,6 +21,7 @@ public class MedicalCheckDTO extends Object {
     //科室名称
     @Excel(name = "科室", width = 20, orderNum = "1")
     private String deptName;
+
     //科室id
     private String deptId;
 
@@ -28,12 +29,12 @@ public class MedicalCheckDTO extends Object {
     @Excel(name = "医疗组", width = 11, orderNum = "2")
     private String doctorName;
 
-    //目标字符串
-    @JsonIgnore
-    private String casesEntryId;
-
-    //条目id数量
-    private String numId;
+//    //目标字符串
+//    @JsonIgnore
+//    private String casesEntryId;
+//
+//    //条目id数量
+//    private String numId;
 
     //入院记录未24小时内
     @Excel(name = "入院记录24小时内", width = 16, orderNum = "3")
@@ -45,80 +46,73 @@ public class MedicalCheckDTO extends Object {
 
     @Excel(name = "副主任/主任医师首次查房72小时内完成", width = 20, orderNum = "5")
     //副主任/主任医师首次查房72小时内未完成
-    private Integer zrsccfw_72h= 0;
+    private Integer zrsccfw_72h = 0;
 
     //入院后未连记3天病程
     @Excel(name = "入院后连记3天病程", width = 16, orderNum = "6")
-    private Integer ryhljbcw_3d= 0;
+    private Integer ryhljbcw_3d = 0;
 
     //每周未至少2次副主任/主任医师查房
     @Excel(name = "每周至少2次副主任/主任医师查房", width = 20, orderNum = "7")
-    private Integer zrcfw_2w= 0;
+    private Integer zrcfw_2w = 0;
 
     //每周未至少3次主治医师查房记录
     @Excel(name = "每周至少3次主治医师查房记录", width = 20, orderNum = "8")
-    private Integer zzcfw_3w= 0;
+    private Integer zzcfw_3w = 0;
 
     //抢救记录未6小时内完成
     @Excel(name = "抢救记录6小时内完成", width = 15, orderNum = "9")
-    private Integer qjjlw_6h= 0;
+    private Integer qjjlw_6h = 0;
 
     //会诊记录在会诊申请后未24小时完成
     @Excel(name = "会诊记录在会诊申请后24小时完成", width = 20, orderNum = "10")
-    private Integer hzjlw_24h= 0;
+    private Integer hzjlw_24h = 0;
 
     //术前讨论、术前小结未完成
     @Excel(name = "术前讨论、术前小结完成", width = 15, orderNum = "11")
-    private Integer sqtlxjw= 0;
+    private Integer sqtlxjw = 0;
 
     //手术记录术后24小时内未完成
     @Excel(name = "手术记录术后24小时内完成", width = 15, orderNum = "12")
-    private Integer sxjlsw_24h= 0;
+    private Integer sxjlsw_24h = 0;
 
     //术后首程在术后30分钟内未完成
     @Excel(name = "术后首程在术后30分钟内完成", width = 15, orderNum = "13")
-    private Integer xhscw_30m= 0;
+    private Integer xhscw_30m = 0;
 
     //术后主刀查房24小时内未完成
     @Excel(name = "术后主刀查房24小时内完成", width = 15, orderNum = "14")
-    private Integer shzdcfw_24h= 0;
+    private Integer shzdcfw_24h = 0;
 
     //术后未连记3天病程
     @Excel(name = "术后连记3天病程(包括术后首程)", width = 15, orderNum = "15")
-    private Integer shjbcw_3d= 0;
+    private Integer shjbcw_3d = 0;
 
     //转科后未连记3天病程
     @Excel(name = "转科后连记3天病程(包括专科记录)", width = 15, orderNum = "16")
-    private Integer zkjbcw_3d= 0;
+    private Integer zkjbcw_3d = 0;
 
     //转接科记录专科后24小时内未完成
     @Excel(name = "转接科记录专科后24小时内完成", width = 15, orderNum = "17")
-    private Integer zkjlw_24= 0;
+    private Integer zkjlw_24 = 0;
 
     //病危/重患者未每日记录病程
     @Excel(name = "病危/重患者每日记录病程", width = 15, orderNum = "18")
-    private Integer bwzhjlbcw_md= 0;
+    private Integer bwzhjlbcw_md = 0;
 
     //输血后未完成输血记录
     @Excel(name = "输血后完成输血记录", width = 15, orderNum = "20")
-    private Integer sxhwjl= 0;
+    private Integer sxhwjl = 0;
 
     //24小时未完成输血后评价
     @Excel(name = "24小时完成输血后评价", width = 15, orderNum = "20")
-    private Integer sxpjw_24= 0;
+    private Integer sxpjw_24 = 0;
 
     //危急值未记录
     @Excel(name = "危急值记录", width = 15, orderNum = "21")
-    private Integer wjzwjl= 0;
+    private Integer wjzwjl = 0;
 
     //住院30天未阶段小结
     @Excel(name = "住院30天阶段小结", width = 16, orderNum = "22")
-    private Integer wywwcxj= 0;
-
-
-
-
-
-
-
+    private Integer wywwcxj = 0;
 }

+ 3 - 6
src/main/java/com/diagbot/dto/MedicalCheckExportDTO.java

@@ -18,13 +18,10 @@ import java.util.List;
 @Setter
 public class MedicalCheckExportDTO  {
 
-
     //科室名称
-
-    @Excel(name = "科室",needMerge = true, width = 18)
+    @Excel(name = "科室",needMerge = true,orderNum = "1")
     private String deptName;
 
-    @ExcelCollection(name = "")
-    private List<MedicalCheckTitleDTO> medicalCheckTitleDTOS;
-
+    @ExcelCollection(name = "",orderNum = "2")
+    private List<MedicalDoctorExportDTO> medicalDoctorExportDTOS;
 }

+ 24 - 28
src/main/java/com/diagbot/dto/MedicalCheckTitleDTO.java

@@ -14,96 +14,92 @@ import lombok.Setter;
 @Setter
 public class MedicalCheckTitleDTO {
 
-    //字符串目标id集
-    @Excel(name = "字符串目标id集",isColumnHidden = true,needMerge = true)
+   /* //字符串目标id集
+    @Excel(name = "字符串目标id集",isColumnHidden = true)
     private String casesEntryId;
 
     //字符串目标条目集
-    @Excel(name = "字符串目标条目集",isColumnHidden = true,needMerge = true)
+    @Excel(name = "字符串目标条目集",isColumnHidden = true)
     private String casesEntryName;
-
-    //医疗组
-    @Excel(name = "医疗组",width = 12)
-    private String doctorName;
-
+*/
     //入院记录未24小时内
-    @Excel(name = "入院记录24小时内",width = 16)
+    @Excel(name = "入院记录24小时内",width = 16,orderNum = "1")
     private Integer ryjlw_24 = 0;
 
     //首次病程记录未8小时内
-    @Excel(name = "首次病程记录8小时内",width = 17)
+    @Excel(name = "首次病程记录8小时内",width = 17,orderNum = "2")
     private Integer scbcjlw_8h = 0;
 
-    @Excel(name = "副主任/主任医师首次查房72小时内完成",width = 18)
+    @Excel(name = "副主任/主任医师首次查房72小时内完成",width = 18,orderNum = "3")
     //副主任/主任医师首次查房72小时内未完成
     private Integer zrsccfw_72h= 0;
 
     //入院后未连记3天病程
-    @Excel(name = "入院后连记3天病程(不包括术后首程)",width = 18)
+    @Excel(name = "入院后连记3天病程(不包括术后首程)",width = 18,orderNum = "4")
     private Integer ryhljbcw_3d= 0;
 
     //每周至少2次副主任/主任医师查房
-    @Excel(name = "每周至少2次副主任/主任医师查房",width = 16)
+    @Excel(name = "每周至少2次副主任/主任医师查房",width = 16,orderNum = "5")
     private Integer zrcfw_2w= 0;
 
     //每周至少3次主治医师查房记录
-    @Excel(name = "每周至少3次主治医师查房记录",width = 16)
+    @Excel(name = "每周至少3次主治医师查房记录",width = 16,orderNum = "6")
     private Integer zzcfw_3w= 0;
 
     //抢救记录未6小时内完成
-    @Excel(name = "抢救记录6小时内完成",width = 15)
+    @Excel(name = "抢救记录6小时内完成",width = 15,orderNum = "7")
     private Integer qjjlw_6h= 0;
 
     //会诊记录在会诊申请后未24小时完成
-    @Excel(name = "会诊记录在会诊申请后24小时完成",width = 16)
+    @Excel(name = "会诊记录在会诊申请后24小时完成",width = 16,orderNum = "8")
     private Integer hzjlw_24h= 0;
 
     //术前讨论、术前小结未完成
-    @Excel(name = "术前讨论、术前小结完成",width = 15)
+    @Excel(name = "术前讨论、术前小结完成",width = 15,orderNum = "9")
     private Integer sqtlxjw= 0;
 
     //手术记录术后24小时内未完成
-    @Excel(name = "手术记录术后24小时内完成",width = 15)
+    @Excel(name = "手术记录术后24小时内完成",width = 15,orderNum = "10")
     private Integer sxjlsw_24h= 0;
 
     //术后首程在术后30分钟内未完成
-    @Excel(name = "术后首程在术后30分钟内完成",width = 16)
+    @Excel(name = "术后首程在术后30分钟内完成",width = 16,orderNum = "11")
     private Integer xhscw_30m= 0;
 
     //术后主刀查房24小时内未完成
-    @Excel(name = "术后主刀查房24小时内完成",width = 15)
+    @Excel(name = "术后主刀查房24小时内完成",width = 15,orderNum = "12")
     private Integer shzdcfw_24h= 0;
 
     //术后未连记3天病程
-    @Excel(name = "术后连记3天病程(包括术后首程)",width = 16)
+    @Excel(name = "术后连记3天病程(包括术后首程)",width = 16,orderNum = "13")
     private Integer shjbcw_3d= 0;
 
     //转科后未连记3天病程
-    @Excel(name = "转科后连记3天病程(包括专科记录)",width =16)
+    @Excel(name = "转科后连记3天病程(包括专科记录)",width =16,orderNum = "1")
     private Integer zkjbcw_3d= 0;
 
     //转接科记录专科后24小时内未完成
-    @Excel(name = "转接科记录专科后24小时内完成",width = 16)
+    @Excel(name = "转接科记录专科后24小时内完成",width = 16,orderNum = "14")
     private Integer zkjlw_24= 0;
 
     //病危/重患者未每日记录病程
-    @Excel(name = "病危/重患者每日记录病程",width = 15)
+    @Excel(name = "病危/重患者每日记录病程",width = 15,orderNum = "15")
     private Integer bwzhjlbcw_md= 0;
 
     //输血后未完成输血记录
-    @Excel(name = "输血后完成输血记录",width = 15)
+    @Excel(name = "输血后完成输血记录",width = 15,orderNum = "16")
     private Integer sxhwjl= 0;
 
     //24小时未完成输血后评价
-    @Excel(name = "24小时完成输血后评价",width = 15)
+    @Excel(name = "24小时完成输血后评价",width = 15,orderNum = "17")
     private Integer sxpjw_24= 0;
 
     //危急值未记录
-    @Excel(name = "危急值记录",width = 15)
+    @Excel(name = "危急值记录",width = 15,orderNum = "18")
     private Integer wjzwjl= 0;
 
     //住院30天未阶段小结
-    @Excel(name = "住院30天阶段小结",width = 16)
+    @Excel(name = "住院30天阶段小结",width = 16,orderNum = "19")
     private Integer wywwcxj= 0;
 
 }

+ 25 - 0
src/main/java/com/diagbot/dto/MedicalDoctorExportDTO.java

@@ -0,0 +1,25 @@
+package com.diagbot.dto;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import cn.afterturn.easypoi.excel.annotation.ExcelCollection;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @Author:cy
+ * @time: 2020/9/9 13:19
+ */
+@Getter
+@Setter
+public class MedicalDoctorExportDTO {
+
+    //医疗组
+    @Excel(name = "医疗组",needMerge = true,orderNum = "1")
+    private String doctorName;
+
+    @ExcelCollection(name = "",orderNum = "2")
+    private List<MedicalCheckTitleDTO> medicalCheckTitleDTOS;
+}

+ 33 - 229
src/main/java/com/diagbot/facade/ConsoleFacade.java

@@ -9,7 +9,6 @@ import com.diagbot.aggregate.ResultStatisticsAggregate;
 import com.diagbot.dto.*;
 import com.diagbot.entity.QcCasesEntry;
 import com.diagbot.entity.SysHospitalSet;
-import com.diagbot.enums.MedicalCheckEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.util.*;
@@ -1290,159 +1289,49 @@ public class ConsoleFacade {
         return behospitalInfoFacade.qcCheckMRPage(qcResultShortPageVO);
     }
 
-/*
-    */
-/**
-     * 运行病历稽查表导出(首页)
+    /*
+     */
+
+    /**
+     * 病历稽查表导出(首页)
      *
      * @param filterVO
      * @return
      */
 
 
-public List<MedicalCheckExportDTO> medicalCheckExport(@Param("filterVO") FilterMedicalCheckVO filterVO) {
-    filterFacade.getMedicalCheckVOSet(filterVO);
-    //colums
-    QueryWrapper<SysHospitalSet> hospitalSetQueryWrapper = new QueryWrapper<>();
-    hospitalSetQueryWrapper.eq("is_deleted", 'N')
-            .eq("hospital_id", filterVO.getHospitalId())
-            .eq("code", "medical_check_form");
-    SysHospitalSet hospitalSet = sysHospitalSetFacade.getOne(hospitalSetQueryWrapper);
-
-    //表头生成
-    List<String> columnSet = Arrays.asList(hospitalSet.getValue().split(","));
-
-    //目标条目
-    List<Long> casesEntryIds = Lists.newArrayList();
-    //遍历第一个条目
-    for (String valueStr : columnSet) {
-        if (StringUtil.isBlank(valueStr)) {
-            continue;
-        }
-        String[] keyValue = valueStr.split("--");
-        if (keyValue != null || keyValue.length > 1) {
-            casesEntryIds.add(Long.valueOf(keyValue[0]));
-        }
-    }
+    public List<MedicalCheckExportDTO> medicalCheckExport(@Param("filterVO") FilterMedicalCheckVO filterVO) {
+        filterFacade.getMedicalCheckVOSet(filterVO);
+        //colums
+        QueryWrapper<SysHospitalSet> hospitalSetQueryWrapper = new QueryWrapper<>();
+        hospitalSetQueryWrapper.eq("is_deleted", 'N')
+                .eq("hospital_id", filterVO.getHospitalId())
+                .eq("code", "medical_check_form");
+        SysHospitalSet hospitalSet = sysHospitalSetFacade.getOne(hospitalSetQueryWrapper);
 
-    List<MedicalCheckExportDTO> medicalCheck = behospitalInfoFacade.getMedicalCheckExport(filterVO,casesEntryIds);
-    List<MedicalCheckExportDTO> medicalExportDTOS = new ArrayList<MedicalCheckExportDTO>();
-    //获取的数据一对多:一个科室对应医生/多个条目title
-     //目标id集取出
-
-    //遍历结果集中的每一条数据
-    for (MedicalCheckExportDTO record : medicalCheck) {
-        //创建稽查条目数据实体类
-        MedicalCheckExportDTO medicalCheckExportDTO = new MedicalCheckExportDTO();
-        //设置科室名称
-        medicalCheckExportDTO.setDeptName(record.getDeptName());
-        //实体类中的子集合
-        List<MedicalCheckTitleDTO> medicalTitles=  new ArrayList<MedicalCheckTitleDTO>();
-
-//        每条数据的目标id集,和面来判断统计次数
-        String casesEntryId = null;
-        //获取医生名称/目标条目集合在循环里面
-        List<MedicalCheckTitleDTO> medicalCheckTitleDTOS = record.getMedicalCheckTitleDTOS();
-        for (MedicalCheckTitleDTO medicalCheckTitleDTO : medicalCheckTitleDTOS) {
-            //map集合来对查询出来的条目id进行统计出现的次数来确定统计的数量
-            Map<String, Object> targetMap = new HashMap<String, Object>();
-            //子集合的实体类
-            MedicalCheckTitleDTO medicalTitleDTOS =  new MedicalCheckTitleDTO();
-            medicalTitleDTOS.setDoctorName(medicalCheckTitleDTO.getDoctorName());
-//            获取目标数据子集合的n条数据
-             casesEntryId = medicalCheckTitleDTO.getCasesEntryId();
-            String[] split = casesEntryId.split(",");
-            for (String num : split) {
-                if (!targetMap.containsKey(num)) {
-                    targetMap.put(num, 1);
-                } else {
-                    targetMap.put(num, (Object) ((Integer) targetMap.get(num) + 1));
-                }
+        //表头生成
+        List<String> columnSet = Arrays.asList(hospitalSet.getValue().split(","));
+
+        //目标条目
+        List<Long> casesEntryIds = Lists.newArrayList();
+        //遍历第一个条目
+        for (String valueStr : columnSet) {
+            if (StringUtil.isBlank(valueStr)) {
+                continue;
             }
-            Set<Map.Entry<String, Object>> entries = targetMap.entrySet();
-            for (Map.Entry<String, Object> entry : entries) {
-                String key = entry.getKey();
-                if(key.equals(MedicalCheckEnum.RYJLW_24.getStatus())){
-                    medicalTitleDTOS.setRyjlw_24((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.SCBCJLW_8H.getStatus())){
-                    medicalTitleDTOS.setScbcjlw_8h((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.ZRSCCFW_72H.getStatus())){
-                    medicalTitleDTOS.setZrcfw_2w((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.RYHLJBCW_3D.getStatus())){
-                    medicalTitleDTOS.setRyhljbcw_3d((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.ZRCFW_2W.getStatus())){
-                    medicalTitleDTOS.setZrcfw_2w((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.ZZCFW_3W.getStatus())){
-                    medicalTitleDTOS.setZzcfw_3w((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.QJJLW_6H.getStatus())){
-                    medicalTitleDTOS.setQjjlw_6h((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.HZJLW_24H.getStatus())){
-                    medicalTitleDTOS.setHzjlw_24h((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.SQTLXJW.getStatus())){
-                    medicalTitleDTOS.setSqtlxjw((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.SXJLSW_24H.getStatus())){
-                    medicalTitleDTOS.setSxjlsw_24h((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.XHSCW_30M.getStatus())){
-                    medicalTitleDTOS.setXhscw_30m((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.SHZDCFW_24H.getStatus())){
-                    medicalTitleDTOS.setShzdcfw_24h((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.SHJBCW_3D.getStatus())){
-                    medicalTitleDTOS.setShjbcw_3d((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.ZKJBCW_3D.getStatus())){
-                    medicalTitleDTOS.setZkjbcw_3d((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.ZKJLW_24.getStatus())){
-                    medicalTitleDTOS.setZkjlw_24((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.BWZHJLBCW_MD.getStatus())){
-                    medicalTitleDTOS.setBwzhjlbcw_md((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.SXHWJL.getStatus())){
-                    medicalTitleDTOS.setSxhwjl((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.SXPJW_24.getStatus())){
-                    medicalTitleDTOS.setSxpjw_24((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.WJZWJL.getStatus())){
-                    medicalTitleDTOS.setWjzwjl((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.WYWWCXJ.getStatus())){
-                    medicalTitleDTOS.setWywwcxj((Integer)entry.getValue());
-                }
+            String[] keyValue = valueStr.split("--");
+            if (keyValue != null || keyValue.length > 1) {
+                casesEntryIds.add(Long.valueOf(keyValue[0]));
             }
-            //    实体类子集合中添加tile数据,在循环中完成
-            medicalTitles.add(medicalTitleDTOS);
-
         }
 
-
-
-        //子集合数据填充完毕,在实体类中赋值
-        medicalCheckExportDTO.setMedicalCheckTitleDTOS(medicalTitles);
-        //循环一条添加一条数据
-        medicalExportDTOS.add(medicalCheckExportDTO); //正确的
+        List<MedicalCheckExportDTO> medicalCheck = behospitalInfoFacade.getMedicalCheckExport(filterVO, casesEntryIds);
+        return medicalCheck;
     }
 
-    return medicalExportDTOS;
-}
-
-
 
     /**
-     * 运行病历稽查表(首页)
+     * 病历稽查表(首页)
      *
      * @param filterVO
      * @return
@@ -1472,104 +1361,19 @@ public List<MedicalCheckExportDTO> medicalCheckExport(@Param("filterVO") FilterM
             }
         }
 
-        IPage<MedicalCheckDTO> medicalCheck = behospitalInfoFacade.getMedicalCheck(filterVO,casesEntryIds);
-        List<MedicalCheckDTO> records = medicalCheck.getRecords();
-        List<MedicalCheckDTO> targetList = Lists.newArrayList();
-        for (MedicalCheckDTO record : records) {
-            MedicalCheckDTO medicalCheckDTO = new MedicalCheckDTO();
-            medicalCheckDTO.setDeptId(record.getDeptId());
-            medicalCheckDTO.setDeptName(record.getDeptName());
-            medicalCheckDTO.setDoctorName(record.getDoctorName());
-            Map<String, Object> targetMap = new HashMap<String, Object>();
-            String casesEntryId = record.getCasesEntryId();
-            String[] split = casesEntryId.split(",");
-            for (String num : split) {
-                if (!targetMap.containsKey(num)) {
-                    targetMap.put(num, 1);
-                } else {
-                    targetMap.put(num, (Object) ((Integer) targetMap.get(num) + 1));
-                }
-            }
-            Set<Map.Entry<String, Object>> entries = targetMap.entrySet();
-            for (Map.Entry<String, Object> entry : entries) {
-                String key = entry.getKey();
-                medicalCheckDTO.setNumId(key);
-                if(key.equals(MedicalCheckEnum.RYJLW_24.getStatus())){
-                    medicalCheckDTO.setRyjlw_24((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.SCBCJLW_8H.getStatus())){
-                    medicalCheckDTO.setScbcjlw_8h((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.ZRSCCFW_72H.getStatus())){
-                    medicalCheckDTO.setZrcfw_2w((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.RYHLJBCW_3D.getStatus())){
-                    medicalCheckDTO.setRyhljbcw_3d((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.ZRCFW_2W.getStatus())){
-                    medicalCheckDTO.setZrcfw_2w((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.ZZCFW_3W.getStatus())){
-                    medicalCheckDTO.setZzcfw_3w((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.QJJLW_6H.getStatus())){
-                    medicalCheckDTO.setQjjlw_6h((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.HZJLW_24H.getStatus())){
-                    medicalCheckDTO.setHzjlw_24h((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.SQTLXJW.getStatus())){
-                    medicalCheckDTO.setSqtlxjw((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.SXJLSW_24H.getStatus())){
-                    medicalCheckDTO.setSxjlsw_24h((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.XHSCW_30M.getStatus())){
-                    medicalCheckDTO.setXhscw_30m((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.SHZDCFW_24H.getStatus())){
-                    medicalCheckDTO.setShzdcfw_24h((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.SHJBCW_3D.getStatus())){
-                    medicalCheckDTO.setShjbcw_3d((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.ZKJBCW_3D.getStatus())){
-                    medicalCheckDTO.setZkjbcw_3d((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.ZKJLW_24.getStatus())){
-                    medicalCheckDTO.setZkjlw_24((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.BWZHJLBCW_MD.getStatus())){
-                    medicalCheckDTO.setBwzhjlbcw_md((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.SXHWJL.getStatus())){
-                    medicalCheckDTO.setSxhwjl((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.SXPJW_24.getStatus())){
-                    medicalCheckDTO.setSxpjw_24((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.WJZWJL.getStatus())){
-                    medicalCheckDTO.setWjzwjl((Integer)entry.getValue());
-                }
-                if(key.equals(MedicalCheckEnum.WYWWCXJ.getStatus())){
-                    medicalCheckDTO.setWywwcxj((Integer)entry.getValue());
-                }
-            }
-            targetList.add(medicalCheckDTO);
-        }
-        IPage<MedicalCheckDTO> medicalCheckDTOIPage = medicalCheck.setRecords(targetList);
-        return medicalCheckDTOIPage;
+        IPage<MedicalCheckDTO> medicalCheck = behospitalInfoFacade.getMedicalCheck(filterVO, casesEntryIds);
+        return medicalCheck;
     }
 
     /**
-     * 运行病历稽查表(title)
+     * 病历稽查表(title)
      *
      * @param
      * @return
      */
     public List<ColumnDTO> getMedicalCheckTitle() {
-        //运行病历稽查入参拼接
-         String hospitalId = SysUserUtils.getCurrentHospitalID();
+        //病历稽查入参拼接
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
         //colums
         QueryWrapper<SysHospitalSet> hospitalSetQueryWrapper = new QueryWrapper<>();
         hospitalSetQueryWrapper.eq("is_deleted", 'N')

+ 90 - 26
src/main/resources/mapper/BehospitalInfoMapper.xml

@@ -117,10 +117,10 @@
             AND p.mr_status = #{mrStatus}
         </if>
         <if test="chName != null and chName !=''">
-            AND  p.ch_name  like CONCAT('%',#{chName},'%')
+            AND p.ch_name like CONCAT('%',#{chName},'%')
         </if>
         <if test="mrName != null and mrName !=''">
-            AND p.mr_name  like CONCAT('%',#{mrName},'%')
+            AND p.mr_name like CONCAT('%',#{mrName},'%')
         </if>
         <if test="chTimeStart != null">
             <![CDATA[ and p.ch_time >= #{chTimeStart}]]>
@@ -2731,15 +2731,6 @@
         </collection>
     </resultMap>
 
-    <resultMap id="MedicalCheckExcelMap" type="com.diagbot.dto.MedicalCheckExportDTO">
-        <result column="deptName" property="deptName"/>
-        <collection property="medicalCheckTitleDTOS"
-                    ofType="com.diagbot.dto.MedicalCheckTitleDTO">
-            <result column="casesEntryId" property="casesEntryId"/>
-            <result column="casesEntryName" property="casesEntryName"/>
-            <result column="doctorName" property="doctorName"/>
-        </collection>
-    </resultMap>
 
     <select id="exportExcel" resultMap="ExportExcelMap">
         SELECT DISTINCT
@@ -6427,30 +6418,53 @@
         AND f1.behDeptName = f2.behDeptName
     </select>
 
-    <!--    运行病历稽查表-->
+    <!--    病历稽查表最新sql-->
     <select id="getMedicalCheck" resultType="com.diagbot.dto.MedicalCheckDTO">
         SELECT
-        DISTINCT a.file_code,
-        a.doctor_name as doctorName,
         a.beh_dept_id AS deptId,
         a.beh_dept_name AS deptName,
-        group_concat(d.id) AS casesEntryId,
-        group_concat(d.NAME) AS casesEntryName
+        a.doctor_name as doctorName,
+        sum(c.cases_entry_id = 2658) as RYJLW_24,
+        sum(c.cases_entry_id = 2686) as SCBCJLW_8H,
+        sum(c.cases_entry_id = 2657) as ZRSCCFW_72H,
+        sum(c.cases_entry_id = 3010) as RYHLJBCW_3D,
+        sum(c.cases_entry_id = 2655) as ZRCFW_2W,
+        sum(c.cases_entry_id = 2654) as ZZCFW_3W,
+        sum(c.cases_entry_id = 2852) as QJJLW_6H,
+        sum(c.cases_entry_id = 2287) as HZJLW_24H,
+        sum(c.cases_entry_id = 3025) as SQTLXJW,
+        sum(c.cases_entry_id = 2170) as SXJLSW_24H,
+        sum(c.cases_entry_id = 2930) as XHSCW_30M,
+        sum(c.cases_entry_id = 2900) as SHZDCFW_24H,
+        sum(c.cases_entry_id = 2229) as SHJBCW_3D,
+        sum(c.cases_entry_id = 2217) as ZKJBCW_3D,
+        sum(c.cases_entry_id = 2218) as ZKJLW_24,
+        sum(c.cases_entry_id = 2220) as BWZHJLBCW_MD,
+        sum(c.cases_entry_id = 2486) as SXHWJL,
+        sum(c.cases_entry_id = 3063) as SXPJW_24,
+        sum(c.cases_entry_id = 3062) as WJZWJL,
+        sum(c.cases_entry_id = 2495) as WYWWCXJ
         FROM
         med_behospital_info a,
         med_qcresult_info b,
         med_qcresult_detail c,
-        qc_cases_entry d
+        qc_cases_entry d,
+        bas_doctor_info e
         WHERE
         a.is_deleted = 'N'
         AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
         AND d.is_deleted = 'N'
+        AND e.is_deleted = 'N'
         AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
+        AND a.hospital_id = e.hospital_id
         AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
         AND c.cases_entry_id = d.id
+        and a.doctor_id=e.doctor_id
+        and e.group_id is not NULL
+        AND LENGTH(e.group_id)>0
         AND a.qc_type_id != 0
         AND d.id in
         <if test="infos != null and infos.size() > 0">
@@ -6488,35 +6502,85 @@
         </if>
         GROUP BY
         a.beh_dept_id,
-        a.doctor_name
+        e.group_id
     </select>
 
+    <resultMap id="MedicalCheckExcelMap" type="com.diagbot.dto.MedicalCheckExportDTO">
+        <result column="deptName" property="deptName"/>
+        <collection property="medicalDoctorExportDTOS" javaType="ArrayList" ofType="com.diagbot.dto.MedicalDoctorExportDTO">
+            <result column="doctorName" property="doctorName"/>
+            <collection property="medicalCheckTitleDTOS" javaType="ArrayList" ofType="com.diagbot.dto.MedicalCheckTitleDTO">
+                <result column="RYJLW_24" property="ryjlw_24"/>
+                <result column="SCBCJLW_8H" property="scbcjlw_8h"/>
+                <result column="ZRSCCFW_72H" property="zrsccfw_72h"/>
+                <result column="RYHLJBCW_3D" property="ryhljbcw_3d"/>
+                <result column="ZRCFW_2W" property="zrcfw_2w"/>
+                <result column="ZZCFW_3W" property="zzcfw_3w"/>
+                <result column="QJJLW_6H" property="qjjlw_6h"/>
+                <result column="HZJLW_24H" property="hzjlw_24h"/>
+                <result column="SQTLXJW" property="sqtlxjw"/>
+                <result column="SXJLSW_24H" property="sxjlsw_24h"/>
+                <result column="XHSCW_30M" property="xhscw_30m"/>
+                <result column="SHZDCFW_24H" property="shzdcfw_24h"/>
+                <result column="SHJBCW_3D" property="shjbcw_3d"/>
+                <result column="ZKJBCW_3D" property="zkjbcw_3d"/>
+                <result column="ZKJLW_24" property="zkjlw_24"/>
+                <result column="BWZHJLBCW_MD" property="bwzhjlbcw_md"/>
+                <result column="SXHWJL" property="sxhwjl"/>
+                <result column="SXPJW_24" property="sxpjw_24"/>
+                <result column="WJZWJL" property="wjzwjl"/>
+                <result column="WYWWCXJ" property="wywwcxj"/>
+            </collection>
+        </collection>
+    </resultMap>
 
-
-    <!--    运行病历稽查表导出-->
+    <!--    病历稽查表最新导出-->
     <select id="getMedicalCheckExport" resultMap="MedicalCheckExcelMap">
         SELECT
-        DISTINCT a.file_code as fileCode,
-        a.doctor_name as doctorName,
         a.beh_dept_id AS deptId,
         a.beh_dept_name AS deptName,
-        group_concat(d.id) AS casesEntryId,
-        group_concat(d.NAME) AS casesEntryName
+        a.doctor_name as doctorName,
+        sum(c.cases_entry_id = 2658) as RYJLW_24,
+        sum(c.cases_entry_id = 2686) as SCBCJLW_8H,
+        sum(c.cases_entry_id = 2657) as ZRSCCFW_72H,
+        sum(c.cases_entry_id = 3010) as RYHLJBCW_3D,
+        sum(c.cases_entry_id = 2655) as ZRCFW_2W,
+        sum(c.cases_entry_id = 2654) as ZZCFW_3W,
+        sum(c.cases_entry_id = 2852) as QJJLW_6H,
+        sum(c.cases_entry_id = 2287) as HZJLW_24H,
+        sum(c.cases_entry_id = 3025) as SQTLXJW,
+        sum(c.cases_entry_id = 2170) as SXJLSW_24H,
+        sum(c.cases_entry_id = 2930) as XHSCW_30M,
+        sum(c.cases_entry_id = 2900) as SHZDCFW_24H,
+        sum(c.cases_entry_id = 2229) as SHJBCW_3D,
+        sum(c.cases_entry_id = 2217) as ZKJBCW_3D,
+        sum(c.cases_entry_id = 2218) as ZKJLW_24,
+        sum(c.cases_entry_id = 2220) as BWZHJLBCW_MD,
+        sum(c.cases_entry_id = 2486) as SXHWJL,
+        sum(c.cases_entry_id = 3063) as SXPJW_24,
+        sum(c.cases_entry_id = 3062) as WJZWJL,
+        sum(c.cases_entry_id = 2495) as WYWWCXJ
         FROM
         med_behospital_info a,
         med_qcresult_info b,
         med_qcresult_detail c,
-        qc_cases_entry d
+        qc_cases_entry d,
+        bas_doctor_info e
         WHERE
         a.is_deleted = 'N'
         AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
         AND d.is_deleted = 'N'
+        AND e.is_deleted = 'N'
         AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
+        AND a.hospital_id = e.hospital_id
         AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
         AND c.cases_entry_id = d.id
+        and a.doctor_id=e.doctor_id
+        and e.group_id is not NULL
+        AND LENGTH(e.group_id)>0
         AND a.qc_type_id != 0
         AND d.id in
         <if test="infos != null and infos.size() > 0">
@@ -6554,7 +6618,7 @@
         </if>
         GROUP BY
         a.beh_dept_id,
-        a.doctor_name
+        e.group_id
     </select>
 
     <!-- 未整改病历统计-->