瀏覽代碼

Finish szp_xxq

尚正平 2 年之前
父節點
當前提交
347333aed8

+ 172 - 0
src/main/java/com/diagbot/dto/SjcfStatisticsDTO.java

@@ -0,0 +1,172 @@
+package com.diagbot.dto;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/6/18 20:17
+ */
+@Getter
+@Setter
+public class SjcfStatisticsDTO {
+    /**
+     * 科室id(科室编码)
+     */
+    private String deptId;
+    /**
+     * 科室名称
+     */
+    @Excel(name = "科室", width = 30, orderNum = "1")
+    private String deptName;
+    
+    /**
+     * 首次病程未在患者入院8小时内完成
+     */
+    @Excel(name = "首次病程未在患者入院8小时内完成", width = 15, orderNum = "2")
+    private Integer scbc8xsNum = 0;
+    
+    /**
+     * 首次病程未在患者入院8小时内完成数
+     */
+    private Integer scbc8xsMRNum = 0;
+    
+    /**
+     * 首次病程未在患者入院8小时内完成条目id
+     */
+    private Long scbc8xsEntryId = 2686L;
+    /**
+     * 首次病程未在患者入院8小时内完成条目名称
+     */
+    private String scbc8xsEntryName = "首次病程未在患者入院8小时内完成";
+    /**
+     * 首次病程未在患者入院8小时内完成率
+     */
+    private Double scbc8xsPercent = 0.00d;
+    /**
+     * 首次病程未在患者入院8小时内完成率(百分比)
+     */
+    @Excel(name = "首次病程未在患者入院8小时内完成率", width = 15, orderNum = "3")
+    private String scbc8xsPercentStr = "0.00%";
+    
+    
+    /**
+     * 主治医师首次查房未在患者入院48小时内完成
+     */
+    @Excel(name = "主治医师首次查房未在患者入院48小时内完成", width = 15, orderNum = "2")
+    private Integer zzsccf48xsNum = 0;
+    
+    /**
+     * 主治医师首次查房未在患者入院48小时内完成数
+     */
+    private Integer zzsccf48xsMRNum = 0;
+    
+    /**
+     * 主治医师首次查房未在患者入院48小时内完成条目id
+     */
+    private Long zzsccf48xsEntryId = 2656L;
+    /**
+     * 主治医师首次查房未在患者入院48小时内完成条目名称
+     */
+    private String zzsccf48xsEntryName = "主治医师首次查房未在患者入院48小时内完成";
+    /**
+     * 主治医师首次查房未在患者入院48小时内完成率
+     */
+    private Double zzsccf48xsPercent = 0.00d;
+    /**
+     * 主治医师首次查房未在患者入院48小时内完成率(百分比)
+     */
+    @Excel(name = "主治医师首次查房未在患者入院48小时内完成率", width = 15, orderNum = "3")
+    private String zzsccf48xsPercentStr = "0.00%";
+    
+    
+    /**
+     * 副主任医师/主任医师首次查房未在患者入院72h内完成
+     */
+    @Excel(name = "副主任医师/主任医师首次查房未在患者入院72h内完成", width = 15, orderNum = "2")
+    private Integer fzzsccf72xsNum = 0;
+    
+    /**
+     * 副主任医师/主任医师首次查房未在患者入院72h内完成数
+     */
+    private Integer fzzsccf72xsMRNum = 0;
+    
+    /**
+     * 副主任医师/主任医师首次查房未在患者入院72h内完成条目id
+     */
+    private Long fzzsccf72xsEntryId = 2657L;
+    /**
+     * 副主任医师/主任医师首次查房未在患者入院72h内完成条目名称
+     */
+    private String fzzsccf72xsEntryName = "副主任医师/主任医师首次查房未在患者入院72h内完成";
+    /**
+     * 副主任医师/主任医师首次查房未在患者入院72h内完成率
+     */
+    private Double fzzsccf72xsPercent = 0.00d;
+    /**
+     * 副主任医师/主任医师首次查房未在患者入院72h内完成率(百分比)
+     */
+    @Excel(name = "副主任医师/主任医师首次查房未在患者入院72h内完成率", width = 15, orderNum = "3")
+    private String fzzsccf72xsPercentStr = "0.00%";
+    
+    
+    /**
+     * 每周无2次副主任医师/主任医师查房记录
+     */
+    @Excel(name = "每周无2次副主任医师/主任医师查房记录", width = 15, orderNum = "2")
+    private Integer mzf2cNum = 0;
+    
+    /**
+     * 每周无2次副主任医师/主任医师查房记录数
+     */
+    private Integer mzf2cMRNum = 0;
+    
+    /**
+     * 每周无2次副主任医师/主任医师查房记录条目id
+     */
+    private Long mzf2cEntryId = 2655L;
+    /**
+     * 每周无2次副主任医师/主任医师查房记录条目名称
+     */
+    private String mzf2cEntryName = "每周无2次副主任医师/主任医师查房记录";
+    /**
+     * 每周无2次副主任医师/主任医师查房记录率
+     */
+    private Double mzf2cPercent = 0.00d;
+    /**
+     * 每周无2次副主任医师/主任医师查房记录率(百分比)
+     */
+    @Excel(name = "每周无2次副主任医师/主任医师查房记录率", width = 15, orderNum = "3")
+    private String mzf2cPercentStr = "0.00%";
+    
+    /**
+     * 每周无3次主治医师查房记录
+     */
+    @Excel(name = "每周无3次主治医师查房记录", width = 15, orderNum = "2")
+    private Integer mzw3cNum = 0;
+    
+    /**
+     * 每周无3次主治医师查房记录数
+     */
+    private Integer mzw3cMRNum = 0;
+    
+    /**
+     * 每周无3次主治医师查房记录条目id
+     */
+    private Long mzw3cEntryId = 2686L;
+    /**
+     * 每周无3次主治医师查房记录条目名称
+     */
+    private String mzw3cEntryName = "每周无3次主治医师查房记录";
+    /**
+     * 每周无3次主治医师查房记录率
+     */
+    private Double mzw3cPercent = 0.00d;
+    /**
+     * 每周无3次主治医师查房记录率(百分比)
+     */
+    @Excel(name = "每周无3次主治医师查房记录率", width = 15, orderNum = "3")
+    private String mzw3cPercentStr = "0.00%";
+}

+ 0 - 1
src/main/java/com/diagbot/enums/AbnormalStatusEnum.java

@@ -5,7 +5,6 @@ import lombok.Setter;
 
 
 /**
 /**
  * @author wangfeng
  * @author wangfeng
- * @Description: TODO
  * @date 2018年11月21日 下午2:31:42
  * @date 2018年11月21日 下午2:31:42
  */
  */
 public enum AbnormalStatusEnum implements KeyedNamed {
 public enum AbnormalStatusEnum implements KeyedNamed {

+ 0 - 1
src/main/java/com/diagbot/enums/AbnormalTypeEnum.java

@@ -5,7 +5,6 @@ import lombok.Setter;
 
 
 /**
 /**
  * @author wangfeng
  * @author wangfeng
- * @Description: TODO
  * @date 2018年11月21日 下午2:31:42
  * @date 2018年11月21日 下午2:31:42
  */
  */
 public enum AbnormalTypeEnum implements KeyedNamed {
 public enum AbnormalTypeEnum implements KeyedNamed {

+ 0 - 1
src/main/java/com/diagbot/enums/CheckStatusEnum.java

@@ -5,7 +5,6 @@ import lombok.Setter;
 
 
 /**
 /**
  * @author wangfeng
  * @author wangfeng
- * @Description: TODO
  * @date 2018年11月21日 下午2:31:42
  * @date 2018年11月21日 下午2:31:42
  */
  */
 public enum CheckStatusEnum implements KeyedNamed {
 public enum CheckStatusEnum implements KeyedNamed {

+ 0 - 1
src/main/java/com/diagbot/enums/CheckerRoleEnum.java

@@ -5,7 +5,6 @@ import lombok.Setter;
 
 
 /**
 /**
  * @author wangfeng
  * @author wangfeng
- * @Description: TODO
  * @date 2018年11月21日 下午2:31:42
  * @date 2018年11月21日 下午2:31:42
  */
  */
 public enum CheckerRoleEnum implements KeyedNamed {
 public enum CheckerRoleEnum implements KeyedNamed {

+ 0 - 1
src/main/java/com/diagbot/enums/InsertOrUpdateEnum.java

@@ -5,7 +5,6 @@ import lombok.Setter;
 
 
 /**
 /**
  * @author wangfeng
  * @author wangfeng
- * @Description: TODO
  * @date 2018年11月21日 下午2:31:42
  * @date 2018年11月21日 下午2:31:42
  */
  */
 public enum InsertOrUpdateEnum implements KeyedNamed {
 public enum InsertOrUpdateEnum implements KeyedNamed {

+ 0 - 1
src/main/java/com/diagbot/enums/LockEnum.java

@@ -4,7 +4,6 @@ import lombok.Setter;
 
 
 /**
 /**
  * @author wangfeng
  * @author wangfeng
- * @Description: TODO
  * @date 2018年11月21日 下午2:31:42
  * @date 2018年11月21日 下午2:31:42
  */
  */
 public enum LockEnum{
 public enum LockEnum{

+ 0 - 1
src/main/java/com/diagbot/enums/StatusEnum.java

@@ -5,7 +5,6 @@ import lombok.Setter;
 
 
 /**
 /**
  * @author wangfeng
  * @author wangfeng
- * @Description: TODO
  * @date 2018年11月21日 下午2:31:42
  * @date 2018年11月21日 下午2:31:42
  */
  */
 public enum StatusEnum implements KeyedNamed {
 public enum StatusEnum implements KeyedNamed {

+ 3 - 0
src/main/java/com/diagbot/facade/BehospitalInfoFacade.java

@@ -29,6 +29,8 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Component;
 
 
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
+
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.math.RoundingMode;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
@@ -2651,4 +2653,5 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
         return behospitalInfoAgeDTOList;
         return behospitalInfoAgeDTOList;
     }
     }
 
 
+
 }
 }

+ 199 - 36
src/main/java/com/diagbot/facade/ConsoleFacade.java

@@ -1,48 +1,118 @@
 package com.diagbot.facade;
 package com.diagbot.facade;
 
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.text.DateFormat;
+import java.text.DecimalFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.Instant;
+import java.time.LocalDateTime;
+import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+import java.util.Set;
+import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.concurrent.CopyOnWriteArraySet;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ForkJoinPool;
+import java.util.stream.Collectors;
+
+import javax.validation.Valid;
+
+import org.apache.commons.lang3.StringUtils;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.diagbot.aggregate.AverageStatisticsAggregate;
 import com.diagbot.aggregate.AverageStatisticsAggregate;
-import com.diagbot.aggregate.LeaveHosStatisticsAggregate;
 import com.diagbot.aggregate.MrStatisticsAggregate;
 import com.diagbot.aggregate.MrStatisticsAggregate;
 import com.diagbot.aggregate.ResultStatisticsAggregate;
 import com.diagbot.aggregate.ResultStatisticsAggregate;
-import com.diagbot.dto.*;
-import com.diagbot.entity.*;
+import com.diagbot.dto.AverageStatisticsDTO;
+import com.diagbot.dto.AverageStatisticsFeeDTO;
+import com.diagbot.dto.CaseScoreDTO;
+import com.diagbot.dto.ColumnDTO;
+import com.diagbot.dto.DeptNumDTO;
+import com.diagbot.dto.EntryNumDTO;
+import com.diagbot.dto.EntryNumGroupDTO;
+import com.diagbot.dto.EntryStatisticsDTO;
+import com.diagbot.dto.HomePageImproveDTO;
+import com.diagbot.dto.HomePageNumDTO;
+import com.diagbot.dto.LevelStatisticsDTO;
+import com.diagbot.dto.LevelStatisticsTZDTO;
+import com.diagbot.dto.MedManageParamsDTO;
+import com.diagbot.dto.MedicalCheckDTO;
+import com.diagbot.dto.MedicalCheckExportDTO;
+import com.diagbot.dto.NumDTO;
+import com.diagbot.dto.QcResultPercentDTO;
+import com.diagbot.dto.QcResultShortDTO;
+import com.diagbot.dto.QualityControlDTO;
+import com.diagbot.dto.QualityControlNullDTO;
+import com.diagbot.dto.ReBeHosDTO;
+import com.diagbot.dto.ReBeHosDetailDTO;
+import com.diagbot.dto.ReBeHosMergeDTO;
+import com.diagbot.dto.SjcfStatisticsDTO;
+import com.diagbot.dto.UnModifyMRDTO;
+import com.diagbot.dto.UnModifyMRDetailDTO;
+import com.diagbot.entity.BehospitalInfo;
+import com.diagbot.entity.MedIndexRelevance;
+import com.diagbot.entity.MedIndexResult;
+import com.diagbot.entity.MedManagementInfo;
+import com.diagbot.entity.QcCasesEntry;
+import com.diagbot.entity.SysHospitalSet;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.enums.QualityContent;
 import com.diagbot.enums.QualityContent;
 import com.diagbot.enums.TimeContent;
 import com.diagbot.enums.TimeContent;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.exception.CommonException;
 import com.diagbot.service.MedManagementInfoService;
 import com.diagbot.service.MedManagementInfoService;
-import com.diagbot.util.*;
-import com.diagbot.vo.*;
+import com.diagbot.util.BeanUtil;
+import com.diagbot.util.BigDecimalUtil;
+import com.diagbot.util.ClassUtil;
+import com.diagbot.util.DateUtil;
+import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.ObjectUtil;
+import com.diagbot.util.StringUtil;
+import com.diagbot.util.SysUserUtils;
+import com.diagbot.vo.AlgorithmVO;
+import com.diagbot.vo.BehospitalPageVO;
+import com.diagbot.vo.CaseScoreVO;
+import com.diagbot.vo.EntryStatisticsVO;
+import com.diagbot.vo.FilterMedicalCheckVO;
+import com.diagbot.vo.FilterOrderVO;
+import com.diagbot.vo.FilterPageByAverageVO;
+import com.diagbot.vo.FilterPageVO;
+import com.diagbot.vo.FilterUnModifyMRVO;
+import com.diagbot.vo.FilterVO;
+import com.diagbot.vo.IndexTimeVO;
+import com.diagbot.vo.MedIndexFilterVO;
+import com.diagbot.vo.QcResultAlgVO;
+import com.diagbot.vo.QcResultPageVO;
+import com.diagbot.vo.QcResultShortPageVO;
+import com.diagbot.vo.ReBeHosPageVO;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Lists;
-import io.github.lvyahui8.spring.aggregate.facade.DataBeanAggregateQueryFacade;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.ibatis.annotations.Param;
-import org.apache.poi.hssf.record.DVALRecord;
-import org.apache.poi.ss.formula.functions.Na;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
 
 
-import java.math.BigDecimal;
-import java.math.RoundingMode;
-import java.text.DateFormat;
-import java.text.DecimalFormat;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.time.*;
-import java.time.format.DateTimeFormatter;
-import java.util.*;
-import java.util.concurrent.*;
-import java.util.stream.Collectors;
-
-import static io.netty.util.internal.SystemPropertyUtil.contains;
+import io.github.lvyahui8.spring.aggregate.facade.DataBeanAggregateQueryFacade;
 
 
 /**
 /**
  * @Description:
  * @Description:
@@ -76,8 +146,6 @@ public class ConsoleFacade {
     @Qualifier("medManagementInfoServiceImpl")
     @Qualifier("medManagementInfoServiceImpl")
     private MedManagementInfoService medManagementInfoService;
     private MedManagementInfoService medManagementInfoService;
     @Autowired
     @Autowired
-    private DoctorAdviceFacade doctorAdviceFacade;
-    @Autowired
     private MedIndexResultFacade medIndexResultFacade;
     private MedIndexResultFacade medIndexResultFacade;
     @Autowired
     @Autowired
     private MedIndexRelevanceFacade medIndexRelevanceFacade;
     private MedIndexRelevanceFacade medIndexRelevanceFacade;
@@ -377,8 +445,7 @@ public class ConsoleFacade {
         try {
         try {
             Map<String, Object> invokeParams = new HashMap<>();
             Map<String, Object> invokeParams = new HashMap<>();
             invokeParams.put("filterVO", filterVO);
             invokeParams.put("filterVO", filterVO);
-            leaveHosMap
-                    = dataBeanAggregateQueryFacade.get("setAllLeaveHos", invokeParams, Map.class);
+            leaveHosMap = dataBeanAggregateQueryFacade.get("setAllLeaveHos", invokeParams, Map.class);
         } catch (Exception e) {
         } catch (Exception e) {
             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR);
             throw new CommonException(CommonErrorCode.SERVER_IS_ERROR);
         }
         }
@@ -2450,7 +2517,102 @@ public class ConsoleFacade {
         }
         }
         return records;
         return records;
     }
     }
+    
+    
+	public Object sjcfStatistics(@Valid EntryStatisticsVO entryStatisticsVO) {
+		filterFacade.entryStatisticsVOSet(entryStatisticsVO);
+        if (entryStatisticsVO.getDeptName().equals("全院")) {
+            entryStatisticsVO.setDeptName("");
+        }
+        List<SjcfStatisticsDTO> records = behospitalInfoFacade.sjcfStatistics(entryStatisticsVO);
+        //增加全院数据
+        if (entryStatisticsVO.getDeptName().equals("")) {
+        	SjcfStatisticsDTO record = getSjcfGlobleRecord(records);
+            if (record != null) {
+                records.add(0, record);
+            }
+        }
+        return records;
+	}
+
+	 /**
+     * 关键条目缺陷占比统计增加全院记录
+     *
+     * @param records
+     * @return
+     */
+    private SjcfStatisticsDTO getSjcfGlobleRecord(List<SjcfStatisticsDTO> records) {
+        DecimalFormat df = new DecimalFormat("#0.00");
+        if (ListUtil.isEmpty(records)) {
+            return null;
+        }
 
 
+        SjcfStatisticsDTO record = new SjcfStatisticsDTO();
+        record.setDeptName("全院");
+       
+        //首次病程未在患者入院8小时内完成
+        Integer scbc8xsNum = records.stream().map(SjcfStatisticsDTO::getScbc8xsNum).reduce(0, Integer::sum);
+        record.setScbc8xsNum(scbc8xsNum);
+        record.setScbc8xsEntryId(records.get(0).getScbc8xsEntryId());
+        Integer scbc8xsMRNum = records.stream().map(SjcfStatisticsDTO::getScbc8xsMRNum).reduce(0, Integer::sum);
+        record.setScbc8xsMRNum(scbc8xsMRNum);
+        if (scbc8xsNum != null && !scbc8xsMRNum.equals(0)) {
+            Double scbc8xsPercent = BigDecimal.valueOf(scbc8xsNum).divide(BigDecimal.valueOf(scbc8xsMRNum), 4, RoundingMode.HALF_UP).doubleValue();
+            record.setScbc8xsPercent(scbc8xsPercent);
+            record.setScbc8xsPercentStr(df.format(BigDecimal.valueOf(scbc8xsPercent).multiply(BigDecimal.valueOf(100))) + "%");
+        }
+        
+        //主治医师首次查房未在患者入院48小时内完成
+        Integer zzsccf48xsNum = records.stream().map(SjcfStatisticsDTO::getZzsccf48xsNum).reduce(0, Integer::sum);
+        record.setZzsccf48xsNum(zzsccf48xsNum);
+        record.setZzsccf48xsEntryId(records.get(0).getZzsccf48xsEntryId());
+        Integer zzsccf48xsMRNum = records.stream().map(SjcfStatisticsDTO::getZzsccf48xsMRNum).reduce(0, Integer::sum);
+        record.setZzsccf48xsMRNum(zzsccf48xsMRNum);
+        if (zzsccf48xsMRNum != null && !zzsccf48xsMRNum.equals(0)) {
+            Double zzsccf48xsPercent = BigDecimal.valueOf(zzsccf48xsNum).divide(BigDecimal.valueOf(zzsccf48xsMRNum), 4, RoundingMode.HALF_UP).doubleValue();
+            record.setZzsccf48xsPercent(zzsccf48xsPercent);
+            record.setZzsccf48xsPercentStr(df.format(BigDecimal.valueOf(zzsccf48xsPercent).multiply(BigDecimal.valueOf(100))) + "%");
+        }
+        
+        //副主任医师/主任医师首次查房未在患者入院72h内完成
+        Integer fzzsccf72xsNum = records.stream().map(SjcfStatisticsDTO::getFzzsccf72xsNum).reduce(0, Integer::sum);
+        record.setFzzsccf72xsNum(fzzsccf72xsNum);
+        record.setFzzsccf72xsEntryId(records.get(0).getFzzsccf72xsEntryId());
+        Integer fzzsccf72xsMRNum = records.stream().map(SjcfStatisticsDTO::getFzzsccf72xsMRNum).reduce(0, Integer::sum);
+        record.setFzzsccf72xsMRNum(fzzsccf72xsMRNum);
+        if (fzzsccf72xsMRNum != null && !fzzsccf72xsMRNum.equals(0)) {
+            Double fzzsccf72xsPercent = BigDecimal.valueOf(fzzsccf72xsNum).divide(BigDecimal.valueOf(fzzsccf72xsMRNum), 4, RoundingMode.HALF_UP).doubleValue();
+            record.setFzzsccf72xsPercent(fzzsccf72xsPercent);
+            record.setFzzsccf72xsPercentStr(df.format(BigDecimal.valueOf(fzzsccf72xsPercent).multiply(BigDecimal.valueOf(100))) + "%");
+        }
+
+        //每周无2次副主任医师/主任医师查房记录率
+        Integer mzf2cNum = records.stream().map(SjcfStatisticsDTO::getMzf2cNum).reduce(0, Integer::sum);
+        record.setMzf2cNum(mzf2cNum);
+        record.setMzf2cEntryId(records.get(0).getMzf2cEntryId());
+        Integer mzf2cMRNum = records.stream().map(SjcfStatisticsDTO::getMzf2cMRNum).reduce(0, Integer::sum);
+        record.setMzf2cMRNum(mzf2cMRNum);
+        if (mzf2cMRNum != null && !mzf2cMRNum.equals(0)) {
+            Double mzf2cPercent = BigDecimal.valueOf(mzf2cNum).divide(BigDecimal.valueOf(mzf2cMRNum), 4, RoundingMode.HALF_UP).doubleValue();
+            record.setMzf2cPercent(mzf2cPercent);
+            record.setMzf2cPercentStr(df.format(BigDecimal.valueOf(mzf2cPercent).multiply(BigDecimal.valueOf(100))) + "%");
+        }
+        
+        //每周无3次主治医师查房记录率
+        Integer mzw3cNum = records.stream().map(SjcfStatisticsDTO::getMzw3cNum).reduce(0, Integer::sum);
+        record.setMzw3cNum(mzw3cNum);
+        record.setMzw3cEntryId(records.get(0).getMzw3cEntryId());
+        Integer mzw3cMRNum = records.stream().map(SjcfStatisticsDTO::getMzw3cMRNum).reduce(0, Integer::sum);
+        record.setMzw3cMRNum(mzw3cMRNum);
+        if (mzw3cMRNum != null && !mzw3cMRNum.equals(0)) {
+            Double mzw3cPercent = BigDecimal.valueOf(mzw3cNum).divide(BigDecimal.valueOf(mzw3cMRNum), 4, RoundingMode.HALF_UP).doubleValue();
+            record.setMzw3cPercent(mzw3cPercent);
+            record.setMzw3cPercentStr(df.format(BigDecimal.valueOf(mzw3cPercent).multiply(BigDecimal.valueOf(100))) + "%");
+        }
+        
+        return record;
+    }
+	
     /**
     /**
      * 关键条目缺陷占比统计增加全院记录
      * 关键条目缺陷占比统计增加全院记录
      *
      *
@@ -3109,7 +3271,7 @@ public class ConsoleFacade {
 
 
        return str;
        return str;
     }
     }
-    static Set strTranListMethod(String str){
+    static Set<String> strTranListMethod(String str){
         Set<String> names = new HashSet<>();
         Set<String> names = new HashSet<>();
         if(StringUtils.isNotEmpty(str)){
         if(StringUtils.isNotEmpty(str)){
         if(str.contains(",") && str.length()>1){
         if(str.contains(",") && str.length()>1){
@@ -3621,7 +3783,6 @@ public class ConsoleFacade {
     //指标20 出院患者病历2日归档
     //指标20 出院患者病历2日归档
     private void getfileSecAmounts(FilterVO filterVO,MedIndexResult medIndexResult){
     private void getfileSecAmounts(FilterVO filterVO,MedIndexResult medIndexResult){
         QueryWrapper<BehospitalInfo> query = new QueryWrapper<>();
         QueryWrapper<BehospitalInfo> query = new QueryWrapper<>();
-        DecimalFormat df = new DecimalFormat("#0.00");
         query.eq("hospital_id", filterVO.getHospitalId())
         query.eq("hospital_id", filterVO.getHospitalId())
                 .eq("is_deleted", IsDeleteEnum.N)
                 .eq("is_deleted", IsDeleteEnum.N)
                 .ne("qc_type_id", 0)
                 .ne("qc_type_id", 0)
@@ -3801,7 +3962,7 @@ public class ConsoleFacade {
                 continue;
                 continue;
             }
             }
             String[] keyValue = valueStr.split("--");
             String[] keyValue = valueStr.split("--");
-            if (keyValue != null || keyValue.length > 1) {
+            if (keyValue != null && keyValue.length > 1) {
                 casesEntryIds.add(Long.valueOf(keyValue[0]));
                 casesEntryIds.add(Long.valueOf(keyValue[0]));
             }
             }
         }
         }
@@ -3855,7 +4016,7 @@ public class ConsoleFacade {
         orderNo++;
         orderNo++;
         for (String valueStr : columnSet) {
         for (String valueStr : columnSet) {
             String[] keyValue = valueStr.split("--");
             String[] keyValue = valueStr.split("--");
-            if (keyValue != null || keyValue.length > 1) {
+            if (keyValue != null && keyValue.length > 1) {
                 ColumnDTO columnNum = new ColumnDTO();
                 ColumnDTO columnNum = new ColumnDTO();
                 columnNum.setOrderNo(orderNo);
                 columnNum.setOrderNo(orderNo);
                 columnNum.setId(Long.valueOf(keyValue[0]));
                 columnNum.setId(Long.valueOf(keyValue[0]));
@@ -4174,5 +4335,7 @@ public class ConsoleFacade {
         qualityControlDTO.setOtherCaseScore(score_262 + score_281 + score_282 + score_283 + score_284);
         qualityControlDTO.setOtherCaseScore(score_262 + score_281 + score_282 + score_283 + score_284);
 
 
     }
     }
+
+
 }
 }
 
 

+ 10 - 1
src/main/java/com/diagbot/mapper/BehospitalInfoMapper.java

@@ -28,6 +28,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map;
 import java.util.Set;
 import java.util.Set;
 
 
+import javax.validation.Valid;
+
 /**
 /**
  * <p>
  * <p>
  * 住院病历信息 Mapper 接口
  * 住院病历信息 Mapper 接口
@@ -347,7 +349,13 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      */
      */
     public List<EntryStatisticsDTO> entryStatistics(EntryStatisticsVO entryStatisticsVO);
     public List<EntryStatisticsDTO> entryStatistics(EntryStatisticsVO entryStatisticsVO);
 
 
-
+    /**
+     * 三级查房统计报表
+     *
+     * @param entryStatisticsVO
+     * @return
+     */
+    public List<SjcfStatisticsDTO> sjcfStatistics(@Valid EntryStatisticsVO entryStatisticsVO);
     /**
     /**
      * 关键条目缺陷占比统计-科室
      * 关键条目缺陷占比统计-科室
      *
      *
@@ -763,4 +771,5 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      * @return
      * @return
      */
      */
     List<BehospitalInfoAgeDTO> getBehospitalInfoAge(Long hospitalId, List<String> behospitalCodes);
     List<BehospitalInfoAgeDTO> getBehospitalInfoAge(Long hospitalId, List<String> behospitalCodes);
+
 }
 }

+ 6 - 0
src/main/java/com/diagbot/service/impl/BehospitalInfoServiceImpl.java

@@ -16,6 +16,8 @@ import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.*;
 
 
+import javax.validation.Valid;
+
 /**
 /**
  * <p>
  * <p>
  * 住院病历信息 服务实现类
  * 住院病历信息 服务实现类
@@ -430,6 +432,10 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
         return baseMapper.entryStatistics(entryStatisticsVO);
         return baseMapper.entryStatistics(entryStatisticsVO);
     }
     }
 
 
+    public List<SjcfStatisticsDTO> sjcfStatistics(@Valid EntryStatisticsVO entryStatisticsVO) {
+    	 return baseMapper.sjcfStatistics(entryStatisticsVO);
+	}
+    
     /**
     /**
      * 关键条目缺陷占比统计-科室
      * 关键条目缺陷占比统计-科室
      *
      *

+ 6 - 3
src/main/java/com/diagbot/vo/BehospitalPageVO.java

@@ -1,11 +1,13 @@
 package com.diagbot.vo;
 package com.diagbot.vo;
 
 
+import java.io.Serializable;
+import java.util.Date;
+
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
-
-import java.io.Serializable;
-import java.util.Date;
+import lombok.EqualsAndHashCode;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -16,6 +18,7 @@ import java.util.Date;
  * @since 2020-04-13
  * @since 2020-04-13
  */
  */
 @Data
 @Data
+@EqualsAndHashCode(callSuper=false)
 public class BehospitalPageVO extends Page implements Serializable {
 public class BehospitalPageVO extends Page implements Serializable {
 
 
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;

+ 6 - 3
src/main/java/com/diagbot/vo/CheckJobPageVO.java

@@ -1,11 +1,13 @@
 package com.diagbot.vo;
 package com.diagbot.vo;
 
 
+import java.io.Serializable;
+import java.util.List;
+
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.Data;
-
-import java.io.Serializable;
-import java.util.List;
+import lombok.EqualsAndHashCode;
 
 
 /**
 /**
  * @description: 分配任务入参对象-分页
  * @description: 分配任务入参对象-分页
@@ -13,6 +15,7 @@ import java.util.List;
  * @time: 2021/05/17
  * @time: 2021/05/17
  */
  */
 @Data
 @Data
+@EqualsAndHashCode(callSuper=false)
 public class CheckJobPageVO extends Page implements Serializable {
 public class CheckJobPageVO extends Page implements Serializable {
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;
     //生成任务开始时间
     //生成任务开始时间

+ 7 - 4
src/main/java/com/diagbot/vo/CheckWorkPageVO.java

@@ -1,13 +1,15 @@
 package com.diagbot.vo;
 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.io.Serializable;
 import java.util.Date;
 import java.util.Date;
 import java.util.List;
 import java.util.List;
 
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
 /**
 /**
  * <p>
  * <p>
  * 核查患者病历信息
  * 核查患者病历信息
@@ -17,6 +19,7 @@ import java.util.List;
  * @since 2021-05-13
  * @since 2021-05-13
  */
  */
 @Data
 @Data
+@EqualsAndHashCode(callSuper=false)
 public class CheckWorkPageVO extends Page implements Serializable {
 public class CheckWorkPageVO extends Page implements Serializable {
 
 
     private static final long serialVersionUID = 1L;
     private static final long serialVersionUID = 1L;

+ 67 - 12
src/main/java/com/diagbot/web/ConsoleController.java

@@ -1,23 +1,54 @@
 package com.diagbot.web;
 package com.diagbot.web;
 
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.diagbot.annotation.SysLogger;
-import com.diagbot.dto.*;
-import com.diagbot.entity.FilterRecordVO;
-import com.diagbot.facade.ConsoleFacade;
-import com.diagbot.vo.*;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import java.util.List;
+import java.util.Map;
+
+import javax.validation.Valid;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
-import springfox.documentation.annotations.ApiIgnore;
 
 
-import javax.validation.Valid;
-import java.util.List;
-import java.util.Map;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.annotation.SysLogger;
+import com.diagbot.dto.AverageStatisticsDTO;
+import com.diagbot.dto.AverageStatisticsFeeDTO;
+import com.diagbot.dto.ColumnDTO;
+import com.diagbot.dto.DeptNumDTO;
+import com.diagbot.dto.EntryNumDTO;
+import com.diagbot.dto.EntryNumGroupDTO;
+import com.diagbot.dto.EntryStatisticsDTO;
+import com.diagbot.dto.HomePageImproveDTO;
+import com.diagbot.dto.HomePageNumDTO;
+import com.diagbot.dto.LevelStatisticsDTO;
+import com.diagbot.dto.LevelStatisticsTZDTO;
+import com.diagbot.dto.MedicalCheckDTO;
+import com.diagbot.dto.NumDTO;
+import com.diagbot.dto.QcResultShortDTO;
+import com.diagbot.dto.QualityControlDTO;
+import com.diagbot.dto.ReBeHosDTO;
+import com.diagbot.dto.RespDTO;
+import com.diagbot.dto.SjcfStatisticsDTO;
+import com.diagbot.dto.UnModifyMRDTO;
+import com.diagbot.facade.ConsoleFacade;
+import com.diagbot.vo.BehospitalPageVO;
+import com.diagbot.vo.EntryStatisticsVO;
+import com.diagbot.vo.FilterMedicalCheckVO;
+import com.diagbot.vo.FilterOrderVO;
+import com.diagbot.vo.FilterPageByAverageVO;
+import com.diagbot.vo.FilterPageVO;
+import com.diagbot.vo.FilterUnModifyMRVO;
+import com.diagbot.vo.FilterVO;
+import com.diagbot.vo.IndexTimeVO;
+import com.diagbot.vo.QcResultPageVO;
+import com.diagbot.vo.QcResultShortPageVO;
+import com.diagbot.vo.ReBeHosPageVO;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import springfox.documentation.annotations.ApiIgnore;
 
 
 /**
 /**
  * @Description:
  * @Description:
@@ -600,6 +631,30 @@ public class ConsoleController {
     public RespDTO<List<EntryStatisticsDTO>> entryStatistics(@RequestBody @Valid EntryStatisticsVO entryStatisticsVO) {
     public RespDTO<List<EntryStatisticsDTO>> entryStatistics(@RequestBody @Valid EntryStatisticsVO entryStatisticsVO) {
         return RespDTO.onSuc(consoleFacade.entryStatistics(entryStatisticsVO));
         return RespDTO.onSuc(consoleFacade.entryStatistics(entryStatisticsVO));
     }
     }
+    
+    
+    
+    /**
+     * 关键条目缺陷占比统计
+     *
+     * @param entryStatisticsVO
+     * @return
+     */
+    @ApiOperation(value = "三级查房制度相关制度[by:zhaops]",
+            notes = "deptName:科室名称 <br>" +
+                    "asc: 排序(升序) <br>" +
+                    "desc:排序(降序) <br>" +
+                    "startDate: 起始时间 <br>" +
+                    "endDate: 截止时间 <br>" +
+                    "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
+    @PostMapping("/sjcfStatistics")
+    @SysLogger("sjcfStatistics")
+    public RespDTO<List<SjcfStatisticsDTO>> sjcfStatistics(@RequestBody @Valid EntryStatisticsVO entryStatisticsVO) {
+        return RespDTO.onSuc(consoleFacade.sjcfStatistics(entryStatisticsVO));
+    }
+    
+    
+    
 
 
     /**
     /**
      * 病案首页病历统计
      * 病案首页病历统计

+ 168 - 0
src/main/resources/mapper/BehospitalInfoMapper.xml

@@ -6631,6 +6631,174 @@
             </choose>
             </choose>
         </if>
         </if>
     </select>
     </select>
+    
+    
+    
+    <!-- 关键条目缺陷统计报表-->
+    <select id="sjcfStatistics" parameterType="com.diagbot.vo.EntryStatisticsVO" resultType="com.diagbot.dto.SjcfStatisticsDTO">
+        SELECT
+        deptId,
+        deptName,
+        MRNum scbc8xsMRNum,
+        scbc8xsNum,
+        2686 AS scbc8xsEntryId,
+        '首次病程未在患者入院8小时内完成' AS scbc8xsEntryName,
+        ROUND( IFNULL( scbc8xsNum / MRNum, 0 ), 4 ) AS scbc8xsPercent,
+        CONCAT( ROUND( IFNULL( scbc8xsNum / MRNum, 0 ) * 100, 2 ), '%' ) AS scbc8xsPercentStr,
+        
+        MRNum zzsccf48xsMRNum,
+        zzsccf48xsNum,
+        2656 AS zzsccf48xsEntryId,
+        '主治医师首次查房未在患者入院48小时内完成' AS zzsccf48xsEntryName,
+        ROUND( IFNULL( zzsccf48xsNum / MRNum, 0 ), 4 ) AS zzsccf48xsPercent,
+        CONCAT( ROUND( IFNULL( zzsccf48xsNum / MRNum, 0 ) * 100, 2 ), '%' ) AS zzsccf48xsPercentStr,
+        
+        MRNum fzzsccf72xsMRNum,
+        fzzsccf72xsNum,
+        2657 AS fzzsccf72xsEntryId,
+        '副主任医师/主任医师首次查房未在患者入院72h内完成' AS fzzsccf72xsEntryName,
+        ROUND( IFNULL( fzzsccf72xsNum / MRNum, 0 ), 4 ) AS fzzsccf72xsPercent,
+        CONCAT( ROUND( IFNULL( fzzsccf72xsNum / MRNum, 0 ) * 100, 2 ), '%' ) AS fzzsccf72xsPercentStr,
+        
+        MRNum mzf2cMRNum,
+        mzf2cNum,
+        2655 AS mzf2cEntryId,
+        '每周无2次副主任医师/主任医师查房记录' AS mzf2cEntryName,
+        ROUND( IFNULL( mzf2cNum / MRNum, 0 ), 4 ) AS mzf2cPercent,
+        CONCAT( ROUND( IFNULL( mzf2cNum / MRNum, 0 ) * 100, 2 ), '%' ) AS mzf2cPercentStr,
+   
+        MRNum mzw3cMRNum,
+        mzw3cNum,
+        2686 AS mzw3cEntryId,
+        '每周无3次主治医师查房记录' AS mzw3cEntryName,
+        ROUND( IFNULL( mzw3cNum / MRNum, 0 ), 4 ) AS mzw3cPercent,
+        CONCAT( ROUND( IFNULL( mzw3cNum / MRNum, 0 ) * 100, 2 ), '%' ) AS mzw3cPercentStr
+        
+        FROM (
+        	SELECT
+        	tt.deptId,
+        	tt.deptName,
+        	sum( tt.scbc8xsNum ) AS scbc8xsNum,
+        	sum( tt.zzsccf48xsNum ) AS zzsccf48xsNum,
+        	sum( tt.fzzsccf72xsNum ) AS fzzsccf72xsNum,
+        	sum( tt.mzf2cNum ) AS mzf2cNum,
+        	sum( tt.mzw3cNum ) AS mzw3cNum,
+        	sum( tt.MRNum ) AS MRNum
+        	FROM(
+        		SELECT
+        		c.beh_dept_id AS deptId,
+        		c.beh_dept_name AS deptName,
+        		sum( d.cases_entry_id = 2686 ) AS scbc8xsNum,
+       			sum( d.cases_entry_id = 2656 ) AS zzsccf48xsNum,
+       			sum( d.cases_entry_id = 2657 ) AS fzzsccf72xsNum,
+       			sum( d.cases_entry_id = 2655 ) AS mzf2cNum,
+       			sum( d.cases_entry_id = 2654 ) AS mzw3cNum,
+       			count( DISTINCT c.behospital_code ) AS MRNum
+        		FROM(
+			        SELECT DISTINCT
+			        a.hospital_id,
+			        a.behospital_code,
+			        a.beh_dept_name,
+			        a.beh_dept_id
+			        FROM med_behospital_info a
+			        WHERE a.is_deleted = 'N' and a.qc_type_id != 0
+			        <if test="isPlacefile != null and isPlacefile != ''">
+			            and a.is_placefile = #{isPlacefile}
+			        </if>
+			        <if test="hospitalId != null and hospitalId != ''">
+			            AND a.hospital_id = #{hospitalId}
+			        </if>
+			        <if test="isPlacefile != null and isPlacefile == 0">
+			            <if test="startDate != null ">
+			                <![CDATA[ AND a.behospital_date >= #{startDate}]]>
+			            </if>
+			            <if test="endDate != null ">
+			                <![CDATA[ AND a.behospital_date <= #{endDate}]]>
+			            </if>
+			        </if>
+			        <if test="isPlacefile != null and isPlacefile == 1">
+			            <if test="startDate != null ">
+			                <![CDATA[ AND a.leave_hospital_date >= #{startDate}]]>
+			            </if>
+			            <if test="endDate != null ">
+			                <![CDATA[ AND a.leave_hospital_date <= #{endDate}]]>
+			            </if>
+			        </if>
+			        <if test="deptName != null and deptName != ''">
+			            AND a.beh_dept_name LIKE CONCAT( '%', #{deptName}, '%' )
+			        </if>
+        		) c
+        		LEFT JOIN med_qcresult_detail d ON d.is_deleted = 'N' AND c.hospital_id = d.hospital_id AND c.behospital_code = d.behospital_code
+        		GROUP BY c.beh_dept_id, c.beh_dept_name
+         	) tt GROUP BY deptId, deptName
+         )t
+        <if test="asc != null and asc !=''">
+            order by
+            <choose>
+                <when test='asc=="deptId"'>deptId asc</when>
+                <when test='asc=="deptName"'>deptName asc</when>
+                <when test='asc=="scbc8xsNum"'>scbc8xsNum asc</when>
+                <when test='asc=="scbc8xsPercent"'>scbc8xsPercent asc</when>
+                <when test='asc=="scbc8xsPercentStr"'>scbc8xsPercentStr asc</when>
+                <when test='asc=="scbc8xsMRNum"'>scbc8xsMRNum asc</when>
+                
+                <when test='asc=="scbc8xsNum"'>scbc8xsNum asc</when>
+               	<when test='asc=="zzsccf48xsMRNum"'>zzsccf48xsMRNum asc</when>
+                <when test='asc=="zzsccf48xsPercent"'>zzsccf48xsPercent asc</when>
+                <when test='asc=="zzsccf48xsPercentStr"'>zzsccf48xsPercentStr asc</when>
+                
+                <when test='asc=="fzzsccf72xsMRNum"'>fzzsccf72xsMRNum asc</when>
+               	<when test='asc=="fzzsccf72xsNum"'>fzzsccf72xsNum asc</when>
+                <when test='asc=="fzzsccf72xsPercent"'>fzzsccf72xsPercent asc</when>
+                <when test='asc=="fzzsccf72xsPercentStr"'>fzzsccf72xsPercentStr asc</when>
+                
+                <when test='asc=="mzf2cMRNum"'>mzf2cMRNum asc</when>
+               	<when test='asc=="mzf2cNum"'>mzf2cNum asc</when>
+                <when test='asc=="mzf2cPercent"'>mzf2cPercent asc</when>
+                <when test='asc=="mzf2cPercentStr"'>mzf2cPercentStr asc</when>
+                
+                <when test='asc=="mzw3cMRNum"'>mzw3cMRNum asc</when>
+               	<when test='asc=="mzw3cNum"'>mzw3cNum asc</when>
+                <when test='asc=="mzw3cPercent"'>mzw3cPercent asc</when>
+                <when test='asc=="mzw3cPercentStr"'>mzw3cPercentStr asc</when>
+                
+                <otherwise>deptName asc</otherwise>
+            </choose>
+        </if>
+        
+        <if test="desc != null and desc!=''">
+            order by
+            <choose>
+                <when test='desc=="deptId"'>deptId desc</when>
+                <when test='desc=="deptName"'>deptName desc</when>
+               <when test='asc=="scbc8xsNum"'>scbc8xsNum desc</when>
+                <when test='asc=="scbc8xsPercent"'>scbc8xsPercent desc</when>
+                <when test='asc=="scbc8xsPercentStr"'>scbc8xsPercentStr desc</when>
+                <when test='asc=="scbc8xsMRNum"'>scbc8xsMRNum desc</when>
+                
+                <when test='asc=="scbc8xsNum"'>scbc8xsNum desc</when>
+               	<when test='asc=="zzsccf48xsMRNum"'>zzsccf48xsMRNum desc</when>
+                <when test='asc=="zzsccf48xsPercent"'>zzsccf48xsPercent desc</when>
+                <when test='asc=="zzsccf48xsPercentStr"'>zzsccf48xsPercentStr desc</when>
+                
+                <when test='asc=="fzzsccf72xsMRNum"'>fzzsccf72xsMRNum desc</when>
+               	<when test='asc=="fzzsccf72xsNum"'>fzzsccf72xsNum desc</when>
+                <when test='asc=="fzzsccf72xsPercent"'>fzzsccf72xsPercent desc</when>
+                <when test='asc=="fzzsccf72xsPercentStr"'>fzzsccf72xsPercentStr desc</when>
+                
+                <when test='asc=="mzf2cMRNum"'>mzf2cMRNum desc</when>
+               	<when test='asc=="mzf2cNum"'>mzf2cNum desc</when>
+                <when test='asc=="mzf2cPercent"'>mzf2cPercent desc</when>
+                <when test='asc=="mzf2cPercentStr"'>mzf2cPercentStr desc</when>
+                
+                <when test='asc=="mzw3cMRNum"'>mzw3cMRNum desc</when>
+               	<when test='asc=="mzw3cNum"'>mzw3cNum desc</when>
+                <when test='asc=="mzw3cPercent"'>mzw3cPercent desc</when>
+                <when test='asc=="mzw3cPercentStr"'>mzw3cPercentStr desc</when>
+                <otherwise>deptName desc</otherwise>
+            </choose>
+        </if>
+    </select>
 
 
 
 
     <!-- 关键条目缺陷统计报表-科室-->
     <!-- 关键条目缺陷统计报表-科室-->