Bläddra i källkod

Merge remote-tracking branch 'origin/dev/20201224_2.0.0' into dev/20201224_2.0.0

liuqq 4 år sedan
förälder
incheckning
2fe9c29000
24 ändrade filer med 2525 tillägg och 376 borttagningar
  1. 6 0
      src/main/java/com/diagbot/config/ResourceServerConfigurer.java
  2. 6 0
      src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
  3. 4 3
      src/main/java/com/diagbot/dto/DeptEntryNumDTO.java
  4. 177 0
      src/main/java/com/diagbot/dto/EntryStasByDeptDTO.java
  5. 1 1
      src/main/java/com/diagbot/dto/ExportExcelBehospitalDTO.java
  6. 1 1
      src/main/java/com/diagbot/dto/ExportExcelByDeptDTO.java
  7. 1 1
      src/main/java/com/diagbot/dto/ExportExcelWideBehospitalDTO.java
  8. 1 1
      src/main/java/com/diagbot/dto/ExportWideExcelByDeptDTO.java
  9. 289 0
      src/main/java/com/diagbot/dto/LevelStsByDeptDTO.java
  10. 2 2
      src/main/java/com/diagbot/facade/BehospitalInfoFacade.java
  11. 279 3
      src/main/java/com/diagbot/facade/ConsoleByDeptExportFacade.java
  12. 24 8
      src/main/java/com/diagbot/facade/ConsoleByDeptFacade.java
  13. 7 7
      src/main/java/com/diagbot/facade/ConsoleExportFacade.java
  14. 20 2
      src/main/java/com/diagbot/mapper/BehospitalInfoMapper.java
  15. 1 1
      src/main/java/com/diagbot/mapper/QcresultInfoMapper.java
  16. 21 3
      src/main/java/com/diagbot/service/BehospitalInfoService.java
  17. 1 1
      src/main/java/com/diagbot/service/QcresultInfoService.java
  18. 25 3
      src/main/java/com/diagbot/service/impl/BehospitalInfoServiceImpl.java
  19. 1 1
      src/main/java/com/diagbot/service/impl/QcresultInfoServiceImpl.java
  20. 5 0
      src/main/java/com/diagbot/vo/EntryStatisticsVO.java
  21. 25 5
      src/main/java/com/diagbot/web/ConsoleByDeptController.java
  22. 99 65
      src/main/java/com/diagbot/web/ConsoleByDeptExportController.java
  23. 1528 267
      src/main/resources/mapper/BehospitalInfoMapper.xml
  24. 1 1
      src/main/resources/mapper/QcresultInfoMapper.xml

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

@@ -209,6 +209,12 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/print/export/homePageLevelExportByDept").permitAll()
                 .antMatchers("/print/export/homePageOrLevelExportByDept").permitAll()
                 .antMatchers("/print/export/entryGroupExportByDeptPage").permitAll()
+                .antMatchers("/print/export/entryGroupExportByDeptCase").permitAll()
+                .antMatchers("/print/export/entryGroupByEntryDeptPage").permitAll()
+                .antMatchers("/print/export/qcResultShortByDeptPageExport").permitAll()
+                .antMatchers("/print/export/levelByDeptExport").permitAll()
+                .antMatchers("/consoleByDept/entryStatisticsByDept").permitAll()
+                .antMatchers("/print/export/entryStatisticsByDeptExport").permitAll()
                 .antMatchers("/**").authenticated();
         //                .antMatchers("/**").permitAll();
     }

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

@@ -253,6 +253,12 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/print/export/homePageLevelExportByDept", request)
                 || matchers("/print/export/homePageOrLevelExportByDept", request)
                 || matchers("/print/export/entryGroupExportByDeptPage", request)
+                || matchers("/print/export/entryGroupExportByDeptCase", request)
+                || matchers("/print/export/entryGroupByEntryDeptPage", request)
+                || matchers("/print/export/qcResultShortByDeptPageExport", request)
+                || matchers("/print/export/levelByDeptExport", request)
+                || matchers("/consoleByDept/entryStatisticsByDept", request)
+                || matchers("/print/export/entryStatisticsByDeptExport", request)
                 || matchers("/", request)) {
             return true;
         }

+ 4 - 3
src/main/java/com/diagbot/dto/DeptEntryNumDTO.java

@@ -51,21 +51,22 @@ public class DeptEntryNumDTO {
     /**
      * 条目缺陷占比
      */
-    @Excel(name = "缺陷占比", orderNum = "6")
+
     private Double percent = 0.00d;
     /**
      * 条目缺陷占比(百分比)
      */
+    @Excel(name = "缺陷占比", orderNum = "6")
     private String percentStr = "0.00%";
     /**
      * 条目缺陷分值
      */
-//    @Excel(name = "分值", orderNum = "3")
+    @Excel(name = "分值", orderNum = "3")
     private Double score = 0d;
     /**
      * 单项否决标识
      */
-//    @Excel(name = "单项否决", orderNum = "4", replace = { "否_0", "是_1" })
+    @Excel(name = "单项否决", orderNum = "4", replace = { "否_0", "是_1" })
     private Integer isReject;
     /**
      * 规则类型(0:无,1:空项,2:错误)

+ 177 - 0
src/main/java/com/diagbot/dto/EntryStasByDeptDTO.java

@@ -0,0 +1,177 @@
+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 EntryStasByDeptDTO {
+    /**
+     * 科室id(科室编码)
+     */
+    private String deptId;
+    /**
+     * 主治医生
+     */
+    @Excel(name = "主治医生", width = 30, orderNum = "1")
+    private String doctorName;
+    /**
+     * 未在24小时内完成会诊数
+     */
+    @Excel(name = "未在24小时内完成会诊数", width = 15, orderNum = "2")
+    private Integer consultationNum = 0;
+    /**
+     * 未在24小时内完成会诊条目id
+     */
+    private Long consultationEntryId = 2511L;
+    /**
+     * 未在24小时内完成会诊条目名称
+     */
+    private String consultationEntryName = "普通会诊未在24小时内完成";
+    /**
+     * 未在24小时内完成会诊率
+     */
+    private Double consultationPercent = 0.00d;
+    /**
+     * 未在24小时内完成会诊率(百分比)
+     */
+    @Excel(name = "未在24小时内完成会诊率", width = 15, orderNum = "3")
+    private String consultationPercentStr = "0.00%";
+    /**
+     * 会诊病历数
+     */
+    private Integer consultationMRNum = 0;
+    /**
+     * 手术记录名称不匹配条目id
+     */
+    private Long operationNameEntryId = 2594L;
+    /**
+     * 手术记录名称不匹配条目名称
+     */
+    private String operationNameEntryName = "首页手术名称与手术记录不一致";
+    /**
+     * 手术记录名称不匹配数
+     */
+    @Excel(name = "手术记录名称不匹配数", width = 15, orderNum = "4")
+    private Integer operationNameNum = 0;
+    /**
+     * 手术记录名称不匹配率
+     */
+    private Double operationNamePercent = 0.00d;
+    /**
+     * 手术记录名称不匹配率(百分比)
+     */
+    @Excel(name = "手术记录名称不匹配率", width = 15, orderNum = "5")
+    private String operationNamePercentStr = "0.00%";
+    /**
+     * 术后首程未在15分钟内完成条目id
+     */
+    private Long operation15MinuteEntryId = 2930L;
+    /**
+     * 术后首程未在15分钟内完成条目名称
+     */
+    private String operation15MinuteEntryName = "术后首次病程未即刻完成";
+    /**
+     * 术后首程未在15分钟内完成数
+     */
+    @Excel(name = "术后首程未在15分钟内完成数", width = 15, orderNum = "6")
+    private Integer operation15MinuteNum = 0;
+    /**
+     * 术后首程未在15分钟内完成率
+     */
+    private Double operation15MinutePercent = 0.00d;
+    /**
+     * 术后首程未在15分钟内完成率(百分比)
+     */
+    @Excel(name = "术后首程未在15分钟内完成率", width = 15, orderNum = "7")
+    private String operation15MinutePercentStr = "0.00%";
+    /**
+     * 病案首页手术时间不匹配条目id
+     */
+    private Long operationTimeEntryId = 2973L;
+    /**
+     * 病案首页手术时间不匹配条目名称
+     */
+    private String operationTimeEntryName = "手术日期与手术记录中手术日期不一致";
+    /**
+     * 病案首页手术时间不匹配数
+     */
+    @Excel(name = "病案首页手术时间不匹配数", width = 15, orderNum = "8")
+    private Integer operationTimeNum = 0;
+    /**
+     * 病案首页手术时间不匹配率
+     */
+    private Double operationTimePercent = 0.00;
+    /**
+     * 病案首页手术时间不匹配率(百分比)
+     */
+    @Excel(name = "病案首页手术时间不匹配率", width = 15, orderNum = "9")
+    private String operationTimePercentStr = "0.00%";
+    /**
+     * 手术记录病历数
+     */
+    private Integer operationMRNum = 0;
+    /**
+     * 未在6小时内书写危急值条目id
+     */
+    private Long crisisEntryId = 2419L;
+    /**
+     * 未在6小时内书写危急值条目名称
+     */
+    private String crisisEntryName = "危急值记录未在接到危急值报告后6小时内完成";
+    /**
+     * 未在6小时内书写危急值记录数
+     */
+    @Excel(name = "未在6小时内书写危急值记录数", width = 15, orderNum = "10")
+    private Integer crisisNum = 0;
+    /**
+     * 未在6小时内书写危急值记录率
+     */
+    private Double crisisPercent = 0.00d;
+    /**
+     * 未在6小时内书写危急值记录率(百分比)
+     */
+    @Excel(name = "未在6小时内书写危急值记录率", width = 15, orderNum = "11")
+    private String crisisPercentStr = "0.00%";
+    /**
+     * 危急值记录病历数
+     */
+    private Integer crisisMRNum = 0;
+    /**
+     * 住院超过31日病人数
+     */
+    @Excel(name = "住院超过31日病人数", width = 15, orderNum = "12")
+    private Integer beHosGT31DaysMRNum;
+    /**
+     * 阶段小节未书写条目id
+     */
+    private Long stageSummaryEntryId = 2495L;
+    /**
+     * 阶段小节未书写条目名称
+     */
+    private String stageSummaryEntryName = "无阶段小结";
+    /**
+     * 阶段小节未书写数
+     */
+    @Excel(name = "阶段小节未书写数", width = 15, orderNum = "13")
+    private Integer stageSummaryNum = 0;
+    /**
+     * 阶段小节未书写率
+     */
+    private Double stageSummaryPercent = 0.00d;
+    /**
+     * 阶段小节未书写率(百分比)
+     */
+    @Excel(name = "阶段小节未书写率", width = 15, orderNum = "14")
+    private String stageSummaryPercentStr = "0.00%";
+    /**
+     * 病人住院超过30天的病历数
+     */
+    private Integer stageSummaryMRNum = 0;
+}

+ 1 - 1
src/main/java/com/diagbot/dto/ExportExcelBehospitalDTO.java

@@ -17,7 +17,7 @@ import java.util.List;
 @Setter
 public class ExportExcelBehospitalDTO {
     @Excel(name = "主管医生", needMerge = true)
-    private String behDoctorName;
+    private String doctorName;
     @Excel(name = "患者姓名", needMerge = true)
     private String patName;
     @Excel(name = "住院号", needMerge = true)

+ 1 - 1
src/main/java/com/diagbot/dto/ExportExcelByDeptDTO.java

@@ -18,7 +18,7 @@ public class ExportExcelByDeptDTO {
 //    @Excel(name = "科室", needMerge = true)
     private String behDeptName;
     @Excel(name = "主管医生", needMerge = true)
-    private String behDoctorName;
+    private String doctorName;
     @Excel(name = "平均分数", needMerge = true)
     private Double avgScore;
     @ExcelCollection(name = "")

+ 1 - 1
src/main/java/com/diagbot/dto/ExportExcelWideBehospitalDTO.java

@@ -13,7 +13,7 @@ import java.util.Date;
 @Setter
 public class ExportExcelWideBehospitalDTO {
     @Excel(name = "主管医生", needMerge = true)
-    private String behDoctorName;
+    private String doctorName;
     @Excel(name = "患者姓名", needMerge = true)
     private String patName;
     @Excel(name = "住院号", needMerge = true)

+ 1 - 1
src/main/java/com/diagbot/dto/ExportWideExcelByDeptDTO.java

@@ -18,7 +18,7 @@ public class ExportWideExcelByDeptDTO {
 //    @Excel(name = "科室", needMerge = true)
     private String behDeptName;
     @Excel(name = "主管医生", needMerge = true)
-    private String behDoctorName;
+    private String doctorName;
     @Excel(name = "平均分数", needMerge = true)
     private Double avgScore;
     @ExcelCollection(name = "" )

+ 289 - 0
src/main/java/com/diagbot/dto/LevelStsByDeptDTO.java

@@ -0,0 +1,289 @@
+package com.diagbot.dto;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:各科室缺陷占比返回结构
+ * @Author:zhaops
+ * @time: 2020/5/19 16:04
+ */
+@Getter
+@Setter
+public class LevelStsByDeptDTO {
+    /**
+     * 科室id(科室编码)
+     */
+//    @Excel(name = "科室编码", orderNum = "0")
+    private String deptId;
+    /**
+     * 科室名称
+     */
+
+    private String deptName;
+    /**
+     * 主管医生id
+     */
+    private String doctorId;
+    /**
+     * 主管医生名称
+     */
+    @Excel(name = "主管医生", width = 30, orderNum = "2")
+    private String doctorName;
+    /**
+     * 缺陷条目数
+     */
+    private Integer entryNum = 0;
+
+    /**
+     * 缺陷条目数-带升降标示
+     */
+    @Excel(name = "缺陷总数", orderNum = "3")
+    private String entryStrNum = "0";
+
+    /**
+     * 同比总数
+     */
+    private Integer sameNum = 0;
+
+    /**
+     * 同比总数-带升降标示
+     */
+    @Excel(name = "同比总数", orderNum = "4")
+    private String sameStrNum = "0";
+
+    /**
+     * 缺陷条目数现有数据与同期数据对比(-1-降 0-持平 1-升)
+     */
+    private Integer entrySameNum = 0;
+
+    /**
+     * 质控病历数
+     */
+    private Integer mrNum = 0;
+
+    /**
+     * 质控病历数-带升降标示
+     */
+    @Excel(name = "质控病历数", orderNum = "7")
+    private String mrStrNum = "0";
+
+    /**
+     * 同比病历数
+     */
+    private Integer sameMrNum= 0;
+
+    /**
+     * 同比病历数-带升降标示
+     */
+    @Excel(name = "同比质控数", orderNum = "8")
+    private String sameMrStrNum = "0";
+
+    /**
+     * 质控病历数现有数据与同期数据对比(-1-降 0-持平 1-升)
+     */
+    private Integer mrSameNum = 0;
+
+    /**
+     * 质控评分(总分)
+     */
+    private Double totleValue = 0d;
+
+    /**
+     * 同比质控评分(总分)
+     */
+    private Double sameTotleValue= 0d;
+
+
+    /**
+     * 质控评分(平均分)
+     */
+    private Double averageValue = 0d;
+
+    /**
+     * 质控评分(平均分)-带升降标示
+     */
+    @Excel(name = "质控平均分", orderNum = "5")
+    private String averageStrValue = "0";
+
+    /**
+     * 同比评分(平均分)
+     */
+    private Double sameAvgValue = 0d;
+
+    /**
+     * 同比评分(平均分)-带升降标示
+     */
+    @Excel(name = "同比平均分", orderNum = "6")
+    private String sameAvgStrValue = "0";
+
+    /**
+     * 质控评分现有数据与同期数据对比(-1-降 0-持平 1-升)
+     */
+    private Integer avSameValue = 0;
+
+    /**
+     * 甲级病历数/病案首页合格病历数
+     */
+    private Integer firstLevelNum = 0;
+
+    /**
+     * 甲级病历数/病案首页合格病历数-带升降标示
+     */
+    @Excel(name = "甲级病历数", orderNum = "9")
+    private String firstLevelStrNum = "0";
+
+    /**
+     * 同比甲级病历数/病案首页合格病历数
+     */
+    private Integer sameFirstLevelNum = 0;
+
+    /**
+     * 同比甲级病历数/病案首页合格病历数-带升降标示
+     */
+    @Excel(name = "同比甲级数", orderNum = "10")
+    private String sameFirstLevelStrNum = "0";
+
+    /**
+     * 甲级病历数现有数据与同期数据对比(-1-降 0-持平 1-升)
+     */
+    private Integer firSameLevelNum = 0;
+
+    /**
+     * 乙级病历数/病案首页不合格病历数
+     */
+    private Integer secondLevelNum = 0;
+
+    /**
+     * 乙级病历数/病案首页不合格病历数-带升降标示
+     */
+    @Excel(name = "乙级病历数", orderNum = "11")
+    private String secondLevelStrNum = "0";
+
+    /**
+     * 同比乙级病历数/病案首页不合格病历数
+     */
+    private Integer sameSecondLevelNum = 0;
+
+    /**
+     * 同比乙级病历数/病案首页不合格病历数-带升降标示
+     */
+    @Excel(name = "同比乙级数", orderNum = "12")
+    private String sameSecondLevelStrNum = "0";
+
+
+    /**
+     * 乙级病历数现有数据与同期数据对比(-1-降 0-持平 1-升)
+     */
+    private Integer secSameLevelNum = 0;
+
+    /**
+     * 丙级病历数
+     */
+    private Integer thirdLevelNum = 0;
+
+    /**
+     * 丙级病历数-带升降标示
+     */
+    @Excel(name = "丙级病历数", orderNum = "13")
+    private String thirdLevelStrNum = "0";
+
+    /**
+     * 同比丙级病历数
+     */
+    private Integer sameThirdLevelNum = 0;
+
+    /**
+     * 同比丙级病历数-带升降标示
+     */
+    @Excel(name = "同比丙级数", orderNum = "14")
+    private String sameThirdLevelStrNum = "0";
+
+    /**
+     * 丙级病历数现有数据与同期数据对比(-1-降 0-持平 1-升)
+     */
+    private Integer thiSameLevelNum = 0;
+
+    /**
+     * 甲级病历占比/病案首页合格病历占比
+     */
+    private Double firstLevelPercent = 0d;
+
+    /**
+     * 同比甲级病历占比/病案首页合格病历占比
+     */
+    private Double sameFirstLevelPercent = 0d;
+
+    /**
+     * 甲级病历占比现有数据与同期数据对比(-1-降 0-持平 1-升)
+     */
+    private Integer firSameLevelPercent = 0;
+
+    /**
+     * 乙级病历占比/病案首页不合格病历占比
+     */
+    private Double secondLevelPercent= 0d;
+
+    /**
+     * 同比乙级病历占比/病案首页不合格病历占比
+     */
+    private Double sameSecondLevelPercent = 0d;
+
+    /**
+     * 乙级病历占比现有数据与同期数据对比(-1-降 0-持平 1-升)
+     */
+    private Integer secSameLevelPercent = 0;
+
+    /**
+     * 丙级病历占比
+     */
+    private Double thirdLevelPercent= 0d;
+
+    /**
+     * 同比丙级病历占比
+     */
+    private Double sameThirdLevelPercent = 0d;
+
+    /**
+     * 丙级病历占比现有数据与同期数据对比(-1-降 0-持平 1-升)
+     */
+    private Integer thiSameLevelPercent = 0;
+
+    /**
+     * 甲级病历占比(百分比)/病案首页合格病历占比(百分比)
+     */
+    @Excel(name = "甲级率", orderNum = "15")
+    private String firstLevelPercentStr = "0.00%";
+
+    /**
+     * 同比甲级病历占比(百分比)/病案首页合格病历占比(百分比)
+     */
+    @Excel(name = "同比甲级率", orderNum = "16")
+    private String sameFirstLevelPercentStr = "0.00%";
+
+    /**
+     * 乙级病历占比(百分比)/病案首页不合格病历占比(百分比)
+     */
+    @Excel(name = "乙级率", orderNum = "17")
+    private String secondLevelPercentStr = "0.00%";
+
+    /**
+     * 同比乙级病历占比(百分比)/病案首页不合格病历占比(百分比)
+     */
+    @Excel(name = "同比乙级率", orderNum = "18")
+    private String sameSecondLevelPercentStr = "0.00%";
+
+    /**
+     * 丙级病历占比(百分比)
+     */
+    @Excel(name = "丙级率", orderNum = "19")
+    private String thirdLevelPercentStr = "0.00%";
+
+    /**
+     * 同比丙级病历占比(百分比)
+     */
+    @Excel(name = "同比丙级率", orderNum = "20")
+    private String sameThirdLevelPercentStr = "0.00%";
+
+}

+ 2 - 2
src/main/java/com/diagbot/facade/BehospitalInfoFacade.java

@@ -1776,7 +1776,7 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
                     List<ExportExcelWideBehospitalDTO> exportExcelWideBehospitalDTOs = new ArrayList<>();
                         excelBehospitalDTOS.forEach(exportExcelBehospitalDTO->{
                         ExportExcelWideBehospitalDTO exportExcelWideBehospitalDTO = new ExportExcelWideBehospitalDTO();
-                            exportExcelWideBehospitalDTO.setBehDoctorName(exportExcelBehospitalDTO.getBehDoctorName());
+                            exportExcelWideBehospitalDTO.setDoctorName(exportExcelBehospitalDTO.getDoctorName());
                             exportExcelWideBehospitalDTO.setBehospitalCode(exportExcelBehospitalDTO.getBehospitalCode());
                             exportExcelWideBehospitalDTO.setBehospitalDate(exportExcelBehospitalDTO.getBehospitalDate());
                             exportExcelWideBehospitalDTO.setLeaveHospitalDate(exportExcelBehospitalDTO.getLeaveHospitalDate());
@@ -1878,7 +1878,7 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
     private void exportQcresultVOSet(ExportQcresultVO exportQcresultVO) {
         //入参验证
         long interval_7 = 7 * 24 * 60 * 60 * 1000;
-        long interval_90 = 90l * 24 * 60 * 60 * 1000;
+        long interval_90 = 90 * 24 * 60 * 60 * 1000;
         //入院时间
         if (null != exportQcresultVO && null != exportQcresultVO.getBehosDateStart() && null != exportQcresultVO.getBehosDateEnd()) {
             Date startDate = exportQcresultVO.getBehosDateStart();

+ 279 - 3
src/main/java/com/diagbot/facade/ConsoleByDeptExportFacade.java

@@ -10,6 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import javax.servlet.http.HttpServletResponse;
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -100,14 +101,118 @@ public class ConsoleByDeptExportFacade {
         ExcelUtils.exportExcel(page.getRecords(), null, "sheet1", DeptEntryNumDTO.class, fileName, response, 12.8f);
     }
 
-    public void  solveParam(QcResultShortPageVO qcResultShortPageVO){
+
+    /**
+     *  各模块缺陷占比导出-科室
+     *
+     * @param filterPageByDeptVO
+     * @return
+     */
+    public void entryGroupExportByDeptCase(HttpServletResponse response,FilterPageByDeptVO filterPageByDeptVO) {
+        filterFacade.filterPageByDeptVOSet(filterPageByDeptVO);
+        IPage<NumDTO> page = qcresultInfoFacade.entryCountGroupByCaseAndDeptPage(filterPageByDeptVO);
+        filterPageByDeptVO.setCurrent(1L);
+        filterPageByDeptVO.setSize(Long.MAX_VALUE);
+        filterPageByDeptVO.setSearchCount(false);
+        String fileName = "各模块缺陷详情.xls";
+        ExcelUtils.exportExcel(page.getRecords(), null, "sheet1", NumDTO.class, fileName, response, 12.8f);
+    }
+
+    /**
+     *  条目缺陷占比(内页)-科室
+     *
+     * @param filterPageByDeptVO
+     * @return
+     */
+    public void entryGroupByEntryDeptPage(HttpServletResponse response,FilterPageByDeptVO filterPageByDeptVO) {
+        filterFacade.filterPageByDeptVOSet(filterPageByDeptVO);
+        filterPageByDeptVO.setCurrent(1L);
+        filterPageByDeptVO.setSize(Long.MAX_VALUE);
+        filterPageByDeptVO.setSearchCount(false);
+        IPage<DeptEntryNumDTO> page = qcresultInfoFacade.entryGroupByEntryAndDeptInnerPage(filterPageByDeptVO);
+        String fileName = "条目缺陷占比详情.xls";
+        ExcelUtils.exportExcel(page.getRecords(), null, "sheet1", DeptEntryNumDTO.class, fileName, response, 12.8f);
+    }
+
+    /**
+     * 缺陷详情质控评分页导出-科室
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    public void qcResultShortByDeptPageExport(HttpServletResponse response,QcResultShortPageVO qcResultShortPageVO) {
+        filterFacade.qcResultShortPageVOSet(qcResultShortPageVO);
+        nineTytime(qcResultShortPageVO);
+        qcResultShortPageVO.setCurrent(1L);
+        qcResultShortPageVO.setSize(Long.MAX_VALUE);
+        qcResultShortPageVO.setSearchCount(false);
+        List<ExportExcelByDeptDTO> records = behospitalInfoFacade.qcResultShortByDeptPageExport(qcResultShortPageVO);
+        //带缺陷
+        List<ExportSevenByDeptDTO> resDTO = new ArrayList<ExportSevenByDeptDTO>();
+        if(ListUtil.isNotEmpty(records)){
+            ExportSevenByDeptDTO exportByDeptDTO = new ExportSevenByDeptDTO();
+            exportByDeptDTO.setBehDeptName(records.get(0).getBehDeptName());
+            exportByDeptDTO.setExportExcelByDeptDTOS(records);
+            resDTO.add(exportByDeptDTO);
+        }
+        String fileName = "缺陷详情质控评分.xls";
+        ExcelUtils.exportExcelUser(resDTO, null, "sheet1", ExportSevenByDeptDTO.class, fileName, response);
+
+    }
+         public void nineTytime(QcResultShortPageVO qcResultShortPageVO){
+            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天");
+            }
+        };
+
+    /**
+     * 各科室缺陷占比-科室(组合)
+     *
+     * @param  filterOrderVO
+     * @return
+     */
+    public void levelByDeptExport(HttpServletResponse response,FilterOrderVO filterOrderVO) {
+        filterFacade.filterOrderVOSame(filterOrderVO);
+        List<LevelStsByDeptDTO> records = behospitalInfoFacade.levelStatisticsByDept(filterOrderVO);
+        if(ListUtil.isNotEmpty(records)){
+            for (LevelStsByDeptDTO record : records) {
+                BigDecimalStrExport(record);
+            }
+        }
+        String fileName = "各科室缺陷占比-科室.xls";
+        ExcelUtils.exportExcel(records, null, "sheet1", LevelStsByDeptDTO.class, fileName, response, 12.8f);
+    }
+
+    /**
+     * 关键条目缺陷占比统计导出-科室
+     *
+     * @param  entryStatisticsVO
+     * @return
+     */
+    public void entryStatisticsByDeptExport(HttpServletResponse response,EntryStatisticsVO entryStatisticsVO) {
+        List<EntryStasByDeptDTO> records = behospitalInfoFacade.entryStatisticsByDept(entryStatisticsVO);
+        String fileName = "关键条目缺陷占比统计导出.xls";
+        ExcelUtils.exportExcel(records, null, "sheet1", EntryStasByDeptDTO.class, fileName, response, 12.8f);
+    }
+
+
+
+
+    public void solveParam(QcResultShortPageVO qcResultShortPageVO){
        String hospitalId = SysUserUtils.getCurrentHospitalID();
        qcResultShortPageVO.setHospitalId(hospitalId);
        Date startDate = qcResultShortPageVO.getStartDate();
        Date endDate = qcResultShortPageVO.getEndDate();
        //时间间隔7天
        long interval_7 = 7 * 24 * 60 * 60 * 1000;
-       long interval_90 = 90l * 24 * 60 * 60 * 1000;
+       long interval_90 = 90 * 24 * 60 * 60 * 1000;
 
        if("1".equals(qcResultShortPageVO.getRadioCheck())){
            //时间间隔7天
@@ -136,7 +241,7 @@ public class ConsoleByDeptExportFacade {
                 ExportWideExcelByDeptDTO exportWideExcelByDeptDTO = new ExportWideExcelByDeptDTO();
                 exportWideExcelByDeptDTO.setAvgScore(exportExcelByDeptDTO.getAvgScore());
                 exportNinetyByDeptDTO.setBehDeptName( exportExcelByDeptDTO.getBehDeptName());
-                exportWideExcelByDeptDTO.setBehDoctorName(exportExcelByDeptDTO.getBehDoctorName());
+                exportWideExcelByDeptDTO.setDoctorName(exportExcelByDeptDTO.getDoctorName());
                 List<ExportExcelBehByDeptDTO> exportExcelBehByDeptDTOS = exportExcelByDeptDTO.getExcelBehospitalDTOS();
                 List<ExportExcelWideBehByDeptDTO> exportExcelWideBehByDepDTOs = new ArrayList<>();
 
@@ -159,4 +264,175 @@ public class ConsoleByDeptExportFacade {
         return resWide;
     }
 
+    public void BigDecimalStrExport(LevelStsByDeptDTO record){
+
+        BigDecimal entrySameBigDecimal = getSubtract(new BigDecimal(record.getEntryNum()), new BigDecimal(record.getSameNum()  == null? 0:record.getSameNum()));
+
+        if(entrySameBigDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setEntryStrNum(record.getEntryNum()+"↑");
+        }else if(entrySameBigDecimal.compareTo(BigDecimal.ZERO) <0){
+            record.setEntryStrNum(record.getEntryNum()+"↓");
+        }
+
+        BigDecimal sameMrNumBigDecimal = getSubtract(new BigDecimal(record.getMrNum()), new BigDecimal(record.getSameMrNum()  == null? 0:record.getSameMrNum()));
+        if(sameMrNumBigDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setMrStrNum(record.getMrNum()+"↑");
+        }else if(sameMrNumBigDecimal.compareTo(BigDecimal.ZERO) <0){
+            record.setMrStrNum(record.getMrNum()+"↓");
+        }
+
+        BigDecimal sameAvgValueDecimal = getSubtract(new BigDecimal(record.getAverageValue()), new BigDecimal(record.getSameAvgValue() == null? 0:record.getSameAvgValue()));
+        if(sameAvgValueDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setAverageStrValue(record.getAverageValue()+"↑");
+        }else if(sameAvgValueDecimal.compareTo(BigDecimal.ZERO) <0){
+            record.setAverageStrValue(record.getAverageValue()+"↓");
+        }
+
+        BigDecimal SameFirstLevelBigDecimal = getSubtract(new BigDecimal(record.getFirstLevelNum()), new BigDecimal(record.getSameFirstLevelNum() == null? 0:record.getSameFirstLevelNum()));
+        if(SameFirstLevelBigDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setFirstLevelStrNum(record.getFirstLevelNum()+"↑");
+        }else if(SameFirstLevelBigDecimal.compareTo(BigDecimal.ZERO) <0){
+            record.setFirstLevelStrNum(record.getFirstLevelNum()+"↓");
+        }
+
+        BigDecimal SameSecondLevelBigDecimal = getSubtract(new BigDecimal(record.getSecondLevelNum()), new BigDecimal(record.getSameSecondLevelNum() == null? 0:record.getSameSecondLevelNum()));
+        if(SameSecondLevelBigDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setSecondLevelStrNum(record.getSecondLevelNum()+"↑");
+        }else if(SameSecondLevelBigDecimal.compareTo(BigDecimal.ZERO) <0){
+            record.setSecondLevelStrNum(record.getSecondLevelNum()+"↓");
+        }
+
+        BigDecimal SameThirdLevelBigDecimal = getSubtract(new BigDecimal(record.getThirdLevelNum()), new BigDecimal(record.getSameThirdLevelNum() == null? 0:record.getSameThirdLevelNum()));
+        if(SameThirdLevelBigDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setThirdLevelStrNum(record.getThirdLevelNum()+"↑");
+        }else if(SameThirdLevelBigDecimal.compareTo(BigDecimal.ZERO) <0){
+            record.setThirdLevelStrNum(record.getThirdLevelNum()+"↓");
+        }
+
+        BigDecimal SameFirstLevelPeDecimal = getSubtract(new BigDecimal(record.getFirstLevelPercent()), new BigDecimal(record.getSameFirstLevelPercent() == null? 0:record.getSameFirstLevelPercent()));
+        if(SameFirstLevelPeDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setFirstLevelPercentStr(record.getFirstLevelPercentStr()+"↑");
+        }else if(SameFirstLevelPeDecimal.compareTo(BigDecimal.ZERO) <0){
+            record.setFirstLevelPercentStr(record.getFirstLevelPercentStr()+"↓");
+        }
+
+        BigDecimal SameSecondLevelPeDecimal = getSubtract(new BigDecimal(record.getSecondLevelPercent()), new BigDecimal(record.getSameSecondLevelPercent() == null? 0:record.getSameSecondLevelPercent()));
+        if(SameSecondLevelPeDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setSecondLevelPercentStr(record.getSecondLevelPercentStr()+"↑");
+        }else if(SameSecondLevelPeDecimal.compareTo(BigDecimal.ZERO)<0){
+            record.setSecondLevelPercentStr(record.getSecondLevelPercentStr()+"↓");
+        }
+
+        BigDecimal SameThirdLevelPeDecimal = getSubtract(new BigDecimal(record.getThirdLevelPercent()), new BigDecimal(record.getSameThirdLevelPercent() == null? 0:record.getSameThirdLevelPercent()));
+        if(SameThirdLevelPeDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setThirdLevelPercentStr(record.getThirdLevelPercentStr()+"↑");
+        }else if(SameThirdLevelPeDecimal.compareTo(BigDecimal.ZERO) <0){
+            record.setThirdLevelPercentStr(record.getThirdLevelPercentStr()+"↓");
+        }
+    };
+
+    public void BigDecimalMethod(LevelStatisticsDTO record){
+        BigDecimal entrySameBigDecimal = getSubtract(new BigDecimal(record.getEntryNum()), new BigDecimal(record.getSameNum() == null? 0:record.getSameNum()));
+
+        if(entrySameBigDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setEntrySameNum(1);
+        }else if(entrySameBigDecimal.compareTo(BigDecimal.ZERO) == 0){
+            record.setEntrySameNum(0);
+        }else{
+            record.setEntrySameNum(-1);
+        }
+
+        BigDecimal sameMrNumBigDecimal = getSubtract(new BigDecimal(record.getMrNum()), new BigDecimal(record.getSameMrNum()  == null? 0:record.getSameMrNum()));
+        if(sameMrNumBigDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setMrSameNum(1);
+        }else if(sameMrNumBigDecimal.compareTo(BigDecimal.ZERO) == 0){
+            record.setMrSameNum(0);
+        }else{
+            record.setMrSameNum(-1);
+        }
+
+        BigDecimal sameAvgValueDecimal = getSubtract(new BigDecimal(record.getAverageValue()), new BigDecimal(record.getSameAvgValue() == null? 0:record.getSameAvgValue()));
+        if(sameAvgValueDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setAvSameValue(1);
+        }else if(sameAvgValueDecimal.compareTo(BigDecimal.ZERO) == 0){
+            record.setAvSameValue(0);
+        }else{
+            record.setAvSameValue(-1);
+        }
+
+        BigDecimal SameFirstLevelBigDecimal = getSubtract(new BigDecimal(record.getFirstLevelNum()), new BigDecimal(record.getSameFirstLevelNum() == null? 0:record.getSameFirstLevelNum()));
+        if(SameFirstLevelBigDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setFirSameLevelNum(1);
+        }else if(SameFirstLevelBigDecimal.compareTo(BigDecimal.ZERO) == 0){
+            record.setFirSameLevelNum(0);
+        }else{
+            record.setFirSameLevelNum(-1);
+        }
+
+        BigDecimal SameSecondLevelBigDecimal = getSubtract(new BigDecimal(record.getSecondLevelNum()), new BigDecimal(record.getSameSecondLevelNum() == null? 0:record.getSameSecondLevelNum()));
+        if(SameSecondLevelBigDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setSecSameLevelNum(1);
+        }else if(SameSecondLevelBigDecimal.compareTo(BigDecimal.ZERO) == 0){
+            record.setSecSameLevelNum(0);
+        }else{
+            record.setSecSameLevelNum(-1);
+        }
+
+        BigDecimal SameThirdLevelBigDecimal = getSubtract(new BigDecimal(record.getThirdLevelNum()), new BigDecimal(record.getSameThirdLevelNum() == null? 0:record.getSameThirdLevelNum()));
+        if(SameThirdLevelBigDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setThiSameLevelNum(1);
+        }else if(SameThirdLevelBigDecimal.compareTo(BigDecimal.ZERO) == 0){
+            record.setThiSameLevelNum(0);
+        }else{
+            record.setThiSameLevelNum(-1);
+        }
+
+        BigDecimal SameFirstLevelPeDecimal = getSubtract(new BigDecimal(record.getFirstLevelPercent()), new BigDecimal(record.getSameFirstLevelPercent() == null? 0:record.getSameFirstLevelPercent()));
+        if(SameFirstLevelPeDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setFirSameLevelPercent(1);
+        }else if(SameFirstLevelPeDecimal.compareTo(BigDecimal.ZERO) == 0){
+            record.setFirSameLevelPercent(0);
+        }else{
+            record.setFirSameLevelPercent(-1);
+        }
+
+        BigDecimal SameSecondLevelPeDecimal = getSubtract(new BigDecimal(record.getSecondLevelPercent()), new BigDecimal(record.getSameSecondLevelPercent() == null? 0:record.getSameSecondLevelPercent()));
+        if(SameSecondLevelPeDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setSecSameLevelPercent(1);
+        }else if(SameSecondLevelPeDecimal.compareTo(BigDecimal.ZERO) == 0){
+            record.setSecSameLevelPercent(0);
+        }else{
+            record.setSecSameLevelPercent(-1);
+        }
+
+        BigDecimal SameThirdLevelPeDecimal = getSubtract(new BigDecimal(record.getThirdLevelPercent()), new BigDecimal(record.getSameThirdLevelPercent() == null? 0:record.getSameThirdLevelPercent()));
+        if(SameThirdLevelPeDecimal.compareTo(BigDecimal.ZERO)>0){
+            record.setThiSameLevelPercent(1);
+        }else if(SameThirdLevelPeDecimal.compareTo(BigDecimal.ZERO) == 0){
+            record.setThiSameLevelPercent(0);
+        }else{
+            record.setThiSameLevelPercent(-1);
+        }
+    };
+
+    /**
+     * 差值计算
+     *
+     * @param bigDecimalOne
+     * @param bigDecimalTwo
+     * @return
+     */
+    private BigDecimal getSubtract(BigDecimal bigDecimalOne, BigDecimal bigDecimalTwo) {
+        BigDecimal newBigDecimal = new BigDecimal(0);
+        if (null == bigDecimalOne && null != bigDecimalTwo) {
+            newBigDecimal = newBigDecimal.subtract(bigDecimalTwo);
+        } else if (null != bigDecimalOne && null == bigDecimalTwo) {
+            newBigDecimal = bigDecimalOne.subtract(newBigDecimal);
+        } else if (null != bigDecimalOne && null != bigDecimalTwo) {
+            newBigDecimal = bigDecimalOne.subtract(bigDecimalTwo);
+        }
+        return newBigDecimal;
+    }
+
+
 }

+ 24 - 8
src/main/java/com/diagbot/facade/ConsoleByDeptFacade.java

@@ -390,7 +390,7 @@ public class ConsoleByDeptFacade {
      * @param filterPageByDeptVO
      * @return
      */
-    public IPage<DeptNumDTO> entryCountGroupByCaseAndDeptPage(FilterPageByDeptVO filterPageByDeptVO) {
+    public IPage<NumDTO> entryCountGroupByCaseAndDeptPage(FilterPageByDeptVO filterPageByDeptVO) {
         if (StringUtil.isBlank(filterPageByDeptVO.getDeptName())) {
             List<DeptBaseDTO> deptList = this.getDept();
             //默认取第一个科室
@@ -399,7 +399,7 @@ public class ConsoleByDeptFacade {
             }
         }
         filterFacade.filterPageByDeptVOSet(filterPageByDeptVO);
-        IPage<DeptNumDTO> page = qcresultInfoFacade.entryCountGroupByCaseAndDeptPage(filterPageByDeptVO);
+        IPage<NumDTO> page = qcresultInfoFacade.entryCountGroupByCaseAndDeptPage(filterPageByDeptVO);
         return page;
     }
 
@@ -466,19 +466,19 @@ public class ConsoleByDeptFacade {
     /**
      * 各科室缺陷占比(组合)
      *
-     * @param filterOrderByDeptVO
+     * @param filterOrderVO
      * @return
      */
-    public List<LevelStatisticsDTO> levelStatisticsByDept(FilterOrderByDeptVO filterOrderByDeptVO) {
+    public List<LevelStsByDeptDTO> levelStatisticsByDept(FilterOrderVO filterOrderVO) {
         List<DeptBaseDTO> deptList = getDept();
         if (ListUtil.isEmpty(deptList)) {
             return null;
         }
-        if (StringUtil.isBlank(filterOrderByDeptVO.getDeptName())) {
-            filterOrderByDeptVO.setDeptName(deptList.get(0).getDeptName());
+        if (StringUtil.isBlank(filterOrderVO.getDeptName())) {
+            filterOrderVO.setDeptName(deptList.get(0).getDeptName());
         }
-        filterFacade.filterOrderByDeptVOSet(filterOrderByDeptVO);
-        List<LevelStatisticsDTO> records = behospitalInfoFacade.levelStatisticsByDept(filterOrderByDeptVO);
+        filterFacade.filterOrderVOSame(filterOrderVO);
+        List<LevelStsByDeptDTO> records = behospitalInfoFacade.levelStatisticsByDept(filterOrderVO);
         return records;
     }
 
@@ -712,4 +712,20 @@ public class ConsoleByDeptFacade {
         IPage<QcResultShortDTO> page = behospitalInfoFacade.qcResultShortByDeptPage(qcResultShortPageVO);
         return page;
     }
+
+
+    /**
+     * 关键条目缺陷占比统计-科室
+     *
+     * @param entryStatisticsVO
+     * @return
+     */
+    public List<EntryStasByDeptDTO> entryStatisticsByDept(EntryStatisticsVO entryStatisticsVO) {
+        filterFacade.entryStatisticsVOSet(entryStatisticsVO);
+        if (entryStatisticsVO.getDeptName().equals("全院")) {
+            entryStatisticsVO.setDeptName("");
+        }
+        List<EntryStasByDeptDTO> records = behospitalInfoFacade.entryStatisticsByDept(entryStatisticsVO);
+        return records;
+    }
 }

+ 7 - 7
src/main/java/com/diagbot/facade/ConsoleExportFacade.java

@@ -230,7 +230,7 @@ public class ConsoleExportFacade {
         Date startDate = qcResultShortPageVO.getStartDate();
         Date endDate = qcResultShortPageVO.getEndDate();
         //时间间隔90天
-        long interval = 90l * 24l * 60l * 60l * 1000l;
+        long interval = 90 * 24l * 60l * 60l * 1000l;
         if (endDate.getTime() < startDate.getTime()) {
             throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
         }
@@ -263,7 +263,7 @@ public class ConsoleExportFacade {
         Date endDate = qcResultShortPageVO.getEndDate();
         //时间间隔7天
         long interval_7 = 7 * 24 * 60 * 60 * 1000;
-        long interval_90 = 90l * 24 * 60 * 60 * 1000;
+        long interval_90 = 90 * 24 * 60 * 60 * 1000;
 
         if("1".equals(qcResultShortPageVO.getRadioCheck())){
             //时间间隔7天
@@ -310,7 +310,7 @@ public class ConsoleExportFacade {
                 List<ExportExcelWideBehospitalDTO> exportExcelWideBehospitalDTOs = new ArrayList<>();
                 excelBehospitalDTOS.forEach(exportExcelBehospitalDTO->{
                     ExportExcelWideBehospitalDTO exportExcelWideBehospitalDTO = new ExportExcelWideBehospitalDTO();
-                    exportExcelWideBehospitalDTO.setBehDoctorName(exportExcelBehospitalDTO.getBehDoctorName());
+                    exportExcelWideBehospitalDTO.setDoctorName(exportExcelBehospitalDTO.getDoctorName());
                     exportExcelWideBehospitalDTO.setBehospitalCode(exportExcelBehospitalDTO.getBehospitalCode());
                     exportExcelWideBehospitalDTO.setBehospitalDate(exportExcelBehospitalDTO.getBehospitalDate());
                     exportExcelWideBehospitalDTO.setLeaveHospitalDate(exportExcelBehospitalDTO.getLeaveHospitalDate());
@@ -354,7 +354,7 @@ public class ConsoleExportFacade {
         Date startDate = qcResultShortPageVO.getStartDate();
         Date endDate = qcResultShortPageVO.getEndDate();
         //时间间隔7天
-        long interval = 90l * 24l * 60l * 60l * 1000l;
+        long interval = 90 * 24l * 60l * 60l * 1000l;
         if (endDate.getTime() < startDate.getTime()) {
             throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
         }
@@ -387,7 +387,7 @@ public class ConsoleExportFacade {
         Date endDate = qcResultShortPageVO.getEndDate();
         //时间间隔7天
         long interval_7 = 7 * 24 * 60 * 60 * 1000;
-        long interval_90 = 90l * 24 * 60 * 60 * 1000;
+        long interval_90 = 90 * 24 * 60 * 60 * 1000;
 
         if("1".equals(qcResultShortPageVO.getRadioCheck())){
             //时间间隔7天
@@ -506,7 +506,7 @@ public class ConsoleExportFacade {
         Date endDate = qcResultShortPageVO.getEndDate();
         //时间间隔7天
         long interval_7 = 7 * 24 * 60 * 60 * 1000;
-        long interval_90 = 90l * 24 * 60 * 60 * 1000;
+        long interval_90 = 90 * 24 * 60 * 60 * 1000;
 
         if("1".equals(qcResultShortPageVO.getRadioCheck())){
             //时间间隔7天
@@ -561,7 +561,7 @@ public class ConsoleExportFacade {
 
         //时间间隔7天
         long interval_7 = 7 * 24 * 60 * 60 * 1000;
-        long interval_90 = 90l * 24 * 60 * 60 * 1000;
+        long interval_90 = 90 * 24 * 60 * 60 * 1000;
 
         if("1".equals(qcResultShortPageVO.getRadioCheck())){
             //时间间隔7天

+ 20 - 2
src/main/java/com/diagbot/mapper/BehospitalInfoMapper.java

@@ -150,10 +150,10 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
     /**
      * 各科室缺陷占比(主任医生)
      *
-     * @param filterOrderByDeptVO
+     * @param filterOrderVO
      * @return
      */
-    public List<LevelStatisticsDTO> levelStatisticsByDept(FilterOrderByDeptVO filterOrderByDeptVO);
+    public List<LevelStsByDeptDTO> levelStatisticsByDept(FilterOrderVO filterOrderVO);
 
     /**
      * 病案首页合格率占比(主任医生)
@@ -269,6 +269,15 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      */
     public List<EntryStatisticsDTO> entryStatistics(EntryStatisticsVO entryStatisticsVO);
 
+
+    /**
+     * 关键条目缺陷占比统计-科室
+     *
+     * @param entryStatisticsVO
+     * @return
+     */
+    public List<EntryStasByDeptDTO> entryStatisticsByDept(EntryStatisticsVO entryStatisticsVO);
+
     /**
      * 非医嘱离院病人记录
      *
@@ -420,6 +429,15 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
 
     public List<ExportExcelByDeptDTO> homePageOrLevelExportByDept(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
 
+    /**
+     * 缺陷详情质控评分页导出-科室
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+
+    public List<ExportExcelByDeptDTO> qcResultShortByDeptPageExport(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
+
 
     /**
      * 31天再入院详情页

+ 1 - 1
src/main/java/com/diagbot/mapper/QcresultInfoMapper.java

@@ -142,7 +142,7 @@ public interface QcresultInfoMapper extends BaseMapper<QcresultInfo> {
      * @param filterPageByDeptVO
      * @return
      */
-    public IPage<DeptNumDTO> entryCountGroupByCaseAndDeptPage(@Param("filterPageByDeptVO") FilterPageByDeptVO filterPageByDeptVO);
+    public IPage<NumDTO> entryCountGroupByCaseAndDeptPage(@Param("filterPageByDeptVO") FilterPageByDeptVO filterPageByDeptVO);
 
     /**
      * 缺陷详情-科室(分页)

+ 21 - 3
src/main/java/com/diagbot/service/BehospitalInfoService.java

@@ -150,10 +150,10 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
     /**
      * 各科室缺陷占比(主任医生)
      *
-     * @param filterOrderByDeptVO
+     * @param filterOrderVO
      * @return
      */
-    public List<LevelStatisticsDTO> levelStatisticsByDept(FilterOrderByDeptVO filterOrderByDeptVO);
+    public List<LevelStsByDeptDTO> levelStatisticsByDept( FilterOrderVO filterOrderVO);
 
     /**
      * 单条条目缺陷统计-首页
@@ -163,7 +163,6 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
      */
     public List<AdmissionCountDTO> casesEntryStatisticsByDept(FilterVO filterVO);
 
-
     /**
      * 病案首页合格率占比(主任医生)
      *
@@ -255,6 +254,17 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
      */
     public List<EntryStatisticsDTO> entryStatistics(EntryStatisticsVO entryStatisticsVO);
 
+    /**
+     * 关键条目缺陷占比统计-科室
+     *
+     * @param entryStatisticsVO
+     * @return
+     */
+    public List<EntryStasByDeptDTO> entryStatisticsByDept(EntryStatisticsVO entryStatisticsVO);
+
+
+
+
     /**
      * 非医嘱离院病人记录
      *
@@ -327,6 +337,14 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
      */
     public List<ExportExcelDTO> qcResultShortPageExport(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
 
+    /**
+     * 缺陷详情质控评分页导出-科室
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    public List<ExportExcelByDeptDTO> qcResultShortByDeptPageExport(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO);
+
     /**
      * 未整改病历统计
      *

+ 1 - 1
src/main/java/com/diagbot/service/QcresultInfoService.java

@@ -140,7 +140,7 @@ public interface QcresultInfoService extends IService<QcresultInfo> {
      * @param filterPageByDeptVO
      * @return
      */
-    public IPage<DeptNumDTO> entryCountGroupByCaseAndDeptPage(@Param("filterPageByDeptVO") FilterPageByDeptVO filterPageByDeptVO);
+    public IPage<NumDTO> entryCountGroupByCaseAndDeptPage(@Param("filterPageByDeptVO") FilterPageByDeptVO filterPageByDeptVO);
 
     /**
      * 缺陷详情-科室(分页)

+ 25 - 3
src/main/java/com/diagbot/service/impl/BehospitalInfoServiceImpl.java

@@ -216,12 +216,12 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
     /**
      * 各科室缺陷占比(主任医生)
      *
-     * @param filterOrderByDeptVO
+     * @param filterOrderVO
      * @return
      */
     @Override
-    public List<LevelStatisticsDTO> levelStatisticsByDept(FilterOrderByDeptVO filterOrderByDeptVO) {
-        return baseMapper.levelStatisticsByDept(filterOrderByDeptVO);
+    public List<LevelStsByDeptDTO> levelStatisticsByDept(FilterOrderVO filterOrderVO) {
+        return baseMapper.levelStatisticsByDept(filterOrderVO);
     }
 
     /**
@@ -360,6 +360,17 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
         return baseMapper.entryStatistics(entryStatisticsVO);
     }
 
+    /**
+     * 关键条目缺陷占比统计-科室
+     *
+     * @param entryStatisticsVO
+     * @return
+     */
+    @Override
+    public List<EntryStasByDeptDTO> entryStatisticsByDept(EntryStatisticsVO entryStatisticsVO) {
+        return baseMapper.entryStatisticsByDept(entryStatisticsVO);
+    }
+
     /**
      * 非医嘱离院病人记录
      *
@@ -460,6 +471,17 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
         return baseMapper.qcResultShortPageExport(qcResultShortPageVO);
     }
 
+    /**
+     * 缺陷详情质控评分页导出-科室
+     *
+     * @param qcResultShortPageVO
+     * @return
+     */
+    @Override
+    public List<ExportExcelByDeptDTO> qcResultShortByDeptPageExport(@Param("qcResultShortPageVO") QcResultShortPageVO qcResultShortPageVO) {
+        return baseMapper.qcResultShortByDeptPageExport(qcResultShortPageVO);
+    }
+
     /**
      * 未整改病历统计
      *

+ 1 - 1
src/main/java/com/diagbot/service/impl/QcresultInfoServiceImpl.java

@@ -187,7 +187,7 @@ public class QcresultInfoServiceImpl extends ServiceImpl<QcresultInfoMapper, Qcr
      * @return
      */
     @Override
-    public IPage<DeptNumDTO> entryCountGroupByCaseAndDeptPage(@Param("filterPageByDeptVO") FilterPageByDeptVO filterPageByDeptVO) {
+    public IPage<NumDTO> entryCountGroupByCaseAndDeptPage(@Param("filterPageByDeptVO") FilterPageByDeptVO filterPageByDeptVO) {
         return baseMapper.entryCountGroupByCaseAndDeptPage(filterPageByDeptVO);
     }
 

+ 5 - 0
src/main/java/com/diagbot/vo/EntryStatisticsVO.java

@@ -48,6 +48,11 @@ public class EntryStatisticsVO {
      * 科室名称
      */
     private String deptName;
+
+    /**
+     * 主治医生
+     */
+    private String doctorName;
     /**
      * 是否归档(0:未归档,1:已归档)
      */

+ 25 - 5
src/main/java/com/diagbot/web/ConsoleByDeptController.java

@@ -136,8 +136,8 @@ public class ConsoleByDeptController {
                     "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
     @PostMapping("/entryCountGroupByCaseAndDeptPage")
     @SysLogger("entryCountGroupByCaseAndDeptPage")
-    public RespDTO<IPage<DeptNumDTO>> entryCountGroupByCaseAndDeptPage(@RequestBody @Valid FilterPageByDeptVO filterPageByDeptVO) {
-        IPage<DeptNumDTO> data = consoleByDeptFacade.entryCountGroupByCaseAndDeptPage(filterPageByDeptVO);
+    public RespDTO<IPage<NumDTO>> entryCountGroupByCaseAndDeptPage(@RequestBody @Valid FilterPageByDeptVO filterPageByDeptVO) {
+        IPage<NumDTO> data = consoleByDeptFacade.entryCountGroupByCaseAndDeptPage(filterPageByDeptVO);
         return RespDTO.onSuc(data);
     }
 
@@ -194,7 +194,7 @@ public class ConsoleByDeptController {
     /**
      * 各科室缺陷占比(组合)
      *
-     * @param filterOrderByDeptVO
+     * @param filterOrderVO
      * @return
      */
     @ApiOperation(value = "各科室缺陷占比(组合)-内页[by:zhaops]",
@@ -207,8 +207,8 @@ public class ConsoleByDeptController {
                     "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
     @PostMapping("/levelStatisticsByDept")
     @SysLogger("levelStatisticsByDept")
-    public RespDTO<List<LevelStatisticsDTO>> levelStatisticsByDept(@RequestBody @Valid FilterOrderByDeptVO filterOrderByDeptVO) {
-        return RespDTO.onSuc(consoleByDeptFacade.levelStatisticsByDept(filterOrderByDeptVO));
+    public RespDTO<List<LevelStsByDeptDTO>> levelStatisticsByDept(@RequestBody @Valid FilterOrderVO filterOrderVO) {
+        return RespDTO.onSuc(consoleByDeptFacade.levelStatisticsByDept(filterOrderVO));
     }
 
     /**
@@ -270,6 +270,7 @@ public class ConsoleByDeptController {
                     "behDeptName:科室名称 <br>" +
                     "doctorName:主治医生名称 <br>" +
                     "level: 病历等级 <br>" +
+                    "diagnose: 主诊断 <br>" +
                     "isReject: 单项否决 1-否决,0-非<br>" +
                     "ruleType: 规则类型 0:无,1:空项,2:错误<br>" +
                     "startDate: 起始时间 <br>" +
@@ -280,5 +281,24 @@ public class ConsoleByDeptController {
     public RespDTO<IPage<QcResultShortDTO>> qcResultShortByDeptPage(@RequestBody @Valid QcResultShortPageVO qcResultShortPageVO) {
         return RespDTO.onSuc(consoleByDeptFacade.qcResultShortByDeptPage(qcResultShortPageVO));
     }
+
+    /**
+     * 关键条目缺陷占比统计-科室
+     *
+     * @param entryStatisticsVO
+     * @return
+     */
+    @ApiOperation(value = "关键条目缺陷占比统计-科室[by:cy]",
+            notes = "deptName:科室名称 <br>" +
+                    "asc: 排序(升序) <br>" +
+                    "desc:排序(降序) <br>" +
+                    "startDate: 起始时间 <br>" +
+                    "endDate: 截止时间 <br>" +
+                    "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
+    @PostMapping("/entryStatisticsByDept")
+    @SysLogger("entryStatisticsByDept")
+    public RespDTO<List<EntryStasByDeptDTO>> entryStatisticsByDept(@RequestBody @Valid EntryStatisticsVO entryStatisticsVO) {
+        return RespDTO.onSuc(consoleByDeptFacade.entryStatisticsByDept(entryStatisticsVO));
+    }
     //endregion -----------------------内页接口结束------------------------------
 }

+ 99 - 65
src/main/java/com/diagbot/web/ConsoleByDeptExportController.java

@@ -3,6 +3,7 @@ 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.vo.*;
@@ -16,6 +17,7 @@ import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
+import java.util.List;
 
 /**
  * @Description:
@@ -59,7 +61,7 @@ public class ConsoleByDeptExportController {
      * @param qcResultShortPageVO
      * @return
      */
-    @ApiOperation(value = "病案首页不合格/合格数病历详情页导出[by:cy]",
+    @ApiOperation(value = "病案首页不合格/合格数病历详情页导出-科室[by:cy]",
             notes = "behospitalCode: 病历号<br>" +
                     "patName: 病人姓名 <br>" +
                     "behDeptName:科室名称 <br>" +
@@ -101,23 +103,105 @@ public class ConsoleByDeptExportController {
        consoleByDeptExportFacade.entryGroupExportByDeptPage(response,filterPageByDeptVO);
     }
 
+    /**
+     * 各模块缺陷占比导出-科室
+     *
+     * @param filterPageByDeptVO
+     * @return
+     */
+
+    @ApiOperation(value = "各模块缺陷占比导出-科室[by:cy]",
+            notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
+                    "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
+    @PostMapping("/entryGroupExportByDeptCase")
+    @SysLogger("entryGroupExportByDeptCase")
+    public void entryGroupExportByDeptCase(HttpServletResponse response, @RequestBody @Valid FilterPageByDeptVO filterPageByDeptVO) {
+        consoleByDeptExportFacade.entryGroupExportByDeptCase(response, filterPageByDeptVO);
+    }
+
 
 /**
-     * 条目缺陷占比(内页)
+     * 条目缺陷占比(内页)-科室
      *
-     * @param filterPageVO
+     * @param filterPageByDeptVO
+     * @return
+ */
+    @ApiOperation(value = "条目缺陷占比(内页)-科室[by:cy]",
+            notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
+                    "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
+    @PostMapping("/entryGroupByEntryDeptPage")
+    @SysLogger("entryGroupByEntryDeptPage")
+    public void entryGroupByEntryDeptPage(HttpServletResponse response, @RequestBody @Valid FilterPageByDeptVO filterPageByDeptVO) {
+        consoleByDeptExportFacade.entryGroupByEntryDeptPage(response, filterPageByDeptVO);
+    }
+
+    /**
+     * 缺陷详情质控评分页导出-科室
+     *
+     * @param qcResultShortPageVO
      * @return
+     */
 
-    @ApiOperation(value = "条目缺陷占比导出[by:gaodm]",
+    @ApiOperation(value = "缺陷详情质控评分页导出-科室[by:cy]",
+            notes = "behospitalCode: 病历号)<br>" +
+                    "patName: 病人姓名 <br>" +
+                    "casesEntryName: 条目名称 <br>" +
+                    "casesEntryId: 条目id <br>" +
+                    "behDeptName:科室名称 <br>" +
+                    "doctorName:主治医生名称 <br>" +
+                    "level: 病历等级 <br>" +
+                    "diagnose: 主诊断 <br>" +
+                    "isReject: 单项否决 1-否决,0-非<br>" +
+                    "ruleType: 规则类型 0:无,1:空项,2:错误<br>" +
+                    "startDate: 起始时间 <br>" +
+                    "endDate: 截止时间 <br>" +
+                    "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
+    @PostMapping("/qcResultShortByDeptPageExport")
+    @SysLogger("qcResultShortByDeptPageExport")
+    public void qcResultShortByDeptPageExport(HttpServletResponse response, @RequestBody @Valid QcResultShortPageVO qcResultShortPageVO) {
+        consoleByDeptExportFacade.qcResultShortByDeptPageExport(response, qcResultShortPageVO);
+    }
+
+    /**
+     * 各科室缺陷占比-科室(组合)
+     *
+     * @param filterOrderVO
+     * @return
+     */
+    @ApiOperation(value = "各科室缺陷占比-科室 导出[by:cy]",
             notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
+                    "level: 病历等级 <br>" +
+                    "name: 科室名称 <br>" +
+                    "asc: 排序(升序) <br>" +
+                    "desc: 排序(降序) <br>" +
                     "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
-    @PostMapping("/entryGroupByEntryExport")
-    @SysLogger("entryGroupByEntryExport")
-    public void entryGroupByEntryExport(HttpServletResponse response, @RequestBody @Valid FilterPageVO filterPageVO) {
-        consoleExportFacade.entryGroupByEntryExport(response, filterPageVO);
+    @PostMapping("/levelByDeptExport")
+    @SysLogger("levelByDeptExport")
+    public void levelByDeptExport(HttpServletResponse response, @RequestBody @Valid FilterOrderVO filterOrderVO) {
+        consoleByDeptExportFacade.levelByDeptExport(response, filterOrderVO);
     }
 
-*//**
+    /**
+     * 关键条目缺陷占比统计导出-科室
+     *
+     * @param entryStatisticsVO
+     * @return
+     */
+    @ApiOperation(value = "关键条目缺陷占比统计导出-科室[by:cy]",
+            notes = "deptName:科室名称 <br>" +
+                    "doctorName:主治医生 <br>" +
+                    "asc: 排序(升序) <br>" +
+                    "desc:排序(降序) <br>" +
+                    "startDate: 起始时间 <br>" +
+                    "endDate: 截止时间 <br>" +
+                    "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
+    @PostMapping("/entryStatisticsByDeptExport")
+    @SysLogger("entryStatisticsByDeptExport")
+    public void entryStatisticsByDeptExport(HttpServletResponse response,@RequestBody @Valid EntryStatisticsVO entryStatisticsVO) {
+         consoleByDeptExportFacade.entryStatisticsByDeptExport(response,entryStatisticsVO);
+    }
+
+/**
      * 病历稽查统计(首页)
      * @param filterVO
      * @return
@@ -213,35 +297,21 @@ public class ConsoleByDeptExportController {
      *
      * @param filterPageVO
      * @return
-     *//*
+     */
 
-    @ApiOperation(value = "各科室甲级病历占比排行导出[by:gaodm]",
+/*    @ApiOperation(value = "各科室甲级病历占比排行导出[by:gaodm]",
             notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
                     "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
     @PostMapping("/levelPercentGroupByDeptExport")
     @SysLogger("levelPercentGroupByDeptExport")
     public void levelPercentGroupByDeptExport(HttpServletResponse response, @RequestBody @Valid FilterPageVO filterPageVO) {
         consoleExportFacade.levelPercentGroupByDeptExport(response, filterPageVO);
-    }
+    }*/
 
 
-/**
-     * 各模块缺陷占比导出
-     *
-     * @param filterPageVO
-     * @return
-     *//*
 
-    @ApiOperation(value = "各模块缺陷占比导出[by:gaodm]",
-            notes = "type: 统计维度 1-本月,2-本年(必填)<br>" +
-                    "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
-    @PostMapping("/entryCountGroupByCaseExport")
-    @SysLogger("entryCountGroupByCaseExport")
-    public void entryCountGroupByCaseExport(HttpServletResponse response, @RequestBody @Valid FilterPageVO filterPageVO) {
-        consoleExportFacade.entryCountGroupByCaseExport(response, filterPageVO);
-    }
 
-*//**
+/**
      * 关键条目缺陷占比统计导出
      *
      * @param entryStatisticsVO
@@ -261,45 +331,9 @@ public class ConsoleByDeptExportController {
         consoleExportFacade.entryStatisticsExport(response, entryStatisticsVO);
     }
 
-*//**
-     * 缺陷详情质控评分页导出
-     *
-     * @param qcResultShortPageVO
-     * @return
-     *//*
-
-    @ApiOperation(value = "缺陷详情质控评分页导出[by:zhaops]",
-            notes = "behospitalCode: 病历号<br>" +
-                    "patName: 病人姓名 <br>" +
-                    "casesEntryName: 条目名称 <br>" +
-                    "casesEntryId: 条目id <br>" +
-                    "casesName: 模块名称 <br>" +
-                    "casesId: 模块id <br>" +
-                    "behDeptName:科室名称 <br>" +
-                    "doctorId:医生工号 <br>" +
-                    "doctorName:医生姓名 <br>" +
-                    "level: 病历等级 <br>" +
-                    "beHosGT31Days: 住院超过31日标志 <br>" +
-                    "isReject: 单项否决 1-否决,0-非<br>" +
-                    "ruleType: 规则类型 0:无,1:空项,2:错误<br>" +
-                    "checkStatus: 核查状态(1:已核查,0:未核查) <br>" +
-                    "mrStatus: 首页核查状态(1:已核查,0:未核查) <br>" +
-                    "chName: 病历核查人员 <br>" +
-                    "mrName: 首页核查人员 <br>" +
-                    "chTimeStart: 病历核查起始时间 <br>" +
-                    "chTimeEnd: 病历核查截止时间 <br>" +
-                    "mrTimeStart: 首页核查起始时间 <br>" +
-                    "mrTimeEnd: 首页核查截止时间 <br>" +
-                    "startDate: 起始时间 <br>" +
-                    "endDate: 截止时间 <br>" +
-                    "isPlacefile: 是否归档(0:未归档,1:已归档) <br>")
-    @PostMapping("/qcResultShortPageExport")
-    @SysLogger("qcResultShortPageExport")
-    public void qcResultShortPageExport(HttpServletResponse response, @RequestBody @Valid QcResultShortPageVO qcResultShortPageVO) {
-        consoleExportFacade.qcResultShortPageExport(response, qcResultShortPageVO);
-    }
+*/
 
-*//**
+/**
      * 出院人数统计导出
      *
      * @param qcResultShortPageVO

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 1528 - 267
src/main/resources/mapper/BehospitalInfoMapper.xml


+ 1 - 1
src/main/resources/mapper/QcresultInfoMapper.xml

@@ -1865,7 +1865,7 @@
     </select>
 
     <!-- 按模块统计质控缺陷数-科室(分页) -->
-    <select id="entryCountGroupByCaseAndDeptPage" resultType="com.diagbot.dto.DeptNumDTO">
+    <select id="entryCountGroupByCaseAndDeptPage" resultType="com.diagbot.dto.NumDTO">
         SELECT
         t.id,
         t.`NAME`,