Ver código fonte

Merge remote-tracking branch 'origin/dev/20200522temp' into dev/20200522temp

zhoutg 5 anos atrás
pai
commit
bec745e575
29 arquivos alterados com 1419 adições e 651 exclusões
  1. 9 2
      doc/005.20200528v1.2.x/qc_init.sql
  2. 9 0
      pom.xml
  3. 4 10
      src/main/java/com/diagbot/aggregate/MrStatisticsAggregate.java
  4. 2 2
      src/main/java/com/diagbot/aggregate/ResultStatisticsAggregate.java
  5. 3 0
      src/main/java/com/diagbot/config/ResourceServerConfigurer.java
  6. 3 0
      src/main/java/com/diagbot/config/security/UrlAccessDecisionManager.java
  7. 33 0
      src/main/java/com/diagbot/dto/ExportExcelBehospitalDTO.java
  8. 9 0
      src/main/java/com/diagbot/dto/ExportExcelCase.java
  9. 23 0
      src/main/java/com/diagbot/dto/ExportExcelCaseDTO.java
  10. 26 0
      src/main/java/com/diagbot/dto/ExportExcelDTO.java
  11. 17 0
      src/main/java/com/diagbot/dto/ExportExcelMsgDTO.java
  12. 58 0
      src/main/java/com/diagbot/dto/ExportQcresultDTO.java
  13. 29 0
      src/main/java/com/diagbot/dto/QcAbnormalModeDTO.java
  14. 65 0
      src/main/java/com/diagbot/facade/BehospitalInfoFacade.java
  15. 8 7
      src/main/java/com/diagbot/facade/ConsoleByDeptFacade.java
  16. 33 0
      src/main/java/com/diagbot/facade/QcAbnormalFacade.java
  17. 55 27
      src/main/java/com/diagbot/mapper/BehospitalInfoMapper.java
  18. 56 28
      src/main/java/com/diagbot/service/BehospitalInfoService.java
  19. 80 50
      src/main/java/com/diagbot/service/impl/BehospitalInfoServiceImpl.java
  20. 66 0
      src/main/java/com/diagbot/service/impl/ExcelExportStylerUserImpl.java
  21. 143 0
      src/main/java/com/diagbot/util/ExcelUtils.java
  22. 23 0
      src/main/java/com/diagbot/vo/ExportQcresultVO.java
  23. 0 23
      src/main/java/com/diagbot/vo/HomePageFilterVO.java
  24. 22 0
      src/main/java/com/diagbot/vo/QcAbnormalModeVO.java
  25. 32 5
      src/main/java/com/diagbot/web/BehospitalInfoController.java
  26. 11 0
      src/main/java/com/diagbot/web/QcAbnormalController.java
  27. 560 392
      src/main/resources/mapper/BehospitalInfoMapper.xml
  28. 8 0
      src/main/resources/mapper/HomePageMapper.xml
  29. 32 105
      src/main/resources/mapper/QcresultInfoMapper.xml

+ 9 - 2
doc/005.20200528v1.2.x/qc_init.sql

@@ -67,7 +67,11 @@ INSERT INTO `qc_mode` VALUES ('55', '其他', '999', '-1', 'N', '1970-01-01 12:0
 
 ALTER TABLE `sys_task_cron` ADD COLUMN `param` varchar(500) DEFAULT '' COMMENT '参数' AFTER `cron`;
 UPDATE `sys_task_cron` SET `param` = 1,`is_deleted` = 'N' where cron_code = 'TASK_CX';
-UPDATE `sys_task_cron` SET `param` = 3,`is_deleted` = 'N',`remark` = '评分未评分的数据' where cron_code = 'TASK001';
+UPDATE `sys_task_cron` SET `id` = -2,`param` = 3,`is_deleted` = 'N',`remark` = '评分未评分的数据' where cron_code = 'TASK001';
+
+UPDATE `sys_task_cron` SET `id`='-2', `is_deleted`='N', `gmt_create`='1970-01-01 12:00:00', `gmt_modified`='1970-01-01 12:00:00', `creator`='0', `modifier`='0', `cron_code`='TASK001', `cron`='0 0 23 * * ?', `param`='3', `is_used`='1', `remark`='评分未评分的数据' WHERE (`id`='-2');
+UPDATE `sys_task_cron` SET `id`='-1', `is_deleted`='N', `gmt_create`='1970-01-01 12:00:00', `gmt_modified`='1970-01-01 12:00:00', `creator`='0', `modifier`='0', `cron_code`='TASK_CX', `cron`='0 0 22 * * ?', `param`='1', `is_used`='1', `remark`='每天晚上自动评分出院日期之前3天的未评分数据' WHERE (`id`='-1');
+
 
 INSERT INTO `sys_permission`(`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `code`, `permissionUrl`, `method`, `descritpion`, `remark`) VALUES (89, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '条目缺陷占比(内页)', 'FUNC000089', '/console/entryGroupByEntryInnerPage', 'ALL', '控制台-条目缺陷占比(内页)', NULL);
 INSERT INTO `sys_permission`(`id`, `is_deleted`, `gmt_create`, `gmt_modified`, `creator`, `modifier`, `name`, `code`, `permissionUrl`, `method`, `descritpion`, `remark`) VALUES (90, 'N', '1970-01-01 12:00:00', '1970-01-01 12:00:00', '0', '0', '条目缺陷占比-科室(内页)', 'FUNC000090', '/consoleByDept/entryGroupByEntryAndDeptInnerPage', 'ALL', '控制台(科室)-条目缺陷占比-科室(内页)', NULL);
@@ -1041,4 +1045,7 @@ CREATE TABLE `med_module_mapping` (
   PRIMARY KEY (`id`),
   KEY `module_id` (`module_id`),
   KEY `record_id` (`record_id`)
-) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COMMENT='模板与文书映射关系表';
+) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8 COMMENT='模板与文书映射关系表';
+
+
+ALTER TABLE `med_behospital_info` ADD INDEX `idx_hospital_id_behospital_code` (`hospital_id`,`behospital_code`) USING BTREE;

+ 9 - 0
pom.xml

@@ -35,6 +35,7 @@
         <poi.version>4.1.1</poi.version>
         <aggregator.version>1.1.0</aggregator.version>
         <okhttp.version>4.2.2</okhttp.version>
+        <easypoi.version>4.2.0</easypoi.version>
         <docker-maven-plugin.version>1.2.1</docker-maven-plugin.version>
         <docker.image.prefix>192.168.2.236:5000/diagbotcloud</docker.image.prefix>
         <registryUrl>http://192.168.2.236:5000/repository/diagbotcloud/</registryUrl>
@@ -189,6 +190,14 @@
             <version>${aggregator.version}</version>
         </dependency>
 
+        <!-- easypoi -->
+        <dependency>
+            <groupId>cn.afterturn</groupId>
+            <artifactId>easypoi-spring-boot-starter</artifactId>
+            <version>${easypoi.version}</version>
+        </dependency>
+
+
     </dependencies>
 
     <!-- 私有仓库 -->

+ 4 - 10
src/main/java/com/diagbot/aggregate/MrStatisticsAggregate.java

@@ -7,7 +7,6 @@ import com.diagbot.facade.QcresultInfoFacade;
 import com.diagbot.util.BeanUtil;
 import com.diagbot.util.ListUtil;
 import com.diagbot.vo.FilterVO;
-import com.diagbot.vo.HomePageFilterVO;
 import com.diagbot.vo.QcresultFilterVO;
 import com.google.common.collect.Lists;
 import io.github.lvyahui8.spring.annotation.DataConsumer;
@@ -89,15 +88,10 @@ public class MrStatisticsAggregate {
         retMap.put("死亡人数", 0);
         retMap.put("新生儿人数", 0);
         retMap.put("手术病人数", 0);
-        HomePageFilterVO homePageFilterVO = new HomePageFilterVO();
-        BeanUtil.copyProperties(filterVO, homePageFilterVO);
-        Integer totleNum = behospitalInfoFacade.homePageCount(homePageFilterVO);
-        homePageFilterVO.setDeath(1);
-        Integer deathNum = behospitalInfoFacade.homePageCount(homePageFilterVO);
-        homePageFilterVO.setDeath(null);
-        homePageFilterVO.setNewBorn(1);
-        Integer newBornNum = behospitalInfoFacade.homePageCount(homePageFilterVO);
-        Integer operationNum = behospitalInfoFacade.homePageCountForOperation(filterVO);
+        Integer totleNum = behospitalInfoFacade.leaveHosCount(filterVO);
+        Integer deathNum = behospitalInfoFacade.deathCount(filterVO);
+        Integer newBornNum = behospitalInfoFacade.newBornCount(filterVO);
+        Integer operationNum = behospitalInfoFacade.operationCount(filterVO);
         retMap.put("总人数", totleNum);
         retMap.put("死亡人数", deathNum);
         retMap.put("新生儿人数", newBornNum);

+ 2 - 2
src/main/java/com/diagbot/aggregate/ResultStatisticsAggregate.java

@@ -151,7 +151,7 @@ public class ResultStatisticsAggregate {
     }
 
     /**
-     * 各科室缺陷占比
+     * 各科室缺陷占比-全院-首页
      *
      * @param filterVO
      * @return
@@ -159,7 +159,7 @@ public class ResultStatisticsAggregate {
     @DataProvider("entryByDept")
     public List<NumDTO> entryByDept(@InvokeParameter("filterVO") FilterVO filterVO) {
         Integer limitCount = filterVO.getLimitCount();
-        List<NumDTO> numDTOList = behospitalInfoFacade.resultStatisticsByDept2(filterVO);
+        List<NumDTO> numDTOList = behospitalInfoFacade.entryByDept(filterVO);
         if (ListUtil.isNotEmpty(numDTOList)) {
             int totle = numDTOList
                     .stream()

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

@@ -61,6 +61,9 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/qc/behospitalInfo/page_person").permitAll()
                 .antMatchers("/consoleByDept/getDept").permitAll()
                 .antMatchers("/qc/casesEntryHospital/findQcCasesEntry").permitAll()
+                .antMatchers("/qc/behospitalInfo/exportExcel").permitAll()
+                .antMatchers("/qc/behospitalInfo/exportQcresult").permitAll()
+                .antMatchers("/qc/behospitalInfo/exportQcresultByDept").permitAll()
                 .antMatchers("/**").authenticated();
 //                .antMatchers("/**").permitAll();
     }

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

@@ -104,6 +104,9 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/qc/behospitalInfo/page_person", request)
                 || matchers("/consoleByDept/getDept", request)
                 || matchers("/qc/casesEntryHospital/findQcCasesEntry", request)
+                || matchers("/qc/behospitalInfo/exportExcel", request)
+                || matchers("/qc/behospitalInfo/exportQcresult", request)
+                || matchers("/qc/behospitalInfo/exportQcresultByDept", request)
                 || matchers("/", request)) {
             return true;
         }

+ 33 - 0
src/main/java/com/diagbot/dto/ExportExcelBehospitalDTO.java

@@ -0,0 +1,33 @@
+package com.diagbot.dto;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import cn.afterturn.easypoi.excel.annotation.ExcelCollection;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/6/2 19:35
+ */
+@Getter
+@Setter
+public class ExportExcelBehospitalDTO {
+    @Excel(name = "主管医生", needMerge = true)
+    private String behDoctorName;
+    @Excel(name = "患者姓名", needMerge = true)
+    private String patName;
+    @Excel(name = "住院号", needMerge = true)
+    private String behospitalCode;
+    @Excel(name = "入院时间", needMerge = true, exportFormat = "yyyy/MM/dd")
+    private String behospitalDate;
+    @Excel(name = "出院时间", needMerge = true, exportFormat = "yyyy/MM/dd")
+    private String leaveHospitalDate;
+    @Excel(name = "分数", needMerge = true)
+    private String score;
+    @ExcelCollection(name = "")
+    private List<ExportExcelCaseDTO> exportExcelCaseDTOS;
+
+}

+ 9 - 0
src/main/java/com/diagbot/dto/ExportExcelCase.java

@@ -0,0 +1,9 @@
+package com.diagbot.dto;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/6/2 19:47
+ */
+public class ExportExcelCase {
+}

+ 23 - 0
src/main/java/com/diagbot/dto/ExportExcelCaseDTO.java

@@ -0,0 +1,23 @@
+package com.diagbot.dto;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import cn.afterturn.easypoi.excel.annotation.ExcelCollection;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/6/2 19:47
+ */
+@Getter
+@Setter
+public class ExportExcelCaseDTO {
+    @Excel(name = "错误所属区块", needMerge = true)
+    private String caseName;
+    @ExcelCollection(name = "")
+    private List<ExportExcelMsgDTO> exportExcelMsgDTOS;
+
+}

+ 26 - 0
src/main/java/com/diagbot/dto/ExportExcelDTO.java

@@ -0,0 +1,26 @@
+package com.diagbot.dto;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import cn.afterturn.easypoi.excel.annotation.ExcelCollection;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/6/2 19:00
+ */
+@Getter
+@Setter
+public class ExportExcelDTO {
+    @Excel(name = "出院科室", needMerge = true)
+    private String behDeptName;
+    @Excel(name = "平均分数", needMerge = true)
+    private String avgScore;
+    @ExcelCollection(name = "")
+    private List<ExportExcelBehospitalDTO> excelBehospitalDTOS;
+
+
+}

+ 17 - 0
src/main/java/com/diagbot/dto/ExportExcelMsgDTO.java

@@ -0,0 +1,17 @@
+package com.diagbot.dto;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/6/2 19:47
+ */
+@Getter
+@Setter
+public class ExportExcelMsgDTO {
+    @Excel(name = "存在问题", isWrap = false)
+    private String msg;
+}

+ 58 - 0
src/main/java/com/diagbot/dto/ExportQcresultDTO.java

@@ -0,0 +1,58 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/6/2 19:57
+ */
+@Getter
+@Setter
+public class ExportQcresultDTO {
+    /**
+     * 科室编码/科室id
+     */
+    private String deptId;
+    /**
+     * 科室名称
+     */
+    private String deptName;
+    /**
+     * 主管医生名称(主任医生+主治医生)
+     */
+    private String doctorName;
+    /**
+     * 患者姓名
+     */
+    private String patientName;
+    /**
+     * 病历号
+     */
+    private String behospitalCode;
+    /**
+     * 入院日期
+     */
+    private String behospitalDate;
+    /**
+     * 出院日期
+     */
+    private String leaveHospitalDate;
+    /**
+     * 质控评分
+     */
+    private Double scoreRes;
+    /**
+     * 科室质控平均分
+     */
+    private Double averageScore;
+    /**
+     * 存在问题
+     */
+    private String msg;
+    /**
+     * 错误所属区块
+     */
+    private String casesName;
+}

+ 29 - 0
src/main/java/com/diagbot/dto/QcAbnormalModeDTO.java

@@ -0,0 +1,29 @@
+package com.diagbot.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-06-03 10:56
+ */
+@Setter
+@Getter
+public class QcAbnormalModeDTO {
+    /**
+     * 异常描述
+     */
+    private String description;
+
+    private Long modeId;
+    /**
+     * 模块名称
+     */
+    private String modeMame;
+
+
+    private List<QcModeAllDTO> QcModeDatas;
+}

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

@@ -10,6 +10,7 @@ import com.diagbot.dto.AnalyzeDTO;
 import com.diagbot.dto.AnalyzeRunDTO;
 import com.diagbot.dto.BehosDTO;
 import com.diagbot.dto.BehospitalInfoDTO;
+import com.diagbot.dto.ExportExcelDTO;
 import com.diagbot.dto.MedicalRecordDTO;
 import com.diagbot.dto.MsgApiDTO;
 import com.diagbot.dto.MsgDTO;
@@ -27,6 +28,7 @@ import com.diagbot.entity.HomeDiagnoseInfo;
 import com.diagbot.entity.HomeOperationInfo;
 import com.diagbot.entity.HomePage;
 import com.diagbot.entity.MedicalRecord;
+import com.diagbot.entity.SysUserDept;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
@@ -35,6 +37,7 @@ import com.diagbot.util.BeanUtil;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.EncrypDES;
 import com.diagbot.util.EntityUtil;
+import com.diagbot.util.ExcelUtils;
 import com.diagbot.util.ListUtil;
 import com.diagbot.util.MapUtil;
 import com.diagbot.util.StringUtil;
@@ -45,6 +48,8 @@ import com.diagbot.vo.AnalyzeCodeVO;
 import com.diagbot.vo.AnalyzeRunVO;
 import com.diagbot.vo.AnalyzeVO;
 import com.diagbot.vo.BehospitalPageVO;
+import com.diagbot.vo.ExportQcresultVO;
+import com.diagbot.vo.FilterVO;
 import com.diagbot.vo.GetDetailVO;
 import com.diagbot.vo.MedrecVo;
 import com.diagbot.vo.QcResultAlgQueryVO;
@@ -56,6 +61,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
+import javax.servlet.http.HttpServletResponse;
+import java.text.DateFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
@@ -920,4 +927,62 @@ public class BehospitalInfoFacade extends BehospitalInfoServiceImpl {
             behospitalPageVO.setLeaveHosDateEnd(DateUtil.parseDate(endDate));
         }
     }
+
+    public void exportExcelFac(HttpServletResponse response) {
+        List<ExportExcelDTO> res = this.exportExcel();
+        String fileName = "mrqc";
+        ExcelUtils.exportExcelUser(res, null, "病案质控", ExportExcelDTO.class, fileName + ".xls", response);
+    }
+
+    /**
+     * 质控结果导出
+     *
+     * @param response
+     * @param exportQcresultVO
+     */
+    public void exportQcresult(HttpServletResponse response, ExportQcresultVO exportQcresultVO) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        exportQcresultVO.setHospitalId(hospitalId);
+        Date startDate = exportQcresultVO.getLeaveHosDateStart();
+        Date endDate = exportQcresultVO.getLeaveHosDateEnd();
+        //时间间隔7天
+        long interval = 7 * 24 * 60 * 60 * 1000;
+        if (endDate.getTime() < startDate.getTime()) {
+            throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
+        }
+        if (endDate.getTime() - startDate.getTime() > interval) {
+            throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于7天");
+        }
+
+        List<ExportExcelDTO> res = this.exportQcresult(exportQcresultVO);
+        response.setContentType("text/html;charset=UTF-8");
+        ExcelUtils.exportExcel(res, null, "导出sheet1", ExportExcelDTO.class, "测试user.xls", response);
+    }
+
+    /**
+     * 科室质控结果导出
+     *
+     * @param response
+     * @param exportQcresultVO
+     */
+    public void exportQcresultByDept(HttpServletResponse response, ExportQcresultVO exportQcresultVO) {
+        String hospitalId = SysUserUtils.getCurrentHospitalID();
+        String userId = SysUserUtils.getCurrentPrincipleID();
+        exportQcresultVO.setHospitalId(hospitalId);
+        exportQcresultVO.setUserId(Long.valueOf(userId));
+        Date startDate = exportQcresultVO.getLeaveHosDateStart();
+        Date endDate = exportQcresultVO.getLeaveHosDateEnd();
+        //时间间隔7天
+        long interval = 7 * 24 * 60 * 60 * 1000;
+        if (endDate.getTime() < startDate.getTime()) {
+            throw new CommonException(CommonErrorCode.PARAM_ERROR, "截止时间不能小于起始时间");
+        }
+        if (endDate.getTime() - startDate.getTime() > interval) {
+            throw new CommonException(CommonErrorCode.PARAM_ERROR, "统计区间不能大于7天");
+        }
+
+        List<ExportExcelDTO> res = this.exportQcresultByDept(exportQcresultVO);
+        response.setContentType("text/html;charset=UTF-8");
+        ExcelUtils.exportExcel(res, null, "导出sheet1", ExportExcelDTO.class, "测试user.xls", response);
+    }
 }

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

@@ -15,7 +15,6 @@ import com.diagbot.util.SysUserUtils;
 import com.diagbot.vo.FilterOrderByDeptVO;
 import com.diagbot.vo.FilterPageByDeptVO;
 import com.diagbot.vo.FilterVO;
-import com.diagbot.vo.HomePageFilterVO;
 import com.diagbot.vo.QcresultFilterVO;
 import com.google.common.collect.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -68,26 +67,28 @@ public class ConsoleByDeptFacade {
         filterVO.setUserId(Long.valueOf(userId));
         filterVO.setStartDate(startDate);
         filterVO.setEndDate(endDate);
-        HomePageFilterVO homePageFilterVO = new HomePageFilterVO();
-        BeanUtil.copyProperties(filterVO, homePageFilterVO);
         //关联科室
         Map<String, Object> deptMap = getDeptByUser(filterVO);
         if (deptMap == null) {
             return retMap;
         }
         //出院总人数
-        List<NumDTO> totleNumList = behospitalInfoFacade.homePageCountByDept(homePageFilterVO);
+        List<NumDTO> totleNumList = behospitalInfoFacade.leaveHosCountByDept(filterVO);
         Map<String, NumDTO> totleMap = ListUtil.isEmpty(totleNumList)
                 ? new HashMap<>()
                 : EntityUtil.makeEntityMap(totleNumList, "name");
+        //新生儿人数
+        List<NumDTO> newBornNumList = behospitalInfoFacade.newBornCountByDept(filterVO);
+        Map<String, NumDTO> newBornMap = ListUtil.isEmpty(newBornNumList)
+                ? new HashMap<>()
+                : EntityUtil.makeEntityMap(newBornNumList, "name");
         //死亡人数
-        homePageFilterVO.setDeath(1);
-        List<NumDTO> deathNumList = behospitalInfoFacade.homePageCountByDept(homePageFilterVO);
+        List<NumDTO> deathNumList = behospitalInfoFacade.deathCountByDept(filterVO);
         Map<String, NumDTO> deathMap = ListUtil.isEmpty(deathNumList)
                 ? new HashMap<>()
                 : EntityUtil.makeEntityMap(deathNumList, "name");
         //手术人数
-        List<NumDTO> operationNumList = behospitalInfoFacade.homePageCountForOperationByDept(filterVO);
+        List<NumDTO> operationNumList = behospitalInfoFacade.operationCountByDept(filterVO);
         Map<String, NumDTO> operationMap = ListUtil.isEmpty(operationNumList)
                 ? new HashMap<>()
                 : EntityUtil.makeEntityMap(operationNumList, "name");

+ 33 - 0
src/main/java/com/diagbot/facade/QcAbnormalFacade.java

@@ -1,20 +1,27 @@
 package com.diagbot.facade;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.QcAbnormalDTO;
+import com.diagbot.dto.QcAbnormalModeDTO;
+import com.diagbot.dto.QcModeAllDTO;
+import com.diagbot.entity.ModelHospital;
 import com.diagbot.entity.QcAbnormal;
 import com.diagbot.enums.IsDeleteEnum;
 import com.diagbot.service.impl.QcAbnormalServiceImpl;
 import com.diagbot.util.DateUtil;
 import com.diagbot.util.SysUserUtils;
 import com.diagbot.vo.QcAbnormalDelVO;
+import com.diagbot.vo.QcAbnormalModeVO;
 import com.diagbot.vo.QcAbnormalSaveNameVO;
 import com.diagbot.vo.QcAbnormalSaveVO;
 import com.diagbot.vo.QcAbnormalVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
+
 /**
  * @Description:
  * @author: gaodm
@@ -25,6 +32,10 @@ public class QcAbnormalFacade extends QcAbnormalServiceImpl {
 
     @Autowired
     private FilterFacade filterFacade;
+    @Autowired
+    QcModeFacade qcModeFacade;
+    @Autowired
+    ModelHospitalFacade modelHospitalFacade;
     /**
      * 查询异常数据监控信息
      *
@@ -91,4 +102,26 @@ public class QcAbnormalFacade extends QcAbnormalServiceImpl {
                 .set("modifier", SysUserUtils.getCurrentPrincipleID())
         );
     }
+
+
+    public QcAbnormalModeDTO getQcAnnormalMode(QcAbnormalModeVO qcAbnormalModeVO) {
+        QcAbnormalModeDTO data = new QcAbnormalModeDTO();
+
+        QueryWrapper<ModelHospital> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("is_deleted", IsDeleteEnum.N.getKey())
+                .eq("hospital_id", SysUserUtils.getCurrentHospitalID())
+                .eq("hospital_model_name", qcAbnormalModeVO.getDescription());
+        ModelHospital modeHospital = modelHospitalFacade.getOne(queryWrapper);
+        List<QcModeAllDTO> dataMode = qcModeFacade.getModeAll();
+        data.setQcModeDatas(dataMode);
+        data.setDescription(qcAbnormalModeVO.getDescription());
+        if(modeHospital==null){
+            data.setModeId(0L);
+            data.setModeMame("");
+        }else {
+            data.setModeId(modeHospital.getStandModelId());
+            data.setModeMame(modeHospital.getStandModelName());
+        }
+        return data;
+    }
 }

+ 55 - 27
src/main/java/com/diagbot/mapper/BehospitalInfoMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.BehospitalInfoDTO;
 import com.diagbot.dto.DeptNumDTO;
+import com.diagbot.dto.ExportExcelDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
 import com.diagbot.dto.MsgDTO;
 import com.diagbot.dto.NumDTO;
@@ -11,14 +12,14 @@ import com.diagbot.entity.BehospitalInfo;
 import com.diagbot.vo.AnalyzeCodeVO;
 import com.diagbot.vo.AnalyzeVO;
 import com.diagbot.vo.BehospitalPageVO;
+import com.diagbot.vo.ExportQcresultVO;
 import com.diagbot.vo.FilterOrderByDeptVO;
 import com.diagbot.vo.FilterOrderVO;
 import com.diagbot.vo.FilterPageByDeptVO;
 import com.diagbot.vo.FilterPageVO;
 import com.diagbot.vo.FilterVO;
-import com.diagbot.vo.HomePageFilterVO;
-import org.apache.ibatis.annotations.Param;
 import com.diagbot.vo.TaskVO;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -39,82 +40,90 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
     public List<MsgDTO> getMsgByEntryCode(AnalyzeCodeVO analyzeCodeVO);
 
     /**
-     * 缺陷排行列表统计
+     * 各科室缺陷占比-全院-首页
      *
      * @param filterVO
      * @return
      */
-    public List<NumDTO> resultStatistics(FilterVO filterVO);
+    public List<NumDTO> entryByDept(FilterVO filterVO);
 
     /**
-     * 各科室缺陷占比
+     * 质控结果缺陷总数查询
      *
      * @param filterVO
      * @return
      */
-    public List<NumDTO> resultStatisticsByDept(FilterVO filterVO);
+    public int getTotleResultNum(FilterVO filterVO);
+
+    public List<BehospitalInfo> getNoGrade(TaskVO taskVO);
+
+    IPage<BehospitalInfoDTO> getPageByDept(BehospitalPageVO behospitalPageVO);
+
+    IPage<BehospitalInfoDTO> getPageByPerson(BehospitalPageVO behospitalPageVO);
 
     /**
-     * 缺陷排行列表统计-百分比未计算
+     * 出院总人数统计-全院-首页
      *
      * @param filterVO
      * @return
      */
-    public List<NumDTO> resultStatistics2(FilterVO filterVO);
+    public int leaveHosCount(FilterVO filterVO);
 
     /**
-     * 各科室缺陷占比-百分比未计算
+     * 新生儿出院人数统计-全院-首页
      *
      * @param filterVO
      * @return
      */
-    public List<NumDTO> resultStatisticsByDept2(FilterVO filterVO);
+    public int newBornCount(FilterVO filterVO);
 
     /**
-     * 缺陷总数
+     * 死亡人数统计-全院-首页
      *
      * @param filterVO
      * @return
      */
-    public int getTotleResultNum(FilterVO filterVO);
-
-    public List<BehospitalInfo> getNoGrade(TaskVO taskVO);
-
-    IPage<BehospitalInfoDTO> getPageByDept(BehospitalPageVO behospitalPageVO);
+    public int deathCount(FilterVO filterVO);
 
-    IPage<BehospitalInfoDTO> getPageByPerson(BehospitalPageVO behospitalPageVO);
+    /**
+     * 手术人数统计-全院-首页
+     *
+     * @param filterVO
+     * @return
+     */
+    public int operationCount(FilterVO filterVO);
 
     /**
-     * 病案首页相关病历数统计
+     * 出院总人数统计-科室-首页
      *
-     * @param homePageFilterVO
+     * @param filterVO
      * @return
      */
-    public int homePageCount(HomePageFilterVO homePageFilterVO);
+    public List<NumDTO> leaveHosCountByDept(FilterVO filterVO);
 
     /**
-     * 手术病历数统计
+     * 新生儿出院人数统计-科室-首页
      *
      * @param filterVO
      * @return
      */
-    public int homePageCountForOperation(FilterVO filterVO);
+    public List<NumDTO> newBornCountByDept(FilterVO filterVO);
 
     /**
-     * 按科室统计病案首页病历数
+     * 死亡人数统计-科室-首页
      *
-     * @param homePageFilterVO
+     * @param filterVO
      * @return
      */
-    public List<NumDTO> homePageCountByDept(HomePageFilterVO homePageFilterVO);
+    public List<NumDTO> deathCountByDept(FilterVO filterVO);
 
     /**
-     * 按科室统计病案首页手术病历数
+     * 手术人数统计-科室-首页
      *
      * @param filterVO
      * @return
      */
-    public List<NumDTO> homePageCountForOperationByDept(FilterVO filterVO);
+    public List<NumDTO> operationCountByDept(FilterVO filterVO);
 
     /**
      * 各科室缺陷占比排行(分页)
@@ -171,4 +180,23 @@ public interface BehospitalInfoMapper extends BaseMapper<BehospitalInfo> {
      * @return
      */
     public List<LevelStatisticsDTO> levelStatisticsByDeptClass(FilterOrderVO filterOrderVO);
+
+
+    List<ExportExcelDTO> exportExcel();
+
+    /**
+     * 质控评分导出到excel
+     *
+     * @param exportQcresultVO
+     * @return
+     */
+    public List<ExportExcelDTO> exportQcresult(ExportQcresultVO exportQcresultVO);
+
+    /**
+     * 科室质控评分导出到excel
+     *
+     * @param exportQcresultVO
+     * @return
+     */
+    public List<ExportExcelDTO> exportQcresultByDept(ExportQcresultVO exportQcresultVO);
 }

+ 56 - 28
src/main/java/com/diagbot/service/BehospitalInfoService.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.dto.BehospitalInfoDTO;
 import com.diagbot.dto.DeptNumDTO;
+import com.diagbot.dto.ExportExcelDTO;
+import com.diagbot.dto.ExportQcresultDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
 import com.diagbot.dto.MsgDTO;
 import com.diagbot.dto.NumDTO;
@@ -11,14 +13,14 @@ import com.diagbot.entity.BehospitalInfo;
 import com.diagbot.vo.AnalyzeCodeVO;
 import com.diagbot.vo.AnalyzeVO;
 import com.diagbot.vo.BehospitalPageVO;
+import com.diagbot.vo.ExportQcresultVO;
 import com.diagbot.vo.FilterOrderByDeptVO;
 import com.diagbot.vo.FilterOrderVO;
 import com.diagbot.vo.FilterPageByDeptVO;
 import com.diagbot.vo.FilterPageVO;
 import com.diagbot.vo.FilterVO;
-import com.diagbot.vo.HomePageFilterVO;
-import org.apache.ibatis.annotations.Param;
 import com.diagbot.vo.TaskVO;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -39,83 +41,91 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
     public List<MsgDTO> getMsgByEntryCode(AnalyzeCodeVO analyzeCodeVO);
 
     /**
-     * 缺陷排行列表统计
+     * 各科室缺陷占比-全院-首页
      *
      * @param filterVO
      * @return
      */
-    public List<NumDTO> resultStatistics(FilterVO filterVO);
+    public List<NumDTO> entryByDept(FilterVO filterVO);
 
     /**
-     * 各科室缺陷占比
+     * 质控结果缺陷总数查询
      *
      * @param filterVO
      * @return
      */
-    public List<NumDTO> resultStatisticsByDept(FilterVO filterVO);
+    public int getTotleResultNum(FilterVO filterVO);
+
+
+    public List<BehospitalInfo> getNoGrade(TaskVO taskVO);
+
+    IPage<BehospitalInfoDTO> getPageByDept(BehospitalPageVO behospitalPageVO);
+
+    IPage<BehospitalInfoDTO> getPageByPerson(BehospitalPageVO behospitalPageVO);
 
     /**
-     * 缺陷排行列表统计-百分比未计算
+     * 出院总人数统计-全院-首页
      *
      * @param filterVO
      * @return
      */
-    public List<NumDTO> resultStatistics2(FilterVO filterVO);
+    public int leaveHosCount(FilterVO filterVO);
 
     /**
-     * 各科室缺陷占比-百分比未计算
+     * 新生儿出院人数统计-全院-首页
      *
      * @param filterVO
      * @return
      */
-    public List<NumDTO> resultStatisticsByDept2(FilterVO filterVO);
+    public int newBornCount(FilterVO filterVO);
 
     /**
-     * 缺陷总数
+     * 死亡人数统计-全院-首页
      *
      * @param filterVO
      * @return
      */
-    public int getTotleResultNum(FilterVO filterVO);
-
-
-    public List<BehospitalInfo> getNoGrade(TaskVO taskVO);
+    public int deathCount(FilterVO filterVO);
 
-    IPage<BehospitalInfoDTO> getPageByDept(BehospitalPageVO behospitalPageVO);
-
-    IPage<BehospitalInfoDTO> getPageByPerson(BehospitalPageVO behospitalPageVO);
+    /**
+     * 手术人数统计-全院-首页
+     *
+     * @param filterVO
+     * @return
+     */
+    public int operationCount(FilterVO filterVO);
 
     /**
-     * 病案首页相关病历数统计
+     * 出院总人数统计-科室-首页
      *
-     * @param homePageFilterVO
+     * @param filterVO
      * @return
      */
-    public int homePageCount(HomePageFilterVO homePageFilterVO);
+    public List<NumDTO> leaveHosCountByDept(FilterVO filterVO);
 
     /**
-     * 手术病历数统计
+     * 新生儿出院人数统计-科室-首页
      *
      * @param filterVO
      * @return
      */
-    public int homePageCountForOperation(FilterVO filterVO);
+    public List<NumDTO> newBornCountByDept(FilterVO filterVO);
 
     /**
-     * 按科室统计病案首页病历数
+     * 死亡人数统计-科室-首页
      *
-     * @param homePageFilterVO
+     * @param filterVO
      * @return
      */
-    public List<NumDTO> homePageCountByDept(HomePageFilterVO homePageFilterVO);
+    public List<NumDTO> deathCountByDept(FilterVO filterVO);
 
     /**
-     * 按科室统计病案首页手术病历数
+     * 手术人数统计-科室-首页
      *
      * @param filterVO
      * @return
      */
-    public List<NumDTO> homePageCountForOperationByDept(FilterVO filterVO);
+    public List<NumDTO> operationCountByDept(FilterVO filterVO);
 
     /**
      * 各科室缺陷占比排行(分页)
@@ -172,4 +182,22 @@ public interface BehospitalInfoService extends IService<BehospitalInfo> {
      * @return
      */
     public List<LevelStatisticsDTO> levelStatisticsByDeptClass(FilterOrderVO filterOrderVO);
+
+    List<ExportExcelDTO> exportExcel();
+
+    /**
+     * 质控评分导出到excel
+     *
+     * @param exportQcresultVO
+     * @return
+     */
+    public List<ExportExcelDTO> exportQcresult(ExportQcresultVO exportQcresultVO);
+
+    /**
+     * 科室质控评分导出到excel
+     *
+     * @param exportQcresultVO
+     * @return
+     */
+    public List<ExportExcelDTO> exportQcresultByDept(ExportQcresultVO exportQcresultVO);
 }

+ 80 - 50
src/main/java/com/diagbot/service/impl/BehospitalInfoServiceImpl.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.dto.BehospitalInfoDTO;
 import com.diagbot.dto.DeptNumDTO;
+import com.diagbot.dto.ExportQcresultDTO;
+import com.diagbot.dto.ExportExcelDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
 import com.diagbot.dto.MsgDTO;
 import com.diagbot.dto.NumDTO;
@@ -13,12 +15,12 @@ import com.diagbot.service.BehospitalInfoService;
 import com.diagbot.vo.AnalyzeCodeVO;
 import com.diagbot.vo.AnalyzeVO;
 import com.diagbot.vo.BehospitalPageVO;
+import com.diagbot.vo.ExportQcresultVO;
 import com.diagbot.vo.FilterOrderByDeptVO;
 import com.diagbot.vo.FilterOrderVO;
 import com.diagbot.vo.FilterPageByDeptVO;
 import com.diagbot.vo.FilterPageVO;
 import com.diagbot.vo.FilterVO;
-import com.diagbot.vo.HomePageFilterVO;
 import com.diagbot.vo.TaskVO;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.stereotype.Service;
@@ -52,117 +54,120 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
     }
 
     /**
-     * 缺陷排行列表统计
+     * 各科室缺陷占比-全院-首页
      *
      * @param filterVO
      * @return
      */
     @Override
-    public List<NumDTO> resultStatistics(FilterVO filterVO) {
-        return baseMapper.resultStatistics(filterVO);
+    public List<NumDTO> entryByDept(FilterVO filterVO) {
+        return baseMapper.entryByDept(filterVO);
     }
 
     /**
-     * 各科室缺陷占比
+     * 质控结果缺陷总数查询
      *
      * @param filterVO
      * @return
      */
     @Override
-    public List<NumDTO> resultStatisticsByDept(FilterVO filterVO) {
-        return baseMapper.resultStatisticsByDept(filterVO);
+    public int getTotleResultNum(FilterVO filterVO) {
+        return baseMapper.getTotleResultNum(filterVO);
+    }
+
+    @Override
+    public List<BehospitalInfo> getNoGrade(TaskVO taskVO) {
+        return baseMapper.getNoGrade(taskVO);
+    }
+
+    @Override
+    public IPage<BehospitalInfoDTO> getPageByDept(BehospitalPageVO behospitalPageVO) {
+        return baseMapper.getPageByDept(behospitalPageVO);
+    }
+
+    @Override
+    public IPage<BehospitalInfoDTO> getPageByPerson(BehospitalPageVO behospitalPageVO) {
+        return baseMapper.getPageByPerson(behospitalPageVO);
     }
 
     /**
-     * 缺陷排行列表统计-百分比未计算
+     * 出院总人数统计-全院-首页
      *
      * @param filterVO
      * @return
      */
-    @Override
-    public List<NumDTO> resultStatistics2(FilterVO filterVO) {
-        return baseMapper.resultStatistics2(filterVO);
+    public int leaveHosCount(FilterVO filterVO) {
+        return baseMapper.leaveHosCount(filterVO);
     }
 
     /**
-     * 各科室缺陷占比-百分比未计算
+     * 新生儿出院人数统计-全院-首页
      *
      * @param filterVO
      * @return
      */
-    @Override
-    public List<NumDTO> resultStatisticsByDept2(FilterVO filterVO) {
-        return baseMapper.resultStatisticsByDept2(filterVO);
+    public int newBornCount(FilterVO filterVO) {
+        return baseMapper.newBornCount(filterVO);
     }
 
     /**
-     * 缺陷总数
+     * 死亡人数统计-全院-首页
      *
      * @param filterVO
      * @return
      */
-    @Override
-    public int getTotleResultNum(FilterVO filterVO) {
-        return baseMapper.getTotleResultNum(filterVO);
+    public int deathCount(FilterVO filterVO) {
+        return baseMapper.deathCount(filterVO);
     }
 
-    @Override
-    public List<BehospitalInfo> getNoGrade(TaskVO taskVO) {
-        return baseMapper.getNoGrade(taskVO);
-    }
-
-    @Override
-    public IPage<BehospitalInfoDTO> getPageByDept(BehospitalPageVO behospitalPageVO) {
-        return baseMapper.getPageByDept(behospitalPageVO);
-    }
-
-    @Override
-    public IPage<BehospitalInfoDTO> getPageByPerson(BehospitalPageVO behospitalPageVO) {
-        return baseMapper.getPageByPerson(behospitalPageVO);
+    /**
+     * 手术人数统计-全院-首页
+     *
+     * @param filterVO
+     * @return
+     */
+    public int operationCount(FilterVO filterVO) {
+        return baseMapper.operationCount(filterVO);
     }
 
     /**
-     * 病案首页相关病历数统计
+     * 出院总人数统计-科室-首页
      *
-     * @param homePageFilterVO
+     * @param filterVO
      * @return
      */
-    @Override
-    public int homePageCount(HomePageFilterVO homePageFilterVO) {
-        return baseMapper.homePageCount(homePageFilterVO);
+    public List<NumDTO> leaveHosCountByDept(FilterVO filterVO) {
+        return baseMapper.leaveHosCountByDept(filterVO);
     }
 
     /**
-     * 手术病历数统计
+     * 新生儿出院人数统计-科室-首页
      *
      * @param filterVO
      * @return
      */
-    @Override
-    public int homePageCountForOperation(FilterVO filterVO) {
-        return baseMapper.homePageCountForOperation(filterVO);
+    public List<NumDTO> newBornCountByDept(FilterVO filterVO) {
+        return baseMapper.newBornCountByDept(filterVO);
     }
 
     /**
-     * 按科室统计病案首页病历数
+     * 死亡人数统计-科室-首页
      *
-     * @param homePageFilterVO
+     * @param filterVO
      * @return
      */
-    @Override
-    public List<NumDTO> homePageCountByDept(HomePageFilterVO homePageFilterVO) {
-        return baseMapper.homePageCountByDept(homePageFilterVO);
+    public List<NumDTO> deathCountByDept(FilterVO filterVO) {
+        return baseMapper.deathCountByDept(filterVO);
     }
 
     /**
-     * 按科室统计病案首页手术病历数
+     * 手术人数统计-科室-首页
      *
      * @param filterVO
      * @return
      */
-    @Override
-    public List<NumDTO> homePageCountForOperationByDept(FilterVO filterVO) {
-        return baseMapper.homePageCountForOperationByDept(filterVO);
+    public List<NumDTO> operationCountByDept(FilterVO filterVO) {
+        return baseMapper.operationCountByDept(filterVO);
     }
 
     /**
@@ -240,4 +245,29 @@ public class BehospitalInfoServiceImpl extends ServiceImpl<BehospitalInfoMapper,
     public List<LevelStatisticsDTO> levelStatisticsByDeptClass(FilterOrderVO filterOrderVO) {
         return baseMapper.levelStatisticsByDeptClass(filterOrderVO);
     }
+
+    @Override
+    public List<ExportExcelDTO> exportExcel(){
+        return baseMapper.exportExcel();
+    }
+
+    /**
+     * 质控评分导出到excel
+     *
+     * @param exportQcresultVO
+     * @return
+     */
+    public List<ExportExcelDTO> exportQcresult(ExportQcresultVO exportQcresultVO) {
+        return baseMapper.exportQcresult(exportQcresultVO);
+    }
+
+    /**
+     * 科室质控评分导出到excel
+     *
+     * @param exportQcresultVO
+     * @return
+     */
+    public List<ExportExcelDTO> exportQcresultByDept(ExportQcresultVO exportQcresultVO){
+        return baseMapper.exportQcresultByDept(exportQcresultVO);
+    }
 }

+ 66 - 0
src/main/java/com/diagbot/service/impl/ExcelExportStylerUserImpl.java

@@ -0,0 +1,66 @@
+package com.diagbot.service.impl;
+
+import cn.afterturn.easypoi.excel.export.styler.AbstractExcelExportStyler;
+import cn.afterturn.easypoi.excel.export.styler.IExcelExportStyler;
+import org.apache.poi.ss.usermodel.CellStyle;
+import org.apache.poi.ss.usermodel.Font;
+import org.apache.poi.ss.usermodel.HorizontalAlignment;
+import org.apache.poi.ss.usermodel.VerticalAlignment;
+import org.apache.poi.ss.usermodel.Workbook;
+
+/**
+ * @Description:
+ * @author: gaodm
+ * @time: 2020/6/3 11:45
+ */
+public class ExcelExportStylerUserImpl extends AbstractExcelExportStyler implements IExcelExportStyler {
+    public ExcelExportStylerUserImpl(Workbook workbook) {
+        super.createStyles(workbook);
+    }
+
+    public CellStyle getTitleStyle(short color) {
+        CellStyle titleStyle = this.workbook.createCellStyle();
+        titleStyle.setAlignment(HorizontalAlignment.CENTER);
+        titleStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+        titleStyle.setWrapText(true);
+        return titleStyle;
+    }
+
+    public CellStyle stringSeptailStyle(Workbook workbook, boolean isWarp) {
+        CellStyle style = workbook.createCellStyle();
+        style.setAlignment(HorizontalAlignment.CENTER);
+        style.setVerticalAlignment(VerticalAlignment.CENTER);
+        style.setDataFormat(STRING_FORMAT);
+        if (isWarp) {
+            style.setWrapText(true);
+        } else {
+            style.setAlignment(HorizontalAlignment.LEFT);
+        }
+
+        return style;
+    }
+
+    public CellStyle getHeaderStyle(short color) {
+        CellStyle titleStyle = this.workbook.createCellStyle();
+        Font font = this.workbook.createFont();
+        font.setFontHeightInPoints((short) 12);
+        titleStyle.setFont(font);
+        titleStyle.setAlignment(HorizontalAlignment.CENTER);
+        titleStyle.setVerticalAlignment(VerticalAlignment.CENTER);
+        return titleStyle;
+    }
+
+    public CellStyle stringNoneStyle(Workbook workbook, boolean isWarp) {
+        CellStyle style = workbook.createCellStyle();
+        style.setAlignment(HorizontalAlignment.CENTER);
+        style.setVerticalAlignment(VerticalAlignment.CENTER);
+        style.setDataFormat(STRING_FORMAT);
+        if (isWarp) {
+            style.setWrapText(true);
+        } else {
+            style.setAlignment(HorizontalAlignment.LEFT);
+        }
+
+        return style;
+    }
+}

+ 143 - 0
src/main/java/com/diagbot/util/ExcelUtils.java

@@ -0,0 +1,143 @@
+package com.diagbot.util;
+
+
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.ExcelImportUtil;
+import cn.afterturn.easypoi.excel.entity.ExportParams;
+import cn.afterturn.easypoi.excel.entity.ImportParams;
+import cn.afterturn.easypoi.excel.entity.enmus.ExcelType;
+import com.diagbot.exception.CommonErrorCode;
+import com.diagbot.exception.CommonException;
+import com.diagbot.service.impl.ExcelExportStylerUserImpl;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.File;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.util.List;
+import java.util.Map;
+import java.util.NoSuchElementException;
+
+/**
+ * @Description: excel 导入导出工具类
+ * @author: gaodm
+ * @time: 2020/6/2 19:18
+ */
+public class ExcelUtils {
+    public static void exportExcel(List<?> list, String title, String sheetName, Class<?> pojoClass, String fileName,
+                                   boolean isCreateHeader, HttpServletResponse response) {
+        ExportParams exportParams = new ExportParams(title, sheetName);
+        exportParams.setCreateHeadRows(isCreateHeader);
+        defaultExport(list, pojoClass, fileName, response, exportParams);
+    }
+
+    public static void exportExcelUser(List<?> list, String title, String sheetName, Class<?> pojoClass, String fileName,
+                                       HttpServletResponse response) {
+        ExportParams exportParams = new ExportParams(title, sheetName);
+        exportParams.setStyle(ExcelExportStylerUserImpl.class);
+        userExport(list, pojoClass, fileName, response, exportParams);
+    }
+
+    public static void exportExcel(List<?> list, String title, String sheetName, Class<?> pojoClass, String fileName,
+                                   HttpServletResponse response) {
+        defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName));
+    }
+
+    public static void exportExcel(List<Map<String, Object>> list, String fileName, HttpServletResponse response) {
+        defaultExport(list, fileName, response);
+    }
+
+    private static void defaultExport(List<?> list, Class<?> pojoClass, String fileName, HttpServletResponse response,
+                                      ExportParams exportParams) {
+        Workbook workbook = ExcelExportUtil.exportExcel(exportParams, pojoClass, list);
+        if (workbook != null) {
+            ;
+        }
+        downLoadExcel(fileName, response, workbook);
+    }
+
+    private static void userExport(List<?> list, Class<?> pojoClass, String fileName, HttpServletResponse response,
+                                      ExportParams exportParams) {
+        Workbook workbook = ExcelExportUtil.exportExcel(exportParams, pojoClass, list);
+        if (workbook != null) {
+            Sheet sheet = workbook.getSheetAt(0);
+            //列宽设置
+            sheet.setColumnWidth(8, 256*20);
+            sheet.setColumnWidth(9, 256*50);
+            int rowNum = sheet.getLastRowNum();
+            Row row = sheet.getRow(0);
+            for (int i = 1; i <= rowNum; i++) {
+                row = sheet.getRow(i);
+                row.setHeightInPoints(12.8f);
+            }
+        }
+        downLoadExcel(fileName, response, workbook);
+    }
+
+    private static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) {
+        try {
+            response.setCharacterEncoding("UTF-8");
+            response.setHeader("content-Type", "application/vnd.ms-excel");
+            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
+            workbook.write(response.getOutputStream());
+        } catch (IOException e) {
+            // throw new NormalException(e.getMessage());
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "导出Excel异常");
+        }
+    }
+
+    private static void defaultExport(List<Map<String, Object>> list, String fileName, HttpServletResponse response) {
+        Workbook workbook = ExcelExportUtil.exportExcel(list, ExcelType.HSSF);
+        if (workbook != null) {
+            ;
+        }
+        downLoadExcel(fileName, response, workbook);
+    }
+
+    public static <T> List<T> importExcel(String filePath, Integer titleRows, Integer headerRows, Class<T> pojoClass) {
+        if (StringUtils.isBlank(filePath)) {
+            return null;
+        }
+        ImportParams params = new ImportParams();
+        params.setTitleRows(titleRows);
+        params.setHeadRows(headerRows);
+        List<T> list = null;
+        try {
+            list = ExcelImportUtil.importExcel(new File(filePath), pojoClass, params);
+        } catch (NoSuchElementException e) {
+            // throw new NormalException("模板不能为空");
+        } catch (Exception e) {
+            e.printStackTrace();
+            // throw new NormalException(e.getMessage());
+        }
+        return list;
+    }
+
+    public static <T> List<T> importExcel(MultipartFile file, Integer titleRows, Integer headerRows,
+                                          Class<T> pojoClass) {
+        if (file == null) {
+            return null;
+        }
+        ImportParams params = new ImportParams();
+        params.setTitleRows(titleRows);
+        params.setHeadRows(headerRows);
+        List<T> list = null;
+        try {
+            list = ExcelImportUtil.importExcel(file.getInputStream(), pojoClass, params);
+        } catch (NoSuchElementException e) {
+            // throw new NormalException("excel文件不能为空");
+        } catch (Exception e) {
+            // throw new NormalException(e.getMessage());
+            System.out.println(e.getMessage());
+        }
+        return list;
+    }
+
+}

+ 23 - 0
src/main/java/com/diagbot/vo/ExportQcresultVO.java

@@ -0,0 +1,23 @@
+package com.diagbot.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/6/2 20:09
+ */
+@Getter
+@Setter
+public class ExportQcresultVO {
+    private Date leaveHosDateStart;
+    private Date leaveHosDateEnd;
+    @ApiModelProperty(hidden = true)
+    private String hospitalId;
+    @ApiModelProperty(hidden = true)
+    private Long userId;
+}

+ 0 - 23
src/main/java/com/diagbot/vo/HomePageFilterVO.java

@@ -1,23 +0,0 @@
-package com.diagbot.vo;
-
-import lombok.Getter;
-import lombok.Setter;
-
-/**
- * @Description:
- * @Author:zhaops
- * @time: 2020/5/6 11:29
- */
-@Getter
-@Setter
-public class HomePageFilterVO extends FilterVO {
-    /**
-     * 死亡
-     */
-    private Integer death;
-
-    /**
-     * 新生儿
-     */
-    private Integer newBorn;
-}

+ 22 - 0
src/main/java/com/diagbot/vo/QcAbnormalModeVO.java

@@ -0,0 +1,22 @@
+package com.diagbot.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * @author wangfeng
+ * @Description:
+ * @date 2020-06-03 10:56
+ */
+@Setter
+@Getter
+public class QcAbnormalModeVO {
+    /**
+     * 异常描述
+     */
+    @NotBlank(message = "请输入异常数据说明")
+    private String description;
+
+}

+ 32 - 5
src/main/java/com/diagbot/web/BehospitalInfoController.java

@@ -12,6 +12,7 @@ import com.diagbot.vo.AnalyzeApiVO;
 import com.diagbot.vo.AnalyzeRunVO;
 import com.diagbot.vo.AnalyzeVO;
 import com.diagbot.vo.BehospitalPageVO;
+import com.diagbot.vo.ExportQcresultVO;
 import com.diagbot.vo.GetDetailVO;
 import com.diagbot.vo.QcresultVO;
 import com.diagbot.vo.TaskVO;
@@ -25,6 +26,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import springfox.documentation.annotations.ApiIgnore;
 
+import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.util.Map;
 
@@ -109,7 +111,7 @@ public class BehospitalInfoController {
     @PostMapping("/analyze_api")
     @SysLogger("analyze_api")
     @Transactional
-//    @ApiIgnore
+    //    @ApiIgnore
     public RespDTO<Map<String, Object>> analyzeApi(@RequestBody AnalyzeApiVO analyzeApiVO) {
         return RespDTO.onSuc(behospitalInfoFacade.analyzeApi(analyzeApiVO));
     }
@@ -120,7 +122,7 @@ public class BehospitalInfoController {
     @PostMapping("/addCase")
     @SysLogger("addCase")
     @Transactional
-    public RespDTO<AnalyzeDTO> addCase(@RequestBody QcresultVO qcresultVO){
+    public RespDTO<AnalyzeDTO> addCase(@RequestBody QcresultVO qcresultVO) {
         qcresultVO.setType(1);
         return RespDTO.onSuc(qcresultInfoFacade.changeQcResult(qcresultVO));
     }
@@ -131,7 +133,7 @@ public class BehospitalInfoController {
     @PostMapping("/delCase")
     @SysLogger("delCase")
     @Transactional
-    public RespDTO<AnalyzeDTO> delCase(@RequestBody QcresultVO qcresultVO){
+    public RespDTO<AnalyzeDTO> delCase(@RequestBody QcresultVO qcresultVO) {
         qcresultVO.setType(2);
         return RespDTO.onSuc(qcresultInfoFacade.changeQcResult(qcresultVO));
     }
@@ -141,7 +143,7 @@ public class BehospitalInfoController {
     @PostMapping("/updCase")
     @SysLogger("updCase")
     @Transactional
-    public RespDTO<AnalyzeDTO> updCase(@RequestBody QcresultVO qcresultVO){
+    public RespDTO<AnalyzeDTO> updCase(@RequestBody QcresultVO qcresultVO) {
         qcresultVO.setType(3);
         return RespDTO.onSuc(qcresultInfoFacade.changeQcResult(qcresultVO));
     }
@@ -154,7 +156,7 @@ public class BehospitalInfoController {
                     "filterFlag: 筛选病历数据:0:未评分的病历,【推荐使用】;1:全部病历,【谨慎使用】")
     @PostMapping("/execule")
     @SysLogger("execule")
-    public RespDTO<Boolean> execule(@RequestBody TaskVO taskVO){
+    public RespDTO<Boolean> execule(@RequestBody TaskVO taskVO) {
         behospitalInfoFacade.execute(taskVO, "");
         return RespDTO.onSuc(true);
     }
@@ -188,4 +190,29 @@ public class BehospitalInfoController {
         IPage<BehospitalInfoDTO> data = behospitalInfoFacade.pagePerson(behospitalPageVO);
         return RespDTO.onSuc(data);
     }
+
+
+    @ApiOperation(value = "导出病历[by:gaodm]",
+            notes = "")
+    @PostMapping("/exportExcel")
+    @SysLogger("exportExcel")
+    public void exportExcel(HttpServletResponse response) {
+        behospitalInfoFacade.exportExcelFac(response);
+    }
+
+    @ApiOperation(value = "质控结果导出[by:zhaops]",
+            notes = "")
+    @PostMapping("/exportQcresult")
+    @SysLogger("exportQcresult")
+    public void exportQcresult(HttpServletResponse response, @RequestBody ExportQcresultVO exportQcresultVO) {
+        behospitalInfoFacade.exportQcresult(response, exportQcresultVO);
+    }
+
+    @ApiOperation(value = "科室质控结果导出[by:zhaops]",
+            notes = "")
+    @PostMapping("/exportQcresultByDept")
+    @SysLogger("exportQcresultByDept")
+    public void exportQcresultByDept(HttpServletResponse response, @RequestBody ExportQcresultVO exportQcresultVO) {
+        behospitalInfoFacade.exportQcresultByDept(response, exportQcresultVO);
+    }
 }

+ 11 - 0
src/main/java/com/diagbot/web/QcAbnormalController.java

@@ -4,9 +4,11 @@ package com.diagbot.web;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.dto.QcAbnormalDTO;
+import com.diagbot.dto.QcAbnormalModeDTO;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.facade.QcAbnormalFacade;
 import com.diagbot.vo.QcAbnormalDelVO;
+import com.diagbot.vo.QcAbnormalModeVO;
 import com.diagbot.vo.QcAbnormalSaveVO;
 import com.diagbot.vo.QcAbnormalVO;
 import io.swagger.annotations.Api;
@@ -66,4 +68,13 @@ public class QcAbnormalController {
     public RespDTO<Boolean> delQcAnnormal(@RequestBody @Valid QcAbnormalDelVO qcAbnormalDelVO) {
         return RespDTO.onSuc(qcAbnormalFacade.delQcAnnormal(qcAbnormalDelVO));
     }
+
+    @ApiOperation(value = "根据id查询数据模块信息[by:wangfeng]",
+            notes = "description: 异常说明"
+                    )
+    @PostMapping("/getQcAnnormalMode")
+    @SysLogger("getQcAnnormalMode")
+    public RespDTO<QcAbnormalModeDTO> getQcAnnormalMode(@RequestBody @Valid QcAbnormalModeVO qcAbnormalModeVO) {
+        return RespDTO.onSuc(qcAbnormalFacade.getQcAnnormalMode(qcAbnormalModeVO));
+    }
 }

Diferenças do arquivo suprimidas por serem muito extensas
+ 560 - 392
src/main/resources/mapper/BehospitalInfoMapper.xml


+ 8 - 0
src/main/resources/mapper/HomePageMapper.xml

@@ -154,6 +154,7 @@
         AND a.behospital_code = b.behospital_code
         AND a.is_deleted = 'N'
         AND b.is_deleted = 'N'
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="hospitalId != null and hospitalId != ''">
             AND a.hospital_id = #{hospitalId}
@@ -185,6 +186,7 @@
         AND a.behospital_code = b.behospital_code
         AND a.is_deleted = 'N'
         AND b.is_deleted = 'N'
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="hospitalId != null and hospitalId != ''">
             AND a.hospital_id = #{hospitalId}
@@ -228,6 +230,7 @@
         AND a.behospital_code = b.behospital_code
         AND a.is_deleted = 'N'
         AND b.is_deleted = 'N'
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="filterPageByAverageVO.hospitalId != null and filterPageByAverageVO.hospitalId != ''">
             AND a.hospital_id = #{filterPageByAverageVO.hospitalId}
@@ -261,6 +264,7 @@
         AND a.behospital_code = b.behospital_code
         AND a.is_deleted = 'N'
         AND b.is_deleted = 'N'
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="filterPageByAverageVO.hospitalId != null and filterPageByAverageVO.hospitalId != ''">
             AND a.hospital_id = #{filterPageByAverageVO.hospitalId}
@@ -294,6 +298,7 @@
         AND a.behospital_code = b.behospital_code
         AND a.is_deleted = 'N'
         AND b.is_deleted = 'N'
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="filterPageByAverageVO.hospitalId != null and filterPageByAverageVO.hospitalId != ''">
             AND a.hospital_id = #{filterPageByAverageVO.hospitalId}
@@ -350,6 +355,7 @@
         AND a.behospital_code = b.behospital_code
         AND a.is_deleted = 'N'
         AND b.is_deleted = 'N'
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="filterPageByAverageVO.hospitalId != null and filterPageByAverageVO.hospitalId != ''">
             AND a.hospital_id = #{filterPageByAverageVO.hospitalId}
@@ -383,6 +389,7 @@
         AND a.behospital_code = b.behospital_code
         AND a.is_deleted = 'N'
         AND b.is_deleted = 'N'
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="filterPageByAverageVO.hospitalId != null and filterPageByAverageVO.hospitalId != ''">
             AND a.hospital_id = #{filterPageByAverageVO.hospitalId}
@@ -416,6 +423,7 @@
         AND a.behospital_code = b.behospital_code
         AND a.is_deleted = 'N'
         AND b.is_deleted = 'N'
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="filterPageByAverageVO.hospitalId != null and filterPageByAverageVO.hospitalId != ''">
             AND a.hospital_id = #{filterPageByAverageVO.hospitalId}

+ 32 - 105
src/main/resources/mapper/QcresultInfoMapper.xml

@@ -24,15 +24,11 @@
         count(1)
         FROM
         med_behospital_info a,
-        med_home_page b,
         med_qcresult_info c
         WHERE
-        a.hospital_id = b.hospital_id
-        AND a.behospital_code = b.behospital_code
-        AND a.hospital_id = c.hospital_id
+        a.hospital_id = c.hospital_id
         AND a.behospital_code = c.behospital_code
         AND a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="hospitalId != null and hospitalId != ''">
@@ -58,16 +54,13 @@
         COUNT(*)
         FROM
         med_behospital_info a,
-        med_home_page b,
         med_qcresult_info c
         WHERE
         a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
-        AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
-        AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="hospitalId != null and hospitalId != ''">
             AND a.hospital_id = #{hospitalId}
@@ -100,16 +93,13 @@
         concat( ROUND( sum( c.`level` = '丙' )/ count(*)* 100, 2 ), '%' ) AS thirdPercent
         FROM
         med_behospital_info a,
-        med_home_page b,
         med_qcresult_info c
         WHERE
         a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
-        AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
-        AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="hospitalId != null and hospitalId != ''">
             AND a.hospital_id = #{hospitalId}
@@ -133,27 +123,24 @@
         count(*) AS num
         FROM
         med_behospital_info a,
-        med_home_page b,
         med_qcresult_info c,
         med_qcresult_detail d,
         qc_cases e,
         qc_cases_entry f
         WHERE
         a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
         AND d.is_deleted = 'N'
         AND e.is_deleted = 'N'
         AND f.is_deleted = 'N'
-        AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
         AND a.hospital_id = d.hospital_id
-        AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
         AND a.behospital_code = d.behospital_code
         AND d.cases_id = e.id
         AND d.cases_entry_id = f.id
         AND e.id = f.cases_id
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="hospitalId != null and hospitalId != ''">
             AND a.hospital_id = #{hospitalId}
@@ -185,24 +172,21 @@
         count(*) AS num
         FROM
         med_behospital_info a,
-        med_home_page b,
         med_qcresult_info c,
         med_qcresult_detail d,
         qc_cases_entry e
         WHERE
         a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
         AND d.is_deleted = 'N'
         AND e.is_deleted = 'N'
-        AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
         AND a.hospital_id = d.hospital_id
-        AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
         AND a.behospital_code = d.behospital_code
         AND d.cases_id = e.cases_id
         AND d.cases_entry_id = e.id
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="hospitalId != null and hospitalId != ''">
             AND a.hospital_id = #{hospitalId}
@@ -222,16 +206,13 @@
         count(*) AS mrNum
         FROM
         med_behospital_info a,
-        med_home_page b,
         med_qcresult_info c
         WHERE
         a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
-        AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
-        AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="hospitalId != null and hospitalId != ''">
             AND a.hospital_id = #{hospitalId}
@@ -265,24 +246,21 @@
         count(*) AS num
         FROM
         med_behospital_info a,
-        med_home_page b,
         med_qcresult_info c,
         med_qcresult_detail d,
         qc_cases_entry e
         WHERE
         a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
         AND d.is_deleted = 'N'
         AND e.is_deleted = 'N'
-        AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
         AND a.hospital_id = d.hospital_id
-        AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
         AND a.behospital_code = d.behospital_code
         AND d.cases_id = e.cases_id
         AND d.cases_entry_id = e.id
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="filterPageVO.hospitalId != null and filterPageVO.hospitalId != ''">
             AND a.hospital_id = #{filterPageVO.hospitalId}
@@ -293,6 +271,9 @@
         <if test="filterPageVO.endDate != null and filterPageVO.endDate != ''">
             <![CDATA[AND a.leave_hospital_date < DATE(#{filterPageVO.endDate})]]>
         </if>
+        <if test="filterPageVO.name != null and filterPageVO.name != ''">
+            AND e.name like CONCAT('%', #{filterPageVO.name},'%')
+        </if>
         GROUP BY
         e.id,
         e.NAME
@@ -302,16 +283,13 @@
         count(*) AS mrNum
         FROM
         med_behospital_info a,
-        med_home_page b,
         med_qcresult_info c
         WHERE
         a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
-        AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
-        AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="filterPageVO.hospitalId != null and filterPageVO.hospitalId != ''">
             AND a.hospital_id = #{filterPageVO.hospitalId}
@@ -336,16 +314,13 @@
         count(*) AS num
         FROM
         med_behospital_info a,
-        med_home_page b,
         med_qcresult_info c
         WHERE
         a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
-        AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
-        AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="hospitalId != null and hospitalId != ''">
             AND a.hospital_id = #{hospitalId}
@@ -372,24 +347,21 @@
         e.dept_name as deptClass
         FROM
         med_behospital_info a,
-        med_home_page b,
         med_qcresult_info c,
         bas_dept_info d,
         bas_dept_info e
         WHERE
         a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
         AND d.is_deleted = 'N'
         AND e.is_deleted = 'N'
-        AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
         AND a.hospital_id = d.hospital_id
         AND a.hospital_id = e.hospital_id
-        AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
         AND a.beh_dept_id = d.dept_id
         AND d.parent_dept_id = e.dept_id
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="hospitalId != null and hospitalId != ''">
             AND a.hospital_id = #{hospitalId}
@@ -416,20 +388,17 @@
         COUNT(*) AS num
         FROM
         med_behospital_info a,
-        med_home_page b,
         med_qcresult_info c,
         sys_user_dept d
         WHERE
         a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
         AND d.is_deleted = 'N'
-        AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
         AND a.hospital_id = d.hospital_id
-        AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
         AND a.beh_dept_id = d.dept_id
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="userId!=null">
             AND d.user_id = #{userId}
@@ -464,7 +433,6 @@
         count(*) AS num
         FROM
         med_behospital_info a,
-        med_home_page b,
         med_qcresult_info c,
         med_qcresult_detail d,
         qc_cases e,
@@ -472,23 +440,21 @@
         sys_user_dept g
         WHERE
         a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
         AND d.is_deleted = 'N'
         AND e.is_deleted = 'N'
         AND f.is_deleted = 'N'
         AND g.is_deleted = 'N'
-        AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
         AND a.hospital_id = d.hospital_id
         AND a.hospital_id = g.hospital_id
-        AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
         AND a.behospital_code = d.behospital_code
         AND d.cases_id = e.id
         AND d.cases_entry_id = f.id
         AND e.id = f.cases_id
         AND a.beh_dept_id = g.dept_id
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="userId!=null">
             AND g.user_id = #{userId}
@@ -529,28 +495,25 @@
         count(*) AS num
         FROM
         med_behospital_info a,
-        med_home_page b,
         med_qcresult_info c,
         med_qcresult_detail d,
         qc_cases_entry e,
         sys_user_dept f
         WHERE
         a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
         AND d.is_deleted = 'N'
         AND e.is_deleted = 'N'
         AND f.is_deleted = 'N'
-        AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
         AND a.hospital_id = d.hospital_id
         AND a.hospital_id = f.hospital_id
-        AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
         AND a.behospital_code = d.behospital_code
         AND d.cases_id = e.cases_id
         AND d.cases_entry_id = e.id
         AND a.beh_dept_id = f.dept_id
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="userId!=null">
             AND f.user_id = #{userId}
@@ -577,20 +540,17 @@
         count(*) AS mrNum
         FROM
         med_behospital_info a,
-        med_home_page b,
         med_qcresult_info c,
         sys_user_dept f
         WHERE
         a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
         AND f.is_deleted = 'N'
-        AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
         AND a.hospital_id = f.hospital_id
-        AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
         AND a.beh_dept_id = f.dept_id
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="userId!=null">
             AND f.user_id = #{userId}
@@ -638,28 +598,25 @@
         count(*) AS num
         FROM
         med_behospital_info a,
-        med_home_page b,
         med_qcresult_info c,
         med_qcresult_detail d,
         qc_cases_entry e,
         sys_user_dept f
         WHERE
         a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
         AND d.is_deleted = 'N'
         AND e.is_deleted = 'N'
         AND f.is_deleted = 'N'
-        AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
         AND a.hospital_id = d.hospital_id
         AND a.hospital_id = f.hospital_id
-        AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
         AND a.behospital_code = d.behospital_code
         AND d.cases_id = e.cases_id
         AND d.cases_entry_id = e.id
         AND a.beh_dept_id = f.dept_id
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="filterPageByDeptVO.userId!=null">
             AND f.user_id = #{filterPageByDeptVO.userId}
@@ -676,6 +633,9 @@
         <if test="filterPageByDeptVO.deptName != null and filterPageByDeptVO.deptName != ''">
             AND a.beh_dept_name = #{filterPageByDeptVO.deptName}
         </if>
+        <if test="filterPageByDeptVO.name != null and filterPageByDeptVO.name != ''">
+            AND e.name like CONCAT('%', #{filterPageByDeptVO.name},'%')
+        </if>
         GROUP BY
         e.id,
         e.NAME,
@@ -689,20 +649,17 @@
         count(*) AS mrNum
         FROM
         med_behospital_info a,
-        med_home_page b,
         med_qcresult_info c,
         sys_user_dept f
         WHERE
         a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
         AND f.is_deleted = 'N'
-        AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
         AND a.hospital_id = f.hospital_id
-        AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
         AND a.beh_dept_id = f.dept_id
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="filterPageByDeptVO.userId!=null">
@@ -758,27 +715,24 @@
         count(*) AS num
         FROM
         med_behospital_info a,
-        med_home_page b,
         med_qcresult_info c,
         med_qcresult_detail d,
         qc_cases e,
         qc_cases_entry f
         WHERE
         a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
         AND d.is_deleted = 'N'
         AND e.is_deleted = 'N'
         AND f.is_deleted = 'N'
-        AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
         AND a.hospital_id = d.hospital_id
-        AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
         AND a.behospital_code = d.behospital_code
         AND d.cases_id = e.id
         AND d.cases_entry_id = f.id
         AND e.id = f.cases_id
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="filterPageVO.hospitalId != null and filterPageVO.hospitalId != ''">
             AND a.hospital_id = #{filterPageVO.hospitalId}
@@ -804,16 +758,13 @@
         COUNT(*) AS mrNum
         FROM
         med_behospital_info a,
-        med_home_page b,
         med_qcresult_info c
         WHERE
         a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
-        AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
-        AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="filterPageVO.hospitalId != null and filterPageVO.hospitalId != ''">
             AND a.hospital_id = #{filterPageVO.hospitalId}
@@ -877,7 +828,6 @@
         e.cases_name as casesName
         FROM
         med_behospital_info a,
-        med_home_page b,
         <if test="filterPageVO.casesId != null and filterPageVO.casesId ==243">
             med_qcresult_cases c,
         </if>
@@ -888,16 +838,14 @@
         qc_cases_entry e
         WHERE
         a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
         AND d.is_deleted = 'N'
         and e.is_deleted='N'
-        AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
         and a.hospital_id = d.hospital_id
-        AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
         AND a.behospital_code = d.behospital_code
+        AND a.is_placefile = '1'
         <if test="filterPageVO.casesId != null and filterPageVO.casesId ==243">
             AND c.cases_id = d.cases_id
         </if>
@@ -930,7 +878,6 @@
         count(*) AS totleNum
         FROM
         med_behospital_info a,
-        med_home_page b,
         <if test="filterPageVO.casesId != null and filterPageVO.casesId ==243">
             med_qcresult_cases c,
         </if>
@@ -941,16 +888,14 @@
         qc_cases_entry e
         WHERE
         a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
         AND d.is_deleted = 'N'
         and e.is_deleted='N'
-        AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
         and a.hospital_id = d.hospital_id
-        AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
         AND a.behospital_code = d.behospital_code
+        AND a.is_placefile = '1'
         <if test="filterPageVO.casesId != null and filterPageVO.casesId ==243">
             AND c.cases_id = d.cases_id
         </if>
@@ -999,16 +944,13 @@
         count(*) AS num
         FROM
         med_behospital_info a,
-        med_home_page b,
         med_qcresult_info c
         WHERE
         a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
-        AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
-        AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="filterPageVO.hospitalId != null and filterPageVO.hospitalId != ''">
             AND a.hospital_id = #{filterPageVO.hospitalId}
@@ -1044,16 +986,13 @@
         concat( ROUND( sum( c.`level` = '丙' )/ count(*)* 100, 2 ), '%' ) AS thirdPercent
         FROM
         med_behospital_info a,
-        med_home_page b,
         med_qcresult_info c
         WHERE
         a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
-        AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
-        AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="filterPageVO.hospitalId != null and filterPageVO.hospitalId != ''">
             AND a.hospital_id = #{filterPageVO.hospitalId}
@@ -1105,7 +1044,6 @@
         count(*) AS num
         FROM
         med_behospital_info a,
-        med_home_page b,
         med_qcresult_info c,
         med_qcresult_detail d,
         qc_cases e,
@@ -1113,23 +1051,21 @@
         sys_user_dept g
         WHERE
         a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
         AND d.is_deleted = 'N'
         AND e.is_deleted = 'N'
         AND f.is_deleted = 'N'
         AND g.is_deleted = 'N'
-        AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
         AND a.hospital_id = d.hospital_id
         AND a.hospital_id = g.hospital_id
-        AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
         AND a.behospital_code = d.behospital_code
         AND d.cases_id = e.id
         AND d.cases_entry_id = f.id
         AND e.id = f.cases_id
         AND a.beh_dept_id = g.dept_id
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="filterPageByDeptVO.userId!=null">
             AND g.user_id = #{filterPageByDeptVO.userId}
@@ -1162,20 +1098,17 @@
         COUNT(*) AS mrNum
         FROM
         med_behospital_info a,
-        med_home_page b,
         med_qcresult_info c,
         sys_user_dept d
         WHERE
         a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
         AND d.is_deleted = 'N'
-        AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
         AND a.hospital_id = d.hospital_id
-        AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
         AND a.beh_dept_id = d.dept_id
+        AND a.is_placefile = '1'
         <![CDATA[AND a.qc_type_id <>0 ]]>
         <if test="filterPageByDeptVO.userId!=null">
             AND d.user_id = #{filterPageByDeptVO.userId}
@@ -1250,7 +1183,6 @@
         a.beh_dept_name AS deptName
         FROM
         med_behospital_info a,
-        med_home_page b,
         <if test="filterPageByDeptVO.casesId != null and filterPageByDeptVO.casesId ==243">
             med_qcresult_cases c,
         </if>
@@ -1262,18 +1194,16 @@
         sys_user_dept f
         WHERE
         a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
         AND d.is_deleted = 'N'
         AND e.is_deleted = 'N'
         AND f.is_deleted = 'N'
-        AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
         AND a.hospital_id = d.hospital_id
         AND a.hospital_id = f.hospital_id
-        AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
         AND a.behospital_code = d.behospital_code
+        AND a.is_placefile = '1'
         <if test="filterPageByDeptVO.casesId != null and filterPageByDeptVO.casesId ==243">
             AND c.cases_id = d.cases_id
         </if>
@@ -1313,7 +1243,6 @@
         count(*) AS totleNum
         FROM
         med_behospital_info a,
-        med_home_page b,
         <if test="filterPageByDeptVO.casesId != null and filterPageByDeptVO.casesId ==243">
             med_qcresult_cases c,
         </if>
@@ -1325,18 +1254,16 @@
         sys_user_dept f
         WHERE
         a.is_deleted = 'N'
-        AND b.is_deleted = 'N'
         AND c.is_deleted = 'N'
         AND d.is_deleted = 'N'
         AND e.is_deleted = 'N'
         AND f.is_deleted = 'N'
-        AND a.hospital_id = b.hospital_id
         AND a.hospital_id = c.hospital_id
         AND a.hospital_id = d.hospital_id
         AND a.hospital_id = f.hospital_id
-        AND a.behospital_code = b.behospital_code
         AND a.behospital_code = c.behospital_code
         AND a.behospital_code = d.behospital_code
+        AND a.is_placefile = '1'
         <if test="filterPageByDeptVO.casesId != null and filterPageByDeptVO.casesId ==243">
             AND c.cases_id = d.cases_id
         </if>