Selaa lähdekoodia

Merge branch 'dev/20211015_2.1.1_湘雅处理' into dev/20211015_2.1.1

# Conflicts:
#	src/main/java/com/diagbot/config/ResourceServerConfigurer.java
#	src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
#	src/main/java/com/diagbot/facade/BasDoctorInfoFacade.java
#	src/main/java/com/diagbot/facade/ConsoleExportFacade.java
#	src/main/java/com/diagbot/facade/ConsoleFacade.java
#	src/main/java/com/diagbot/facade/SysUserFacade.java
#	src/main/java/com/diagbot/mapper/BehospitalInfoMapper.java
#	src/main/java/com/diagbot/service/BehospitalInfoService.java
#	src/main/java/com/diagbot/service/impl/BehospitalInfoServiceImpl.java
#	src/main/java/com/diagbot/web/ConsoleByDeptController.java
#	src/main/java/com/diagbot/web/ConsoleByDeptExportController.java
#	src/main/java/com/diagbot/web/ConsoleController.java
#	src/main/java/com/diagbot/web/ConsoleExportController.java
#	src/main/resources/mapper/BehospitalInfoMapper.xml
chengyao 3 vuotta sitten
vanhempi
commit
35913d85a8
22 muutettua tiedostoa jossa 4700 lisäystä ja 1733 poistoa
  1. 41 0
      doc/036.20211015_2.1.1/qc_initv2.1.1.sql
  2. 16 1
      src/main/java/com/diagbot/config/ResourceServerConfigurer.java
  3. 16 1
      src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
  4. 4 0
      src/main/java/com/diagbot/facade/BasDoctorInfoFacade.java
  5. 121 3
      src/main/java/com/diagbot/facade/ConsoleExportFacade.java
  6. 59 5
      src/main/java/com/diagbot/facade/ConsoleFacade.java
  7. 45 19
      src/main/java/com/diagbot/mapper/BehospitalInfoMapper.java
  8. 10 0
      src/main/java/com/diagbot/mapper/QcresultInfoMapper.java
  9. 9 2
      src/main/java/com/diagbot/service/BehospitalInfoService.java
  10. 21 0
      src/main/java/com/diagbot/service/impl/BehospitalInfoServiceImpl.java
  11. 8 2
      src/main/java/com/diagbot/vo/FilterOrderPageVO.java
  12. 94 0
      src/main/java/com/diagbot/vo/FilterPageXYVO.java
  13. 159 0
      src/main/java/com/diagbot/vo/QcResultPageXYVO.java
  14. 155 0
      src/main/java/com/diagbot/vo/QcResultShortXYPageVO.java
  15. 0 2
      src/main/java/com/diagbot/vo/UserLoginVO.java
  16. 68 0
      src/main/java/com/diagbot/web/ConsoleByDeptController.java
  17. 61 5
      src/main/java/com/diagbot/web/ConsoleByDeptExportController.java
  18. 63 1
      src/main/java/com/diagbot/web/ConsoleController.java
  19. 60 3
      src/main/java/com/diagbot/web/ConsoleExportController.java
  20. 4 4
      src/main/java/com/diagbot/web/SysUserController.java
  21. 3485 1685
      src/main/resources/mapper/BehospitalInfoMapper.xml
  22. 201 0
      src/main/resources/mapper/QcresultInfoMapper.xml

+ 41 - 0
doc/036.20211015_2.1.1/qc_initv2.1.1.sql

@@ -0,0 +1,41 @@
+use `qc`;
+-- 全院
+update sys_menu a set a.order_no = a.order_no+1 where a.parent_id = 17 and a.order_no>0;
+
+
+INSERT INTO `sys_menu` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `parent_id`, `code`, `show_status`, `maintain_status`, `order_no`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医师病案首页合格率占比', '17', 'YH-ZKK-BASYHGLYSZB_XQ', '1', '1', '1', '医师病案首页合格率占比');
+SET @id =@@identity;
+INSERT INTO `sys_role_menu` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `menu_id`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', @id, NULL);
+INSERT INTO `sys_role_menu` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `menu_id`, `remark`) VALUES ( 'N', '2021-11-01 13:48:37', '2021-11-01 13:48:37', '243', '243', '1', @id, NULL);
+
+
+INSERT INTO `sys_permission` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `code`, `permissionUrl`, `method`, `descritpion`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医师病案首页合格率占比报表', '', '/console/homePageLevelStatisticsXY', 'ALL', '医师病案首页合格率占比报表', NULL);
+SET @id2 =@@identity;
+INSERT INTO `sys_role_permission` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `permission_id`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', @id2, NULL);
+INSERT INTO `sys_role_permission` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `permission_id`, `remark`) VALUES ( 'N', '2021-11-01 13:48:37', '2021-11-01 13:48:37', '243', '243', '1', @id2, NULL);
+
+INSERT INTO `sys_menu_permission` (`is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `menu_id`, `permission_id`, `order_nu`, `remark`)
+ VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', @id, @id2, NULL, '医师病案首页合格率占比');
+
+
+-- 科室
+update sys_menu a set a.order_no = a.order_no+1 where a.parent_id = 18 and a.order_no>1;
+
+INSERT INTO `sys_menu` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `parent_id`, `code`, `show_status`, `maintain_status`, `order_no`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医师病案首页合格率占比', '18', 'YH-KSZR-BASYHGLYSZB_XQ', '1', '1', '2', '医师病案首页合格率占比-科室');
+SET @id3 =@@identity;
+INSERT INTO `sys_role_menu` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `menu_id`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', @id3, NULL);
+INSERT INTO `sys_role_menu` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `menu_id`, `remark`) VALUES ( 'N', '2021-10-27 11:39:27', '2021-10-27 11:39:27', '13', '13', '2', @id3, NULL);
+
+
+INSERT INTO `sys_permission` (`is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `code`, `permissionUrl`, `method`, `descritpion`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '医师病案首页合格率占比报表', '', '/consoleByDept/homePageLevelStatisticsXYByDept', 'ALL', '医师病案首页合格率占比报表', NULL);
+SET @id4 =@@identity;
+
+INSERT INTO `sys_role_permission` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `permission_id`, `remark`) VALUES ( 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '-1', @id4, NULL);
+INSERT INTO `sys_role_permission` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `role_id`, `permission_id`, `remark`) VALUES ( 'N', '2021-10-27 11:39:27', '2021-10-27 11:39:27', '13', '13', '2', @id4, NULL);
+
+
+INSERT INTO `sys_menu_permission` ( `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `menu_id`, `permission_id`, `order_nu`, `remark`) VALUES ('N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', @id3, @id4, NULL, '医师病案首页合格率占比科室');
+
+
+
+

+ 16 - 1
src/main/java/com/diagbot/config/ResourceServerConfigurer.java

@@ -86,6 +86,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/console/entryCountGroupByCasePage").permitAll()
                 .antMatchers("/console/entryCountGroupByEntry").permitAll()
                 .antMatchers("/console/entryCountGroupByEntryPage").permitAll()
+                .antMatchers("/console/entryCountGroupXYByEntryPage").permitAll()
                 .antMatchers("/console/entryGroupByEntryInnerPage").permitAll()
                 .antMatchers("/console/getAverageDayNum").permitAll()
                 .antMatchers("/console/getAverageDayNumPage").permitAll()
@@ -97,6 +98,16 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/console/getLevelResultDept").permitAll()
                 .antMatchers("/console/homePageLevelLimit").permitAll()
                 .antMatchers("/console/homePageLevelStatistics").permitAll()
+                .antMatchers("/console/homePageLevelStatisticsXY").permitAll()
+                .antMatchers("/console/export/homePageLevelXYExport").permitAll()
+                .antMatchers("/consoleByDept/homePageLevelStatisticsXYByDept").permitAll()
+                .antMatchers("/print/export/homePageLevelXYExportByDept").permitAll()
+                .antMatchers("/consoleByDept/entryCountGroupXYByEntryPageDept").permitAll()
+                .antMatchers("/print/export/entryCountGroupXYByExportDept").permitAll()
+                .antMatchers("/consoleByDept/qcResultShortXYPageByDept").permitAll()
+                .antMatchers("/print/export/qcResultShortXYPageExportDept").permitAll()
+                .antMatchers("/consoleByDept/badLevelXYPageByDept").permitAll()
+                .antMatchers("/print/export/badLevelPageXYExportByDept").permitAll()
                 .antMatchers("/console/leaveHosCount").permitAll()
                 .antMatchers("/console/medicalRecordIndicator").permitAll()
                 .antMatchers("/console/codingMonthly").permitAll()
@@ -106,6 +117,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/console/mrCount").permitAll()
                 .antMatchers("/console/mrStatistics").permitAll()
                 .antMatchers("/console/qcResultShortPage").permitAll()
+                .antMatchers("/console/qcResultShortXYPage").permitAll()
                 .antMatchers("/console/resultStatistics").permitAll()
                 .antMatchers("/console/resultStatisticsByDeptPage").permitAll()
                 .antMatchers("/console/homePageMRCount").permitAll()
@@ -138,9 +150,11 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/console/export/getAverageFeeExport").permitAll()
                 .antMatchers("/console/export/levelPercentGroupByDeptExport").permitAll()
                 .antMatchers("/console/export/entryCountGroupByEntryExport").permitAll()
+                .antMatchers("/console/export/entryCountGroupXYByEntryExport").permitAll()
                 .antMatchers("/console/export/entryCountGroupByCaseExport").permitAll()
                 .antMatchers("/console/export/entryStatisticsExport").permitAll()
                 .antMatchers("/console/export/qcResultShortPageExport").permitAll()
+                .antMatchers("/console/export/qcResultShortXYPageExport").permitAll()
                 .antMatchers("/console/export/leaveHosMrPageExport").permitAll()
                 .antMatchers("/console/export/qcCheckStatisticsExport").permitAll()
                 .antMatchers("/console/export/unModifyMRPageExport").permitAll()
@@ -204,13 +218,14 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/console/export/medicalCheckExport").permitAll()
                 .antMatchers("/console/export/medicalCheckInnerExport").permitAll()
                 .antMatchers("/console/badLevelPage").permitAll()
+                .antMatchers("/console/badLevelXYPage").permitAll()
                 .antMatchers("/console/export/badLevelPagePageExport").permitAll()
+                .antMatchers("/console/export/badLevelPageXYExport").permitAll()
                 .antMatchers("/qc/medNurse/getMedNursePage").permitAll()
                 .antMatchers("/qc/behospitalInfo/exportQcresultByPerson").permitAll()
                 .antMatchers("/consoleByDept/beHosCountByDept").permitAll()
                 .antMatchers("/consoleByDept/casesEntryStatisticsByDept").permitAll()
                 .antMatchers("/bas/doctor/getList").permitAll()
-                .antMatchers("/bas/doctor/getDoctorProfessorList").permitAll()
                 .antMatchers("/consoleByDept/homePageOrGoodLevelByDept").permitAll()
                 .antMatchers("/print/export/homePageLevelExportByDept").permitAll()
                 .antMatchers("/print/export/homePageOrLevelExportByDept").permitAll()

+ 16 - 1
src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java

@@ -130,6 +130,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/console/entryCountGroupByCasePage", request)
                 || matchers("/console/entryCountGroupByEntry", request)
                 || matchers("/console/entryCountGroupByEntryPage", request)
+                || matchers("/console/entryCountGroupXYByEntryPage", request)
                 || matchers("/console/entryGroupByEntryInnerPage", request)
                 || matchers("/console/getAverageDayNum", request)
                 || matchers("/console/getAverageDayNumPage", request)
@@ -141,6 +142,16 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/console/getLevelResultDept", request)
                 || matchers("/console/homePageLevelLimit", request)
                 || matchers("/console/homePageLevelStatistics", request)
+                || matchers("/console/homePageLevelStatisticsXY", request)
+                || matchers("/console/export/homePageLevelXYExport", request)
+                || matchers("/consoleByDept/homePageLevelStatisticsXYByDept", request)
+                || matchers("/print/export/homePageLevelXYExportByDept", request)
+                || matchers("/consoleByDept/entryCountGroupXYByEntryPageDept", request)
+                || matchers("/print/export/entryCountGroupXYByExportDept", request)
+                || matchers("/consoleByDept/qcResultShortXYPageByDept", request)
+                || matchers("/print/export/qcResultShortXYPageExportDept", request)
+                || matchers("/consoleByDept/badLevelXYPageByDept", request)
+                || matchers("/print/export/badLevelPageXYExportByDept", request)
                 || matchers("/console/leaveHosCount", request)
                 || matchers("/console/levelPercentGroupByDeptPage", request)
                 || matchers("/console/levelStatistics", request)
@@ -150,6 +161,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/console/medicalRecordIndicator", request)
                 || matchers("/console/codingMonthly", request)
                 || matchers("/console/qcResultShortPage", request)
+                || matchers("/console/qcResultShortXYPage", request)
                 || matchers("/console/resultStatistics", request)
                 || matchers("/console/resultStatisticsByDeptPage", request)
                 || matchers("/console/homePageMRCount", request)
@@ -182,9 +194,11 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/console/export/getAverageFeeExport", request)
                 || matchers("/console/export/levelPercentGroupByDeptExport", request)
                 || matchers("/console/export/entryCountGroupByEntryExport", request)
+                || matchers("/console/export/entryCountGroupXYByEntryExport", request)
                 || matchers("/console/export/entryCountGroupByCaseExport", request)
                 || matchers("/console/export/entryStatisticsExport", request)
                 || matchers("/console/export/qcResultShortPageExport", request)
+                || matchers("/console/export/qcResultShortXYPageExport", request)
                 || matchers("/console/export/leaveHosMrPageExport", request)
                 || matchers("/console/export/qcCheckStatisticsExport", request)
                 || matchers("/console/export/unModifyMRPageExport", request)
@@ -248,13 +262,14 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/console/export/medicalCheckExport", request)
                 || matchers("/console/export/medicalCheckInnerExport", request)
                 || matchers("/console/badLevelPage", request)
+                || matchers("/console/badLevelXYPage", request)
                 || matchers("/console/export/badLevelPagePageExport", request)
+                || matchers("/console/export/badLevelPageXYExport", request)
                 || matchers("/qc/medNurse/getMedNursePage", request)
                 || matchers("/qc/behospitalInfo/exportQcresultByPerson", request)
                 || matchers("/consoleByDept/beHosCountByDept", request)
                 || matchers("/consoleByDept/casesEntryStatisticsByDept", request)
                 || matchers("/bas/doctor/getList", request)
-                || matchers("/bas/doctor/getDoctorProfessorList", request)
                 || matchers("/consoleByDept/homePageOrGoodLevelByDept", request)
                 || matchers("/print/export/homePageLevelExportByDept", request)
                 || matchers("/print/export/homePageOrLevelExportByDept", request)

+ 4 - 0
src/main/java/com/diagbot/facade/BasDoctorInfoFacade.java

@@ -15,6 +15,7 @@ import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 /**
  * @Description:
@@ -28,8 +29,11 @@ public class BasDoctorInfoFacade extends BasDoctorInfoServiceImpl {
     @Autowired
     BasDeptInfoFacade basDeptInfoFacade;
     @Autowired
+    BasDoctorInfoFacade basDoctorInfoFacade;
+    @Autowired
     BehospitalInfoFacade behospitalInfoFacade;
 
+
     /**
      * 获取医院医生下拉列表信息
      *

+ 121 - 3
src/main/java/com/diagbot/facade/ConsoleExportFacade.java

@@ -1,7 +1,6 @@
 package com.diagbot.facade;
 
 import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.OrderItem;
@@ -13,8 +12,6 @@ import com.diagbot.util.*;
 import com.diagbot.vo.*;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.google.common.collect.Lists;
-import com.google.gson.JsonObject;
-import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -50,6 +47,20 @@ public class ConsoleExportFacade {
         ExcelUtils.exportExcel(res, null, "sheet1", HomePageNumDTO.class, fileName, response, 12.8f);
     }
 
+    /**
+     * 病案首页合格率占比-湘雅
+     *
+     * @param filterOrderXYPageVO
+     * @return
+     */
+    public void homePageLevelXYExport(HttpServletResponse response, FilterOrderXYPageVO filterOrderXYPageVO) {
+        filterOrderXYPageVO.setCurrent(1L);
+        filterOrderXYPageVO.setSize(Long.MAX_VALUE);
+        filterOrderXYPageVO.setSearchCount(false);
+        IPage<HomePageNumXYDTO> res = consoleFacade.homePageLevelStatisticsXY(filterOrderXYPageVO);
+        String fileName = "病案首页合格率占比.xls";
+        ExcelUtils.exportExcel(res.getRecords(), null, "sheet1", HomePageNumXYDTO.class, fileName, response, 12.8f);
+    }
 
     /**
      * 条目缺陷占比(内页)
@@ -185,6 +196,22 @@ public class ConsoleExportFacade {
         ExcelUtils.exportExcel(page.getRecords(), null, "sheet1", EntryNumGroupDTO.class, fileName, response, 12.8f);
     }
 
+    /**
+     * 缺陷详情导出-湘雅
+     *
+     * @param filterPageVO
+     * @return
+     */
+    public void entryCountGroupXYByEntryExport(HttpServletResponse response, FilterPageXYVO filterPageVO) {
+        filterPageVO.setCurrent(1L);
+        filterPageVO.setSize(Long.MAX_VALUE);
+        filterPageVO.setSearchCount(false);
+        IPage<EntryNumGroupDTO> page = consoleFacade.entryCountGroupXYByEntryPage(filterPageVO);
+        String fileName = "缺陷详情.xls";
+        ExcelUtils.exportExcel(page.getRecords(), null, "sheet1", EntryNumGroupDTO.class, fileName, response, 12.8f);
+    }
+
+
 
     /**
      * 各模块缺陷占比导出
@@ -245,6 +272,38 @@ public class ConsoleExportFacade {
         ExcelUtils.exportExcelUser(record, null, "sheet1", ExportExcelDTO.class, fileName, response);
     }
 
+    /**
+     * 缺陷详情质控评分页导出-湘雅
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    public void qcResultShortXYPageExport(HttpServletResponse response, QcResultShortXYPageVO qcResultShortPageVO) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        qcResultShortPageVO.setHospitalId(hospitalId);
+        if (StringUtil.isNotBlank(qcResultShortPageVO.getDeptName())
+                && qcResultShortPageVO.getDeptName().equals("全部")) {
+            qcResultShortPageVO.setDeptName("");
+        }
+        Date startDate = qcResultShortPageVO.getStartDate();
+        Date endDate = qcResultShortPageVO.getEndDate();
+        //时间间隔90天
+        long interval = 90 * 24l * 60l * 60l * 1000l;
+        if (endDate.getTime() < startDate.getTime()) {
+            throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
+        }
+        if (endDate.getTime() - startDate.getTime() > interval) {
+            throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于90天");
+        }
+
+        qcResultShortPageVO.setCurrent(1L);
+        qcResultShortPageVO.setSize(Long.MAX_VALUE);
+        qcResultShortPageVO.setSearchCount(false);
+        List<ExportExcelDTO> record = behospitalInfoFacade.getBaseMapper().qcResultShortXYPageExport(qcResultShortPageVO);
+        String fileName = "缺陷详情质控评分页.xls";
+        ExcelUtils.exportExcelUser(record, null, "sheet1", ExportExcelDTO.class, fileName, response);
+    }
+
     /**
      * 出院人数统计导出
      *
@@ -428,6 +487,65 @@ public class ConsoleExportFacade {
         }
    }
 
+    /**
+     * 病案首页不合格/合格数-XY
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    public void badLevelPageXYExport(HttpServletResponse response, QcResultShortXYPageVO qcResultShortPageVO) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        qcResultShortPageVO.setHospitalId(hospitalId);
+        if (StringUtil.isNotBlank(qcResultShortPageVO.getDeptName())
+                && qcResultShortPageVO.getDeptName().equals("全部")) {
+            qcResultShortPageVO.setDeptName("");
+        }
+        Date startDate = qcResultShortPageVO.getStartDate();
+        Date endDate = qcResultShortPageVO.getEndDate();
+        //时间间隔7天
+        long interval_7 = 7 * 24 * 60 * 60 * 1000;
+        long interval_90 = 90 * 24 * 60 * 60 * 1000l;
+
+        if("1".equals(qcResultShortPageVO.getRadioCheck())){
+            //时间间隔7天
+            if (endDate.getTime() < startDate.getTime()) {
+                throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
+            }
+            if (endDate.getTime() - startDate.getTime() > interval_7) {
+                throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于7天");
+            }
+        }else{
+            //时间间隔90天
+            if (endDate.getTime() < startDate.getTime()) {
+                throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
+            }
+            if (endDate.getTime() - startDate.getTime() > interval_90) {
+                throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于90天");
+            }
+        }
+
+        qcResultShortPageVO.setCurrent(1L);
+        qcResultShortPageVO.setSize(Long.MAX_VALUE);
+        qcResultShortPageVO.setSearchCount(false);
+        List<ExportExcelDTO> records = behospitalInfoFacade.getBaseMapper().badLevelPageXYExport(qcResultShortPageVO);
+        List<ExportWideExcelDTO> resWide = new ArrayList<ExportWideExcelDTO>();
+        if("2".equals(qcResultShortPageVO.getRadioCheck())){
+            resWide = transList(records, resWide);
+        }
+        String fileName = null;
+        if("不合格数".equals(qcResultShortPageVO.getTitleName())){
+            fileName = "病案首页不合格数病历详情页.xls";
+        }else{
+            fileName = "病案首页合格数病历详情页.xls";
+        }
+        if("1".equals(qcResultShortPageVO.getRadioCheck())){
+            ExcelUtils.exportExcelUser(records, null, "sheet1", ExportExcelDTO.class, fileName, response);
+        }
+        if("2".equals(qcResultShortPageVO.getRadioCheck())){
+            ExcelUtils.exportExcelUser(resWide, null, "sheet1", ExportWideExcelDTO.class, fileName, response);
+        }
+    }
+
     /**
      * 未整改病历统计导出
      *

+ 59 - 5
src/main/java/com/diagbot/facade/ConsoleFacade.java

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.diagbot.aggregate.AverageStatisticsAggregate;
-import com.diagbot.aggregate.LeaveHosStatisticsAggregate;
 import com.diagbot.aggregate.MrStatisticsAggregate;
 import com.diagbot.aggregate.ResultStatisticsAggregate;
 import com.diagbot.dto.*;
@@ -22,8 +21,6 @@ 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;
@@ -42,8 +39,6 @@ import java.util.*;
 import java.util.concurrent.*;
 import java.util.stream.Collectors;
 
-import static io.netty.util.internal.SystemPropertyUtil.contains;
-
 /**
  * @Description:
  * @Author:zhaops
@@ -1413,6 +1408,22 @@ public class ConsoleFacade {
         return page;
     }
 
+
+    /**
+     * 缺陷详情(分页)-湘雅
+     *
+     * @param filterPageVO
+     * @return
+     */
+    public IPage<EntryNumGroupDTO> entryCountGroupXYByEntryPage(FilterPageXYVO filterPageVO) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        String userId = SysUserUtils.getCurrentPrincipleID();
+        filterPageVO.setHospitalId(hospitalId);
+        filterPageVO.setUserId(Long.valueOf(userId));
+        IPage<EntryNumGroupDTO> page = qcresultInfoFacade.getBaseMapper().entryCountGroupXYByEntryPage(filterPageVO);
+        return page;
+    }
+
     /**
      * 按科室统计平均住院天数(分页)
      *
@@ -2161,6 +2172,20 @@ public class ConsoleFacade {
         return records;
     }
 
+    /**
+     * 医师病案首页合格率占比 湘雅定制
+     *
+     * @param filterOrderXYPageVO
+     * @return
+     */
+    public IPage<HomePageNumXYDTO> homePageLevelStatisticsXY(FilterOrderXYPageVO filterOrderXYPageVO) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        String userId = SysUserUtils.getCurrentPrincipleID();
+        filterOrderXYPageVO.setHospitalId(hospitalId);
+        filterOrderXYPageVO.setUserId(Long.valueOf(userId));
+        IPage<HomePageNumXYDTO> records = behospitalInfoFacade.homePageLevelStatisticsXY(filterOrderXYPageVO);
+        return records;
+    }
 
     /**
      * 病历质控报表
@@ -2430,6 +2455,21 @@ public class ConsoleFacade {
         return page;
     }
 
+    /**
+     * 条目缺陷质控评分页(内页)-湘雅
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    public IPage<QcResultShortDTO> qcResultShortXYPage(QcResultShortXYPageVO qcResultShortPageVO) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        String userId = SysUserUtils.getCurrentPrincipleID();
+        qcResultShortPageVO.setHospitalId(hospitalId);
+        qcResultShortPageVO.setUserId(Long.valueOf(userId));
+        IPage<QcResultShortDTO> page = behospitalInfoFacade.getBaseMapper().qcResultShortXYPage(qcResultShortPageVO);
+        return page;
+    }
+
     /**
      * 关键条目缺陷占比统计
      *
@@ -2995,6 +3035,20 @@ public class ConsoleFacade {
         return behospitalInfoFacade.badLevelPage(qcResultPageVO);
     }
 
+    /**
+     * 不合格/合格数病历号(内页)-湘雅
+     *
+     * @param qcResultPageVO
+     * @return
+     */
+    public IPage<QcResultShortDTO> badLevelXYPage(QcResultPageXYVO qcResultPageVO) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        String userId = SysUserUtils.getCurrentPrincipleID();
+        qcResultPageVO.setHospitalId(hospitalId);
+        qcResultPageVO.setUserId(Long.valueOf(userId));
+        return behospitalInfoFacade.getBaseMapper().badLevelXYPage(qcResultPageVO);
+    }
+
     /**
      * 31天再入院详情页
      *

+ 45 - 19
src/main/java/com/diagbot/mapper/BehospitalInfoMapper.java

@@ -4,25 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.*;
 import com.diagbot.entity.BehospitalInfo;
-import com.diagbot.vo.AnalyzeCodeVO;
-import com.diagbot.vo.AnalyzeVO;
-import com.diagbot.vo.BehospitalPageVO;
-import com.diagbot.vo.CaseScoreVO;
-import com.diagbot.vo.EntryStatisticsVO;
-import com.diagbot.vo.ExportQcresultVO;
-import com.diagbot.vo.FilterMedicalCheckVO;
-import com.diagbot.vo.FilterOrderByDeptVO;
-import com.diagbot.vo.FilterOrderPageVO;
-import com.diagbot.vo.FilterOrderVO;
-import com.diagbot.vo.FilterPageByDeptVO;
-import com.diagbot.vo.FilterPageVO;
-import com.diagbot.vo.FilterUnModifyMRVO;
-import com.diagbot.vo.FilterVO;
-import com.diagbot.vo.MedIndexFilterVO;
-import com.diagbot.vo.QcResultPageVO;
-import com.diagbot.vo.QcResultShortPageVO;
-import com.diagbot.vo.ReBeHosPageVO;
-import com.diagbot.vo.TaskVO;
+import com.diagbot.vo.*;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
@@ -165,6 +147,14 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      */
     public List<HomePageNumDTO> homePageLevelStatistics(FilterOrderVO filterOrderVO);
 
+    /**
+     * 医师病案首页合格率占比 湘雅定制
+     *
+     * @param filterOrderXYPageVO
+     * @return
+     */
+    public IPage<HomePageNumXYDTO> homePageLevelStatisticsXY(FilterOrderXYPageVO filterOrderXYPageVO);
+
     /**
      * 病历质控报表--扣分项
      *
@@ -314,6 +304,15 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      */
     public IPage<QcResultShortDTO> qcResultShortPage(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
 
+
+    /**
+     * 条目缺陷质控评分页(内页)-湘雅
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    public IPage<QcResultShortDTO> qcResultShortXYPage(@Param("qcResultShortPageVO") QcResultShortXYPageVO qcResultShortPageVO);
+
     /**
      * 条目缺陷质控评分页-科室(内页)
      *
@@ -452,6 +451,14 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      */
     public List<ExportExcelDTO> qcResultShortPageExport(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
 
+    /**
+     * 条目缺陷质控评分详情页导出到excel-湘雅
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    public List<ExportExcelDTO> qcResultShortXYPageExport(@Param("qcResultShortPageVO") QcResultShortXYPageVO qcResultShortPageVO);
+
     /**
      * 未整改病历统计
      *
@@ -537,6 +544,15 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      */
     public IPage<QcResultShortDTO> badLevelPage(@Param("qcResultPageVO") QcResultPageVO qcResultPageVO);
 
+    /**
+     * 不合格/合格数病历号(内页)XY
+     *
+     * @param qcResultPageVO
+     * @return
+     */
+    public IPage<QcResultShortDTO> badLevelXYPage(@Param("qcResultPageVO") QcResultPageXYVO qcResultPageVO);
+
+
 
     /**
      * 未整改病历缺陷评分详情页导出
@@ -566,6 +582,16 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
 
     public List<ExportExcelDTO> badLevelPagePageExport(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
 
+
+    /**
+     * 病案首页不合格/合格数病历详情页导出-XY
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+
+    public List<ExportExcelDTO> badLevelPageXYExport(@Param("qcResultShortPageVO") QcResultShortXYPageVO qcResultShortPageVO);
+
     /**
      * 病案首页不合格/合格数病历详情页导出-科室
      *

+ 10 - 0
src/main/java/com/diagbot/mapper/QcresultInfoMapper.java

@@ -12,6 +12,7 @@ import com.diagbot.dto.QcResultPercentDTO;
 import com.diagbot.entity.QcresultInfo;
 import com.diagbot.vo.FilterPageByDeptVO;
 import com.diagbot.vo.FilterPageVO;
+import com.diagbot.vo.FilterPageXYVO;
 import com.diagbot.vo.FilterVO;
 import com.diagbot.vo.QcresultFilterVO;
 import org.apache.ibatis.annotations.Param;
@@ -120,6 +121,15 @@ public interface QcresultInfoMapper extends BaseMapper<QcresultInfo> {
      */
     public IPage<EntryNumGroupDTO> entryCountGroupByEntryPage(@Param("filterPageVO") FilterPageVO filterPageVO);
 
+
+    /**
+     * 缺陷详情(分页)-湘雅
+     *
+     * @param filterPageVO
+     * @return
+     */
+    public IPage<EntryNumGroupDTO> entryCountGroupXYByEntryPage(@Param("filterPageVO") FilterPageXYVO filterPageVO);
+
     /**
      * 各科室质控平均分(分页)
      *

+ 9 - 2
src/main/java/com/diagbot/service/BehospitalInfoService.java

@@ -4,11 +4,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.dto.*;
 import com.diagbot.entity.BehospitalInfo;
-import com.diagbot.entity.FilterRecordVO;
 import com.diagbot.vo.*;
 import org.apache.ibatis.annotations.Param;
 
-import java.time.LocalDateTime;
 import java.util.List;
 import java.util.Map;
 
@@ -184,6 +182,15 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
      */
     public List<HomePageNumDTO> homePageLevelStatistics(FilterOrderVO filterOrderVO);
 
+    /**
+     * 医师病案首页合格率占比 湘雅定制
+     *
+     * @param filterOrderXYPageVO
+     * @return
+     */
+    public IPage<HomePageNumXYDTO> homePageLevelStatisticsXY(FilterOrderXYPageVO filterOrderXYPageVO);
+
+
 
     /**
      * 病历质控报表-扣分项

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

@@ -217,6 +217,16 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
         return baseMapper.homePageLevelStatistics(filterOrderVO);
     }
 
+    /**
+     * 医师病案首页合格率占比 湘雅定制
+     *
+     * @param filterOrderXYPageVO
+     * @return
+     */
+    @Override
+    public IPage<HomePageNumXYDTO> homePageLevelStatisticsXY(FilterOrderXYPageVO filterOrderXYPageVO) {
+        return baseMapper.homePageLevelStatisticsXY(filterOrderXYPageVO);
+    }
 
     /**
      * 病历质控报表-扣分项
@@ -578,6 +588,17 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
         return baseMapper.qcResultShortPageExport(qcResultShortPageVO);
     }
 
+    /**
+     * 条目缺陷质控评分详情页导出到excel-湘雅
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+
+    public List<ExportExcelDTO> qcResultShortXYPageExport(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO) {
+        return baseMapper.qcResultShortPageExport(qcResultShortPageVO);
+    }
+
     /**
      * 缺陷详情质控评分页导出-科室
      *

+ 8 - 2
src/main/java/com/diagbot/vo/FilterOrderPageVO.java

@@ -14,7 +14,7 @@ import javax.validation.constraints.NotBlank;
  */
 @Getter
 @Setter
-public class FilterOrderPageVO extends Page {
+public class FilterOrderXYPageVO extends Page {
     /**
      * 医院id
      */
@@ -30,6 +30,12 @@ public class FilterOrderPageVO extends Page {
      */
     private String deptName;
 
+    /**
+     * 科室id
+     */
+    private String deptId;
+
+
     /**
      * 医生名称
      */
@@ -41,7 +47,7 @@ public class FilterOrderPageVO extends Page {
     private String doctorId;
 
     /**
-     * 医生职称
+     * 医师类型-取自病案首页医师字段含义
      */
     private String professor;
     /**

+ 94 - 0
src/main/java/com/diagbot/vo/FilterPageXYVO.java

@@ -0,0 +1,94 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/5/14 14:57
+ */
+@Getter
+@Setter
+public class FilterPageXYVO extends Page {
+    /**
+     * 统计维度 1-本月,2-本年
+     */
+    private Integer type;
+    /**
+     * 起始时间
+     */
+    @NotBlank(message = "请输入起始时间")
+    private String startDate;
+    /**
+     * 结束时间
+     */
+    @NotBlank(message = "请输入结束时间")
+    private String endDate;
+    /**
+     * 医院id
+     */
+    @ApiModelProperty(hidden = true)
+    private String hospitalId;
+    /**
+     * 用户id
+     */
+    @ApiModelProperty(hidden = true)
+    private Long userId;
+
+    /**
+     * 缺陷名称
+     */
+    private String name;
+
+    /**
+     * 科室名称
+     */
+    private String deptName;
+
+    /**
+     * 科室id
+     */
+    private String deptId;
+
+
+
+    /**
+     * 医生姓名
+     */
+    private String doctorName;
+
+    /**
+     * 医师类别
+     */
+    private String professor;
+    /**
+     * 模块id:243=病案首页
+     */
+    private Long casesId;
+
+    /**
+     * 模块名称
+     */
+    private String casesName;
+
+    /**
+     * 单项否决
+     */
+    private Integer isReject;
+
+    /**
+     * 规则类型(0:无,1:空项,2:错误)
+     */
+    private Integer ruleType;
+
+    /**
+     * 是否归档(0:未归档,1:已归档)
+     */
+    private String isPlacefile = "1";
+
+}

+ 159 - 0
src/main/java/com/diagbot/vo/QcResultPageXYVO.java

@@ -0,0 +1,159 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/6/16 17:00
+ */
+@Getter
+@Setter
+public class QcResultPageXYVO extends Page {
+    @ApiModelProperty(hidden = true)
+    private Long userId;
+    @ApiModelProperty(hidden = true)
+    private String hospitalId;
+    /**
+     * 病历号
+     */
+    private String behospitalCode;
+    /**
+     * 病人姓名
+     */
+    private String patName;
+
+    /**
+     * title名称
+     */
+    private String titleName;
+
+    /**
+     * 条目名称
+     */
+    private String casesEntryName;
+
+    /**
+     * 主诊断
+     */
+    private String diagnose;
+
+    /**
+     * 条目id
+     */
+    private Long casesEntryId;
+    /**
+     * 模块名称
+     */
+    private String casesName;
+    /**
+     * 模块id
+     */
+    private Long casesId;
+    /**
+     * 科室名称
+     */
+    private String deptName;
+    /**
+     * 科室id
+     */
+    private String deptClass;
+
+    /**
+     * 科室id
+     */
+    private String deptId;
+
+    /**
+     * 医生姓名
+     */
+    private String doctorName;
+
+    /**
+     * 医师类别
+     */
+    private String professor;
+    /**
+     * 医生编号
+     */
+    private String doctorId;
+    /**
+     * 病历等级
+     */
+    private String level;
+    @NotNull(message = "请输入起始时间")
+    @DateTimeFormat(pattern = "yyyy-MM-dd  HH:mm:ss")
+    private String startDate;
+    @DateTimeFormat(pattern = "yyyy-MM-dd  HH:mm:ss")
+    @NotNull(message = "请输入截止时间")
+    private String endDate;
+
+    /**
+     * 单项否决
+     */
+    private Integer isReject;
+
+    /**
+     * 规则类型(0:无,1:空项,2:错误)
+     */
+    private Integer ruleType;
+
+    /**
+     * 离院人员类型(0/null:总人数,1:死亡人数,2:新生儿,3:手术病人数,4:非医嘱离院病人,5:31日再入院病人)
+     */
+    private Integer leaveHosType;
+
+    /**
+     * 核查状态(1:已核查,0:未核查)
+     */
+    private Integer checkStatus;
+    /**
+     * 首页核查状态(1:已核查,0:未核查)
+     */
+    private Integer mrStatus;
+    /**
+     * 病历核查人员
+     */
+    private String chName;
+    /**
+     * 首页核查人员
+     */
+    private String mrName;
+    /**
+     * 病历核查起始时间
+     */
+    private Date chTimeStart;
+    /**
+     * 病历核查截止时间
+     */
+    private Date chTimeEnd;
+    /**
+     * 首页核查起始时间
+     */
+    private Date mrTimeStart;
+    /**
+     * 首页核查截止时间
+     */
+    private Date mrTimeEnd;
+    /**
+     * 是否归档(0:未归档,1:已归档)
+     */
+    private String isPlacefile = "1";
+
+    /**
+     * 住院超过31日标志
+     */
+    private Integer beHosGT31Days;
+
+    /**
+     * 改善标志(1:病案首页改善病历,2:病案首页改善至合格病历,3:病案首页改善至满分病历)
+     */
+    private Integer improveType;
+}

+ 155 - 0
src/main/java/com/diagbot/vo/QcResultShortXYPageVO.java

@@ -0,0 +1,155 @@
+package com.diagbot.vo;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotNull;
+import java.util.Date;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/6/16 17:00
+ */
+@Getter
+@Setter
+public class QcResultShortXYPageVO extends Page {
+    @ApiModelProperty(hidden = true)
+    private Long userId;
+    @ApiModelProperty(hidden = true)
+    private String hospitalId;
+    /**
+     * 病历号
+     */
+    private String behospitalCode;
+    /**
+     * 病人姓名
+     */
+    private String patName;
+    /**
+     * 条目名称
+     */
+    private String casesEntryName;
+    /**
+     * (1-导出7天[含缺陷明细项]  2-导出90天[不含缺陷明细项] )
+     */
+    @NotNull(message = "导出天数选择不能为空")
+    private String radioCheck = "1";
+
+    /**
+     * 主诊断
+     */
+    private String diagnose;
+
+    /**
+     * title名称
+     */
+    private String titleName;
+
+    /**
+     * 条目id
+     */
+    private Long casesEntryId;
+    /**
+     * 模块名称
+     */
+    private String casesName;
+    /**
+     * 模块id
+     */
+    private Long casesId;
+    /**
+     * 科室名称
+     */
+    private String deptName;
+
+    /**
+     * 科室ID
+     */
+    private String deptId;
+    /**
+     * 医生姓名
+     */
+    private String doctorName;
+
+    /**
+     * 医师类别
+     */
+    private String professor;
+    /**
+     * 医生编号
+     */
+    private String doctorId;
+    /**
+     * 病历等级
+     */
+    private String level;
+    @NotNull(message = "请输入起始时间")
+    private Date startDate;
+    @NotNull(message = "请输入截止时间")
+    private Date endDate;
+
+    /**
+     * 单项否决
+     */
+    private Integer isReject;
+
+    /**
+     * 规则类型(0:无,1:空项,2:错误)
+     */
+    private Integer ruleType;
+
+    /**
+     * 离院人员类型(0/null:总人数,1:死亡人数,2:新生儿,3:手术病人数,4:非医嘱离院病人,5:31日再入院病人)
+     */
+    private Integer leaveHosType;
+
+    /**
+     * 核查状态(1:已核查,0:未核查)
+     */
+    private Integer checkStatus;
+    /**
+     * 首页核查状态(1:已核查,0:未核查)
+     */
+    private Integer mrStatus;
+    /**
+     * 病历核查人员
+     */
+    private String chName;
+    /**
+     * 首页核查人员
+     */
+    private String mrName;
+    /**
+     * 病历核查起始时间
+     */
+    private Date chTimeStart;
+    /**
+     * 病历核查截止时间
+     */
+    private Date chTimeEnd;
+    /**
+     * 首页核查起始时间
+     */
+    private Date mrTimeStart;
+    /**
+     * 首页核查截止时间
+     */
+    private Date mrTimeEnd;
+    /**
+     * 是否归档(0:未归档,1:已归档)
+     */
+    private String isPlacefile = "1";
+
+    /**
+     * 住院超过31日标志
+     */
+    private Integer beHosGT31Days;
+
+    /**
+     * 改善标志(1:病案首页改善病历,2:病案首页改善至合格病历,3:病案首页改善至满分病历)
+     */
+    private Integer improveType;
+}

+ 0 - 2
src/main/java/com/diagbot/vo/UserLoginVO.java

@@ -18,6 +18,4 @@ public class UserLoginVO {
     private String username;
     @NotBlank(message = "请输入密码!")
     private String password;
-   //验证码
-    private String captcha;
 }

+ 68 - 0
src/main/java/com/diagbot/web/ConsoleByDeptController.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.*;
 import com.diagbot.facade.ConsoleByDeptFacade;
+import com.diagbot.facade.ConsoleFacade;
 import com.diagbot.vo.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -30,6 +31,8 @@ import java.util.Map;
 public class ConsoleByDeptController {
     @Autowired
     private ConsoleByDeptFacade consoleByDeptFacade;
+    @Autowired
+    private ConsoleFacade consoleFacade;
 
     //region --------------------------首页接口开始------------------------------
     @ApiOperation(value = "出院病人统计(科室)-首页[by:zhaops]",
@@ -231,6 +234,71 @@ public class ConsoleByDeptController {
         return RespDTO.onSuc(consoleByDeptFacade.homePageLevelStatisticsByDept(filterOrderByDeptVO));
     }
 
+    /**
+     * 医师病案首页合格率占比科室 湘雅定制
+     *
+     * @param filterOrderXYPageVO
+     * @return
+     */
+    @ApiOperation(value = "病案首页合格率占比[by:zhaops]",
+            notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
+                    "level: 病历等级 <br>" +
+                    "deptName: 科室名称 <br>" +
+                    "asc: 排序(升序) <br>" +
+                    "desc: 排序(降序) <br>" +
+                    "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
+    @PostMapping("/homePageLevelStatisticsXYByDept")
+    @SysLogger("homePageLevelStatisticsXYByDept")
+    public RespDTO<IPage<HomePageNumXYDTO>> homePageLevelStatisticsXY(@RequestBody @Valid FilterOrderXYPageVO filterOrderXYPageVO) {
+        return RespDTO.onSuc(consoleFacade.homePageLevelStatisticsXY(filterOrderXYPageVO));
+    }
+
+    /**
+     * 条目缺陷占比科室(分页)-湘雅
+     *
+     * @param filterPageXYVO
+     * @return
+     */
+    @ApiOperation(value = "缺陷详情(分页)[by:zhaops]",
+            notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
+                    "deptName: 科室名称 <br>" +
+                    "casesId: 模块id:243=病案首页 <br>" +
+                    "casesName: 模块名称 <br>" +
+                    "isReject: 单项否决 1-否决,0-非<br>" +
+                    "ruleType: 规则类型 0:无,1:空项,2:错误<br>" +
+                    "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
+    @PostMapping("/entryCountGroupXYByEntryPageDept")
+    @SysLogger("entryCountGroupXYByEntryPageDept")
+    public RespDTO<IPage<EntryNumGroupDTO>> entryCountGroupXYByEntryPageDept(@RequestBody @Valid FilterPageXYVO filterPageXYVO) {
+        return RespDTO.onSuc(consoleFacade.entryCountGroupXYByEntryPage(filterPageXYVO));
+    }
+
+    /**
+     * 条目缺陷质控评科室分页(内页)-湘雅
+     *
+     * @param qcResultShortXYPageVO
+     * @return
+     */
+    @ApiOperation(value = "条目缺陷质控评分页(内页)[by:zhaops]")
+    @PostMapping("/qcResultShortXYPageByDept")
+    @SysLogger("qcResultShortXYPageByDept")
+    public RespDTO<IPage<QcResultShortDTO>> qcResultShortXYPageByDept(@RequestBody @Valid QcResultShortXYPageVO qcResultShortXYPageVO) {
+        return RespDTO.onSuc(consoleFacade.qcResultShortXYPage(qcResultShortXYPageVO));
+    }
+
+    /**
+     * 病案首页不合格数病历科室详情(内页)-湘雅
+     * @param qcResultPageVO
+     * @return
+     */
+    @ApiOperation(value = "病案首页不合格/合格数病历详情(内页)[by:cy]")
+    @PostMapping("/badLevelXYPageByDept")
+    @SysLogger("badLevelXYPageByDept")
+    public RespDTO<IPage<QcResultShortDTO>> badLevelXYPageByDept(@RequestBody @Valid QcResultPageXYVO qcResultPageVO) {
+        return RespDTO.onSuc(consoleFacade.badLevelXYPage(qcResultPageVO));
+    }
+
+
     /**
      * 病案首页合格/不合格数
      *

+ 61 - 5
src/main/java/com/diagbot/web/ConsoleByDeptExportController.java

@@ -1,11 +1,8 @@
 package com.diagbot.web;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
-import com.diagbot.dto.DeptEntryNumDTO;
-import com.diagbot.dto.EntryStasByDeptDTO;
-import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.ConsoleByDeptExportFacade;
+import com.diagbot.facade.ConsoleExportFacade;
 import com.diagbot.vo.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -17,7 +14,6 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
-import java.util.List;
 
 /**
  * @Description:
@@ -33,6 +29,8 @@ public class ConsoleByDeptExportController {
 
     @Autowired
     private ConsoleByDeptExportFacade consoleByDeptExportFacade;
+    @Autowired
+    private ConsoleExportFacade consoleExportFacade;
 
 /**
      * 病案首页合格率占比科室-导出
@@ -55,6 +53,64 @@ public class ConsoleByDeptExportController {
         consoleByDeptExportFacade.homePageLevelExportByDept(response, filterOrderByDeptVO);
     }
 
+    /**
+     * 病案首页合格率占比导出-湘雅-科室
+     *
+     * @param filterOrderXYPageVO
+     * @return
+     */
+    @ApiOperation(value = "病案首页合格率占比导出[by:gaodm]",
+            notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
+                    "level: 病历等级 <br>" +
+                    "name: 科室名称 <br>" +
+                    "asc: 排序(升序) <br>" +
+                    "desc: 排序(降序) <br>" +
+                    "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
+    @PostMapping("/homePageLevelXYExportByDept")
+    @SysLogger("homePageLevelXYExportByDept")
+    public void homePageLevelXYExport(HttpServletResponse response, @RequestBody @Valid FilterOrderXYPageVO filterOrderXYPageVO) {
+        consoleExportFacade.homePageLevelXYExport(response, filterOrderXYPageVO);
+    }
+
+    /**
+     * 条目缺陷占比科室导出-湘雅
+     *
+     * @param filterPageVO
+     * @return
+     */
+    @ApiOperation(value = "缺陷详情导出[by:gaodm]")
+    @PostMapping("/entryCountGroupXYByExportDept")
+    @SysLogger("entryCountGroupXYByExportDept")
+    public void entryCountGroupXYByExportDept(HttpServletResponse response, @RequestBody @Valid FilterPageXYVO filterPageVO) {
+        consoleExportFacade.entryCountGroupXYByEntryExport(response, filterPageVO);
+    }
+
+    /**
+     * 缺陷详情质控评分页科室导出-湘雅
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    @ApiOperation(value = "缺陷详情质控评分页导出[by:zhaops]")
+    @PostMapping("/qcResultShortXYPageExportDept")
+    @SysLogger("qcResultShortXYPageExportDept")
+    public void qcResultShortXYPageExportDept(HttpServletResponse response, @RequestBody @Valid QcResultShortXYPageVO qcResultShortPageVO) {
+        consoleExportFacade.qcResultShortXYPageExport(response, qcResultShortPageVO);
+    }
+
+    /**
+     * 病案首页不合格/合格数病历详情页科室导出-XY
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    @ApiOperation(value = "病案首页不合格/合格数病历详情页导出[by:cy]")
+    @PostMapping("/badLevelPageXYExportByDept")
+    @SysLogger("badLevelPageXYExportByDept")
+    public void badLevelPageXYExportByDept(HttpServletResponse response, @RequestBody @Valid QcResultShortXYPageVO qcResultShortPageVO) {
+        consoleExportFacade.badLevelPageXYExport(response, qcResultShortPageVO);
+    }
+
     /**
      * 病案首页不合格/合格数病历详情页导出-科室
      *

+ 63 - 1
src/main/java/com/diagbot/web/ConsoleController.java

@@ -3,7 +3,6 @@ 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;
@@ -323,6 +322,26 @@ public class ConsoleController {
         return RespDTO.onSuc(consoleFacade.entryCountGroupByEntryPage(filterPageVO));
     }
 
+    /**
+     * 条目缺陷占比(分页)-湘雅
+     *
+     * @param filterPageXYVO
+     * @return
+     */
+    @ApiOperation(value = "缺陷详情(分页)[by:zhaops]",
+            notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
+                    "deptName: 科室名称 <br>" +
+                    "casesId: 模块id:243=病案首页 <br>" +
+                    "casesName: 模块名称 <br>" +
+                    "isReject: 单项否决 1-否决,0-非<br>" +
+                    "ruleType: 规则类型 0:无,1:空项,2:错误<br>" +
+                    "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
+    @PostMapping("/entryCountGroupXYByEntryPage")
+    @SysLogger("entryCountGroupXYByEntryPage")
+    public RespDTO<IPage<EntryNumGroupDTO>> entryCountGroupXYByEntryPage(@RequestBody @Valid FilterPageXYVO filterPageXYVO) {
+        return RespDTO.onSuc(consoleFacade.entryCountGroupXYByEntryPage(filterPageXYVO));
+    }
+
     /**
      * 按科室统计平均住院天数(分页)
      *
@@ -474,6 +493,24 @@ public class ConsoleController {
         return RespDTO.onSuc(consoleFacade.homePageLevelStatistics(filterOrderVO));
     }
 
+    /**
+     * 医师病案首页合格率占比 湘雅定制
+     *
+     * @param filterOrderXYPageVO
+     * @return
+     */
+    @ApiOperation(value = "病案首页合格率占比[by:zhaops]",
+            notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
+                    "level: 病历等级 <br>" +
+                    "deptName: 科室名称 <br>" +
+                    "asc: 排序(升序) <br>" +
+                    "desc: 排序(降序) <br>" +
+                    "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
+    @PostMapping("/homePageLevelStatisticsXY")
+    @SysLogger("homePageLevelStatisticsXY")
+    public RespDTO<IPage<HomePageNumXYDTO>> homePageLevelStatisticsXY(@RequestBody @Valid FilterOrderXYPageVO filterOrderXYPageVO) {
+        return RespDTO.onSuc(consoleFacade.homePageLevelStatisticsXY(filterOrderXYPageVO));
+    }
 
     /**
      * 病历质控报表
@@ -526,6 +563,18 @@ public class ConsoleController {
         return RespDTO.onSuc(consoleFacade.badLevelPage(qcResultPageVO));
     }
 
+    /**
+     * 病案首页不合格数病历详情(内页)-湘雅
+     * @param qcResultPageVO
+     * @return
+     */
+    @ApiOperation(value = "病案首页不合格/合格数病历详情(内页)[by:cy]")
+    @PostMapping("/badLevelXYPage")
+    @SysLogger("badLevelXYPage")
+    public RespDTO<IPage<QcResultShortDTO>> badLevelXYPage(@RequestBody @Valid QcResultPageXYVO qcResultPageVO) {
+        return RespDTO.onSuc(consoleFacade.badLevelXYPage(qcResultPageVO));
+    }
+
 
     /**
      * 病案首页合格率占比(首页)
@@ -583,6 +632,19 @@ public class ConsoleController {
         return RespDTO.onSuc(consoleFacade.qcResultShortPage(qcResultShortPageVO));
     }
 
+    /**
+     * 条目缺陷质控评分页(内页)-湘雅
+     *
+     * @param qcResultShortXYPageVO
+     * @return
+     */
+    @ApiOperation(value = "条目缺陷质控评分页(内页)[by:zhaops]")
+    @PostMapping("/qcResultShortXYPage")
+    @SysLogger("qcResultShortXYPage")
+    public RespDTO<IPage<QcResultShortDTO>> qcResultShortXYPage(@RequestBody @Valid QcResultShortXYPageVO qcResultShortXYPageVO) {
+        return RespDTO.onSuc(consoleFacade.qcResultShortXYPage(qcResultShortXYPageVO));
+    }
+
     /**
      * 关键条目缺陷占比统计
      *

+ 60 - 3
src/main/java/com/diagbot/web/ConsoleExportController.java

@@ -1,9 +1,6 @@
 package com.diagbot.web;
 
-import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
-import com.diagbot.dto.QcResultShortDTO;
-import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.ConsoleExportFacade;
 import com.diagbot.vo.*;
 import io.swagger.annotations.Api;
@@ -50,6 +47,26 @@ public class ConsoleExportController {
         consoleExportFacade.homePageLevelExport(response, filterOrderVO);
     }
 
+    /**
+     * 病案首页合格率占比导出-湘雅
+     *
+     * @param filterOrderXYPageVO
+     * @return
+     */
+    @ApiOperation(value = "病案首页合格率占比导出[by:gaodm]",
+            notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
+                    "level: 病历等级 <br>" +
+                    "name: 科室名称 <br>" +
+                    "asc: 排序(升序) <br>" +
+                    "desc: 排序(降序) <br>" +
+                    "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
+    @PostMapping("/homePageLevelXYExport")
+    @SysLogger("homePageLevelXYExport")
+    public void homePageLevelXYExport(HttpServletResponse response, @RequestBody @Valid FilterOrderXYPageVO filterOrderXYPageVO) {
+        consoleExportFacade.homePageLevelXYExport(response, filterOrderXYPageVO);
+    }
+
+
     /**
      * 条目缺陷占比(内页)
      *
@@ -186,6 +203,19 @@ public class ConsoleExportController {
         consoleExportFacade.entryCountGroupByEntryExport(response, filterPageVO);
     }
 
+    /**
+     * 条目缺陷占比导出-湘雅
+     *
+     * @param filterPageVO
+     * @return
+     */
+    @ApiOperation(value = "缺陷详情导出[by:gaodm]")
+    @PostMapping("/entryCountGroupXYByEntryExport")
+    @SysLogger("entryCountGroupXYByEntryExport")
+    public void entryCountGroupXYByEntryExport(HttpServletResponse response, @RequestBody @Valid FilterPageXYVO filterPageVO) {
+        consoleExportFacade.entryCountGroupXYByEntryExport(response, filterPageVO);
+    }
+
     /**
      * 各模块缺陷占比导出
      *
@@ -257,6 +287,19 @@ public class ConsoleExportController {
         consoleExportFacade.qcResultShortPageExport(response, qcResultShortPageVO);
     }
 
+    /**
+     * 缺陷详情质控评分页导出-湘雅
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    @ApiOperation(value = "缺陷详情质控评分页导出[by:zhaops]")
+    @PostMapping("/qcResultShortXYPageExport")
+    @SysLogger("qcResultShortXYPageExport")
+    public void qcResultShortXYPageExport(HttpServletResponse response, @RequestBody @Valid QcResultShortXYPageVO qcResultShortPageVO) {
+        consoleExportFacade.qcResultShortXYPageExport(response, qcResultShortPageVO);
+    }
+
     /**
      * 出院人数统计导出
      *
@@ -368,6 +411,20 @@ public class ConsoleExportController {
     }
 
 
+    /**
+     * 病案首页不合格/合格数病历详情页导出-XY
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    @ApiOperation(value = "病案首页不合格/合格数病历详情页导出[by:cy]")
+    @PostMapping("/badLevelPageXYExport")
+    @SysLogger("badLevelPageXYExport")
+    public void badLevelPageXYExport(HttpServletResponse response, @RequestBody @Valid QcResultShortXYPageVO qcResultShortPageVO) {
+        consoleExportFacade.badLevelPageXYExport(response, qcResultShortPageVO);
+    }
+
+
     /**
      * 稽查病历详情页导出
      *

+ 4 - 4
src/main/java/com/diagbot/web/SysUserController.java

@@ -69,17 +69,17 @@ public class SysUserController {
                     "password:密码, 必填, 默认密码:a123456<br> ")
     @PostMapping("/getJwt")
     @SysLogger("getJwt")
-    public RespDTO<JwtDTO> getJwt(HttpServletRequest request,@RequestBody UserLoginVO userLoginVO) {
-        JwtDTO data = userFacade.getJwt(request,userLoginVO.getUsername(), userLoginVO.getPassword(),userLoginVO.getCaptcha());
+    public RespDTO<JwtDTO> getJwt(@RequestBody UserLoginVO userLoginVO) {
+        JwtDTO data = userFacade.getJwt(userLoginVO.getUsername(), userLoginVO.getPassword());
         return RespDTO.onSuc(data);
     }
 
-    @ApiOperation(value = "获取验证码[by:cy]")
+/*    @ApiOperation(value = "获取验证码[by:cy]")
     @GetMapping("/getCaptcha")
     @SysLogger("getCaptcha")
     public void getCaptcha(HttpServletRequest request, HttpServletResponse response) throws IOException {
            userFacade.getCaptcha(request, response);
-    }
+    }*/
 
     @ApiOperation(value = "获取标识--选择登录页面[by:cy]")
     @PostMapping("/getHospitalMark")

Tiedoston diff-näkymää rajattu, sillä se on liian suuri
+ 3485 - 1685
src/main/resources/mapper/BehospitalInfoMapper.xml


+ 201 - 0
src/main/resources/mapper/QcresultInfoMapper.xml

@@ -1770,6 +1770,207 @@
         )t
     </select>
 
+    <!-- 缺陷详情(分页)湘雅 -->
+    <select id="entryCountGroupXYByEntryPage"  resultType="com.diagbot.dto.EntryNumGroupDTO">
+        SELECT
+        t.*
+        FROM
+        (
+        SELECT
+        t1.id,
+        t1.NAME,
+        t1.casesId,
+        t1.casesName,
+        t1.ruleType,
+        t1.isReject,
+        t1.num,
+        t2.totleNum,
+        ROUND( t1.num / t2.totleNum, 4 ) AS percent,
+        CONCAT( ROUND( t1.num / t2.totleNum * 100, 2 ), '%' ) AS percentStr
+        FROM
+        (
+        SELECT
+        tt2.id AS id,
+        tt2.NAME AS NAME,
+        tt2.cases_id AS casesId,
+        tt2.cases_name AS casesName,
+        tt1.num,
+        tt2.rule_type AS ruleType,
+        tt1.is_reject AS isReject
+        FROM
+        (
+        SELECT
+        d.cases_id,
+        d.cases_entry_id,
+        d.is_reject,
+        count(*) AS num
+        FROM
+        med_behospital_info a,
+        med_home_page b,
+        med_qcresult_detail d
+        WHERE
+        a.is_deleted = 'N'
+        AND d.is_deleted = 'N'
+        AND b.is_deleted = 'N'
+        AND a.hospital_id = b.hospital_id
+        AND a.hospital_id = d.hospital_id
+        AND a.behospital_code = b.behospital_code
+        AND a.behospital_code = d.behospital_code
+        <if test="filterPageVO.isPlacefile != null and filterPageVO.isPlacefile != ''">
+            and a.is_placefile = #{filterPageVO.isPlacefile}
+        </if>
+        AND a.qc_type_id != 0
+        <if test="filterPageVO.hospitalId != null and filterPageVO.hospitalId != ''">
+            AND a.hospital_id = #{filterPageVO.hospitalId}
+        </if>
+        <if test="filterPageVO.isPlacefile != null and filterPageVO.isPlacefile == 0">
+            <if test="filterPageVO.startDate != null and filterPageVO.startDate != ''">
+                <![CDATA[ AND a.behospital_date >= #{filterPageVO.startDate}]]>
+            </if>
+            <if test="filterPageVO.endDate != null and filterPageVO.endDate != ''">
+                <![CDATA[ AND a.behospital_date <= #{filterPageVO.endDate}]]>
+            </if>
+        </if>
+        <if test="filterPageVO.isPlacefile != null and filterPageVO.isPlacefile == 1">
+            <if test="filterPageVO.startDate != null and filterPageVO.startDate != ''">
+                <![CDATA[ AND a.leave_hospital_date >= #{filterPageVO.startDate}]]>
+            </if>
+            <if test="filterPageVO.endDate != null and filterPageVO.endDate != ''">
+                <![CDATA[ AND a.leave_hospital_date <= #{filterPageVO.endDate}]]>
+            </if>
+        </if>
+        <if test="filterPageVO.deptName != null and filterPageVO.deptName != ''">
+            AND a.beh_dept_name = #{filterPageVO.deptName}
+        </if>
+        <if test="filterPageVO.deptId != null and filterPageVO.deptId != ''">
+            AND a.beh_dept_id = #{filterPageVO.deptId}
+        </if>
+        <if test="filterPageVO.doctorName != null and filterPageVO.doctorName != ''">
+            AND(case
+            when b.attending_doctor != '' and b.attending_doctor is not null then b.attending_doctor
+            when (b.attending_doctor = '' or b.attending_doctor is null) and
+            b.director_doctor != '' and b.director_doctor is not null
+            then b.director_doctor
+            when (b.attending_doctor = '' or b.attending_doctor is null) and
+            (b.director_doctor = '' or b.director_doctor is null) and
+            b.behospital_doctor != '' and b.behospital_doctor is not null
+            then b.behospital_doctor end ) = #{filterPageVO.doctorName}
+        </if>
+        <if test="filterPageVO.professor != null and filterPageVO.professor != ''">
+            AND(case
+            when b.attending_doctor != '' and b.attending_doctor is not null then '主治医师'
+            when (b.attending_doctor = '' or b.attending_doctor is null) and
+            b.director_doctor != '' and b.director_doctor is not null
+            then '主任医师'
+            when (b.attending_doctor = '' or b.attending_doctor is null) and
+            (b.director_doctor = '' or b.director_doctor is null) and
+            b.behospital_doctor != '' and b.behospital_doctor is not null
+            then '住院医师' end) = #{filterPageVO.professor}
+        </if>
+        <if test="filterPageVO.casesId != null and filterPageVO.casesId != 0">
+            AND d.cases_id = #{filterPageVO.casesId}
+        </if>
+        <if test="filterPageVO.isReject != null">
+            AND d.is_reject = #{filterPageVO.isReject}
+        </if>
+        GROUP BY
+        d.cases_entry_id,
+        d.cases_id
+        ) tt1,
+        qc_cases_entry tt2
+        WHERE
+        tt2.is_deleted = 'N'
+        AND tt1.cases_id = tt2.cases_id
+        AND tt1.cases_entry_id = tt2.id
+        <if test="filterPageVO.casesName != null and filterPageVO.casesName != ''">
+            AND tt2.cases_name like CONCAT('%', #{filterPageVO.casesName},'%')
+        </if>
+        <if test="filterPageVO.name != null and filterPageVO.name != ''">
+            AND tt2.name like CONCAT('%', #{filterPageVO.name},'%')
+        </if>
+        <if test="filterPageVO.ruleType != null">
+            AND tt2.rule_type = #{filterPageVO.ruleType}
+        </if>
+        ) t1,(
+        SELECT
+        count(*) AS totleNum
+        FROM
+        med_behospital_info a,
+        med_home_page b,
+        med_qcresult_detail d,
+        qc_cases_entry e
+        WHERE
+        a.is_deleted = 'N'
+        AND b.is_deleted = 'N'
+        AND d.is_deleted = 'N'
+        AND e.is_deleted = 'N'
+        AND a.hospital_id = b.hospital_id
+        AND a.hospital_id = d.hospital_id
+        AND a.behospital_code = b.behospital_code
+        AND a.behospital_code = d.behospital_code
+        <if test="filterPageVO.isPlacefile != null and filterPageVO.isPlacefile != ''">
+            and a.is_placefile = #{filterPageVO.isPlacefile}
+        </if>
+        AND e.cases_id = d.cases_id
+        AND e.id = d.cases_entry_id
+        AND a.qc_type_id != 0
+        <if test="filterPageVO.hospitalId != null and filterPageVO.hospitalId != ''">
+            AND a.hospital_id = #{filterPageVO.hospitalId}
+        </if>
+        <if test="filterPageVO.isPlacefile != null and filterPageVO.isPlacefile == 0">
+            <if test="filterPageVO.startDate != null and filterPageVO.startDate != ''">
+                <![CDATA[ AND a.behospital_date >= #{filterPageVO.startDate}]]>
+            </if>
+            <if test="filterPageVO.endDate != null and filterPageVO.endDate != ''">
+                <![CDATA[ AND a.behospital_date <= #{filterPageVO.endDate}]]>
+            </if>
+        </if>
+        <if test="filterPageVO.isPlacefile != null and filterPageVO.isPlacefile == 1">
+            <if test="filterPageVO.startDate != null and filterPageVO.startDate != ''">
+                <![CDATA[ AND a.leave_hospital_date >= #{filterPageVO.startDate}]]>
+            </if>
+            <if test="filterPageVO.endDate != null and filterPageVO.endDate != ''">
+                <![CDATA[ AND a.leave_hospital_date <= #{filterPageVO.endDate}]]>
+            </if>
+        </if>
+        <if test="filterPageVO.doctorName != null and filterPageVO.doctorName != ''">
+            AND(case
+            when b.attending_doctor != '' and b.attending_doctor is not null then b.attending_doctor
+            when (b.attending_doctor = '' or b.attending_doctor is null) and
+            b.director_doctor != '' and b.director_doctor is not null
+            then b.director_doctor
+            when (b.attending_doctor = '' or b.attending_doctor is null) and
+            (b.director_doctor = '' or b.director_doctor is null) and
+            b.behospital_doctor != '' and b.behospital_doctor is not null
+            then b.behospital_doctor end ) = #{filterPageVO.doctorName}
+        </if>
+        <if test="filterPageVO.professor != null and filterPageVO.professor != ''">
+            AND(case
+            when b.attending_doctor != '' and b.attending_doctor is not null then '主治医师'
+            when (b.attending_doctor = '' or b.attending_doctor is null) and
+            b.director_doctor != '' and b.director_doctor is not null
+            then '主任医师'
+            when (b.attending_doctor = '' or b.attending_doctor is null) and
+            (b.director_doctor = '' or b.director_doctor is null) and
+            b.behospital_doctor != '' and b.behospital_doctor is not null
+            then '住院医师' end) = #{filterPageVO.professor}
+        </if>
+        <if test="filterPageVO.deptName != null and filterPageVO.deptName != ''">
+            AND a.beh_dept_name  =  #{filterPageVO.deptName}
+        </if>
+        <if test="filterPageVO.deptId != null and filterPageVO.deptId != ''">
+            AND a.beh_dept_id = #{filterPageVO.deptId}
+        </if>
+        <if test="filterPageVO.isReject != null">
+            AND d.is_reject = #{filterPageVO.isReject}
+        </if>
+        <if test="filterPageVO.ruleType != null">
+            AND e.rule_type = #{filterPageVO.ruleType}
+        </if>
+        ) t2
+        )t
+    </select>
+
     <!-- 质控平均分按科室统计(分页) -->
     <select id="getAverageScoreByDeptPage"  resultType="com.diagbot.dto.AverageStatisticsDTO">
         SELECT t.*