浏览代码

导出报表

gaodm 5 年之前
父节点
当前提交
f929a65500

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

@@ -118,6 +118,10 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/console/export/levelExport").permitAll()
                 .antMatchers("/console/entryStatistics").permitAll()
                 .antMatchers("/console/export/levelExport_TZ").permitAll()
+                .antMatchers("/console/export/getAverageDayNumExport").permitAll()
+                .antMatchers("/console/export/getAverageFeeExport").permitAll()
+                .antMatchers("/console/export/levelPercentGroupByDeptExport").permitAll()
+                .antMatchers("/console/export/entryCountGroupByEntryExport").permitAll()
                 .antMatchers("/qc/data/sendDoctorInfos").permitAll()
                 .antMatchers("/qc/data/sendDeptInfos").permitAll()
                 .antMatchers("/qc/data/sendRecordTypes").permitAll()

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

@@ -161,6 +161,10 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/console/export/levelExport", request)
                 || matchers("/console/entryStatistics", request)
                 || matchers("/console/export/levelExport_TZ", request)
+                || matchers("/console/export/getAverageDayNumExport", request)
+                || matchers("/console/export/getAverageFeeExport", request)
+                || matchers("/console/export/levelPercentGroupByDeptExport", request)
+                || matchers("/console/export/levelPercentGroupByDeptExport", request)
                 || matchers("/qc/data/sendDoctorInfos", request)
                 || matchers("/qc/data/sendDeptInfos", request)
                 || matchers("/qc/data/sendRecordTypes", request)

+ 4 - 0
src/main/java/com/diagbot/dto/AverageStatisticsDTO.java

@@ -1,5 +1,6 @@
 package com.diagbot.dto;
 
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -12,9 +13,12 @@ import lombok.Setter;
 @Setter
 public class AverageStatisticsDTO {
     private String id;
+    @Excel(name = "科室名称", width = 30, orderNum = "1")
     private String name;
     private Integer num;
+    @Excel(name = "本年平均住院天数(天)", width = 15, orderNum = "2")
     private Double averageValue = 0d;
+    @Excel(name = "去年平均住院天数(天)", width = 15, orderNum = "3")
     private Double totleValue = 0d;
     //环比平均值
     private Double lastAverageValue = 0d;

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

@@ -0,0 +1,29 @@
+package com.diagbot.dto;
+
+import cn.afterturn.easypoi.excel.annotation.Excel;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * @Description:
+ * @Author:zhaops
+ * @time: 2020/4/15 19:44
+ */
+@Getter
+@Setter
+public class AverageStatisticsFeeDTO {
+    private String id;
+    @Excel(name = "科室名称", width = 30, orderNum = "1")
+    private String name;
+    private Integer num;
+    @Excel(name = "本年平均住院花费(元)", width = 15, orderNum = "2")
+    private Double averageValue = 0d;
+    @Excel(name = "去年平均住院花费(元)", width = 15, orderNum = "3")
+    private Double totleValue = 0d;
+    //环比平均值
+    private Double lastAverageValue = 0d;
+    //同比平均值
+    private Double lastYearAverageValue = 0d;
+    //科室分类
+    private String deptClass;
+}

+ 3 - 0
src/main/java/com/diagbot/dto/QcResultPercentDTO.java

@@ -1,5 +1,6 @@
 package com.diagbot.dto;
 
+import cn.afterturn.easypoi.excel.annotation.Excel;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -12,11 +13,13 @@ import lombok.Setter;
 @Setter
 public class QcResultPercentDTO {
     private String deptId;
+    @Excel(name = "科室名称", width = 30, orderNum = "1")
     private String deptName;
     private Integer totleNum;
     private Integer firstLevelNum;
     //private Integer secondLevelNum;
     //private Integer thirdLevelNum;
+    @Excel(name = "甲级病历占比", width = 15, orderNum = "2")
     private String firstPercent;
     //private String secondPercent;
     //private String thirdPercent;

+ 66 - 1
src/main/java/com/diagbot/facade/ConsoleExportFacade.java

@@ -1,12 +1,16 @@
 package com.diagbot.facade;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.diagbot.dto.AverageStatisticsDTO;
+import com.diagbot.dto.AverageStatisticsFeeDTO;
 import com.diagbot.dto.EntryNumDTO;
 import com.diagbot.dto.HomePageNumDTO;
 import com.diagbot.dto.LevelStatisticsDTO;
 import com.diagbot.dto.LevelStatisticsTZDTO;
+import com.diagbot.dto.QcResultPercentDTO;
 import com.diagbot.util.ExcelUtils;
 import com.diagbot.vo.FilterOrderVO;
+import com.diagbot.vo.FilterPageByAverageVO;
 import com.diagbot.vo.FilterPageVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -24,7 +28,8 @@ public class ConsoleExportFacade {
 
     @Autowired
     private ConsoleFacade consoleFacade;
-
+    @Autowired
+    private QcCasesFacade qcCasesFacade;
 
     /**
      * 病案首页合格率占比
@@ -76,4 +81,64 @@ public class ConsoleExportFacade {
         String fileName = "各科室缺陷占比-台州.xls";
         ExcelUtils.exportExcel(records, null, "sheet1", LevelStatisticsTZDTO.class, fileName, response, 12.8f);
     }
+
+    /**
+     * 按科室统计平均住院天数导出
+     *
+     * @param filterPageByAverageVO
+     * @return
+     */
+    public void getAverageDayNumExport(HttpServletResponse response, FilterPageByAverageVO filterPageByAverageVO) {
+        filterPageByAverageVO.setCurrent(1L);
+        filterPageByAverageVO.setSize(Long.MAX_VALUE);
+        filterPageByAverageVO.setSearchCount(false);
+        IPage<AverageStatisticsDTO> page = consoleFacade.getAverageDayNumPage(filterPageByAverageVO);
+        String fileName = " 按科室统计平均住院天数.xls";
+        ExcelUtils.exportExcel(page.getRecords(), null, "sheet1", AverageStatisticsDTO.class, fileName, response, 12.8f);
+    }
+
+    /**
+     * 按科室统计平均住院费用导出
+     *
+     * @param filterPageByAverageVO
+     * @return
+     */
+    public void getAverageFeeExport(HttpServletResponse response, FilterPageByAverageVO filterPageByAverageVO) {
+        filterPageByAverageVO.setCurrent(1L);
+        filterPageByAverageVO.setSize(Long.MAX_VALUE);
+        filterPageByAverageVO.setSearchCount(false);
+        IPage<AverageStatisticsFeeDTO> page = consoleFacade.getAverageFeePage(filterPageByAverageVO);
+        String fileName = " 按科室统计平均住院费用.xls";
+        ExcelUtils.exportExcel(page.getRecords(), null, "sheet1", AverageStatisticsFeeDTO.class, fileName, response, 12.8f);
+    }
+
+    /**
+     * 各科室甲级病历占比排行导出
+     *
+     * @param filterPageVO
+     * @return
+     */
+    public void levelPercentGroupByDeptExport(HttpServletResponse response, FilterPageVO filterPageVO) {
+        filterPageVO.setCurrent(1L);
+        filterPageVO.setSize(Long.MAX_VALUE);
+        filterPageVO.setSearchCount(false);
+        IPage<QcResultPercentDTO> page = consoleFacade.levelPercentGroupByDeptPage(filterPageVO);
+        String fileName = " 各科室甲级病历占比排行.xls";
+        ExcelUtils.exportExcel(page.getRecords(), null, "sheet1", QcResultPercentDTO.class, fileName, response, 12.8f);
+    }
+
+    /**
+     * 缺陷详情导出
+     *
+     * @param filterPageVO
+     * @return
+     */
+    public void entryCountGroupByEntryExport(HttpServletResponse response, FilterPageVO filterPageVO) {
+        filterPageVO.setCurrent(1L);
+        filterPageVO.setSize(Long.MAX_VALUE);
+        filterPageVO.setSearchCount(false);
+        IPage<EntryNumDTO> page = consoleFacade.entryCountGroupByEntryPage(filterPageVO);
+        String fileName = "缺陷详情.xls";
+        ExcelUtils.exportExcel(page.getRecords(), null, "sheet1", EntryNumDTO.class, fileName, response, 12.8f);
+    }
 }

+ 3 - 2
src/main/java/com/diagbot/facade/ConsoleFacade.java

@@ -5,6 +5,7 @@ import com.diagbot.aggregate.AverageStatisticsAggregate;
 import com.diagbot.aggregate.MrStatisticsAggregate;
 import com.diagbot.aggregate.ResultStatisticsAggregate;
 import com.diagbot.dto.AverageStatisticsDTO;
+import com.diagbot.dto.AverageStatisticsFeeDTO;
 import com.diagbot.dto.DeptNumDTO;
 import com.diagbot.dto.EntryNumDTO;
 import com.diagbot.dto.EntryStatisticsDTO;
@@ -385,9 +386,9 @@ public class ConsoleFacade {
      * @param filterPageByAverageVO
      * @return
      */
-    public IPage<AverageStatisticsDTO> getAverageFeePage(FilterPageByAverageVO filterPageByAverageVO) {
+    public IPage<AverageStatisticsFeeDTO> getAverageFeePage(FilterPageByAverageVO filterPageByAverageVO) {
         filterFacade.filterPageByAverageVOSet(filterPageByAverageVO);
-        IPage<AverageStatisticsDTO> page = homePageFacade.getAverageFeePage(filterPageByAverageVO);
+        IPage<AverageStatisticsFeeDTO> page = homePageFacade.getAverageFeePage(filterPageByAverageVO);
         return page;
     }
 

+ 2 - 1
src/main/java/com/diagbot/mapper/HomePageMapper.java

@@ -3,6 +3,7 @@ package com.diagbot.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.AverageStatisticsDTO;
+import com.diagbot.dto.AverageStatisticsFeeDTO;
 import com.diagbot.entity.HomePage;
 import com.diagbot.vo.FilterPageByAverageVO;
 import com.diagbot.vo.FilterPageVO;
@@ -51,7 +52,7 @@ public interface HomePageMapper extends BaseMapper<HomePage> {
      * @param filterPageByAverageVO
      * @return
      */
-    public IPage<AverageStatisticsDTO> getAverageFeePage(@Param("filterPageByAverageVO") FilterPageByAverageVO filterPageByAverageVO);
+    public IPage<AverageStatisticsFeeDTO> getAverageFeePage(@Param("filterPageByAverageVO") FilterPageByAverageVO filterPageByAverageVO);
 
     /**
      * 根据病案首页编码、医院编码、病人住院ID-批量更新

+ 2 - 1
src/main/java/com/diagbot/service/HomePageService.java

@@ -2,6 +2,7 @@ package com.diagbot.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.AverageStatisticsDTO;
+import com.diagbot.dto.AverageStatisticsFeeDTO;
 import com.diagbot.entity.HomePage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.diagbot.vo.FilterPageByAverageVO;
@@ -50,5 +51,5 @@ public interface HomePageService extends IService<HomePage> {
      * @param filterPageByAverageVO
      * @return
      */
-    public IPage<AverageStatisticsDTO> getAverageFeePage(@Param("filterPageByAverageVO") FilterPageByAverageVO filterPageByAverageVO);
+    public IPage<AverageStatisticsFeeDTO> getAverageFeePage(@Param("filterPageByAverageVO") FilterPageByAverageVO filterPageByAverageVO);
 }

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

@@ -3,6 +3,7 @@ package com.diagbot.service.impl;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.diagbot.dto.AverageStatisticsDTO;
+import com.diagbot.dto.AverageStatisticsFeeDTO;
 import com.diagbot.entity.HomePage;
 import com.diagbot.mapper.HomePageMapper;
 import com.diagbot.service.HomePageService;
@@ -64,7 +65,7 @@ public class HomePageServiceImpl extends ServiceImpl<HomePageMapper, HomePage> i
      * @param filterPageByAverageVO
      * @return
      */
-    public IPage<AverageStatisticsDTO> getAverageFeePage(@Param("filterPageByAverageVO") FilterPageByAverageVO filterPageByAverageVO) {
+    public IPage<AverageStatisticsFeeDTO> getAverageFeePage(@Param("filterPageByAverageVO") FilterPageByAverageVO filterPageByAverageVO) {
         return baseMapper.getAverageFeePage(filterPageByAverageVO);
     }
 

+ 2 - 1
src/main/java/com/diagbot/web/ConsoleController.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.AverageStatisticsDTO;
+import com.diagbot.dto.AverageStatisticsFeeDTO;
 import com.diagbot.dto.DeptNumDTO;
 import com.diagbot.dto.EntryNumDTO;
 import com.diagbot.dto.EntryStatisticsDTO;
@@ -314,7 +315,7 @@ public class ConsoleController {
                     "dateType: 时间类型 1-本月/本年,2-上月/去年,3-去年本月/去年<br>")
     @PostMapping("/getAverageFeePage")
     @SysLogger("getAverageFeePage")
-    public RespDTO<IPage<AverageStatisticsDTO>> getAverageFeePage(@RequestBody @Valid FilterPageByAverageVO filterPageByAverageVO) {
+    public RespDTO<IPage<AverageStatisticsFeeDTO>> getAverageFeePage(@RequestBody @Valid FilterPageByAverageVO filterPageByAverageVO) {
         return RespDTO.onSuc(consoleFacade.getAverageFeePage(filterPageByAverageVO));
     }
 

+ 65 - 0
src/main/java/com/diagbot/web/ConsoleExportController.java

@@ -3,6 +3,7 @@ package com.diagbot.web;
 import com.diagbot.annotation.SysLogger;
 import com.diagbot.facade.ConsoleExportFacade;
 import com.diagbot.vo.FilterOrderVO;
+import com.diagbot.vo.FilterPageByAverageVO;
 import com.diagbot.vo.FilterPageVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -97,4 +98,68 @@ public class ConsoleExportController {
     public void levelExport_TZ(HttpServletResponse response, @RequestBody @Valid FilterOrderVO filterOrderVO) {
         consoleExportFacade.levelExport_TZ(response, filterOrderVO);
     }
+
+    /**
+     * 按科室统计平均住院天数导出
+     *
+     * @param filterPageByAverageVO
+     * @return
+     */
+    @ApiOperation(value = "按科室统计平均住院天数导出[by:gaodm]",
+            notes = "type: 统计维度 1-本月,2-本年<br>" +
+                    "dateType: 时间类型 1-本月/本年,2-上月/去年,3-去年本月/去年<br>")
+    @PostMapping("/getAverageDayNumExport")
+    @SysLogger("getAverageDayNumExport")
+    public void getAverageDayNumExport(HttpServletResponse response, @RequestBody @Valid FilterPageByAverageVO filterPageByAverageVO) {
+        consoleExportFacade.getAverageDayNumExport(response, filterPageByAverageVO);
+    }
+
+    /**
+     * 按科室统计平均住院费用导出
+     *
+     * @param filterPageByAverageVO
+     * @return
+     */
+    @ApiOperation(value = "按科室统计平均住院费用导出[by:gaodm]",
+            notes = "type: 统计维度 1-本月,2-本年<br>" +
+                    "dateType: 时间类型 1-本月/本年,2-上月/去年,3-去年本月/去年<br>")
+    @PostMapping("/getAverageFeeExport")
+    @SysLogger("getAverageFeeExport")
+    public void getAverageFeeExport(HttpServletResponse response, @RequestBody @Valid FilterPageByAverageVO filterPageByAverageVO) {
+        consoleExportFacade.getAverageFeeExport(response, filterPageByAverageVO);
+    }
+
+    /**
+     * 各科室甲级病历占比排行导出
+     *
+     * @param filterPageVO
+     * @return
+     */
+    @ApiOperation(value = "各科室甲级病历占比排行导出[by:gaodm]",
+            notes = "type: 统计维度 1-本月,2-本年(必填)<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>" +
+                    "deptName: 科室名称 <br>" +
+                    "casesId: 模块id:243=病案首页 <br>" +
+                    "casesName: 模块名称 <br>" +
+                    "isReject: 单项否决 1-否决,0-非<br>" +
+                    "ruleType: 规则类型 0:无,1:空项,2:错误<br>")
+    @PostMapping("/entryCountGroupByEntryExport")
+    @SysLogger("entryCountGroupByEntryExport")
+    public void entryCountGroupByEntryExport(HttpServletResponse response, @RequestBody @Valid FilterPageVO filterPageVO) {
+        consoleExportFacade.entryCountGroupByEntryExport(response, filterPageVO);
+    }
+
 }

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

@@ -328,7 +328,7 @@
     </select>
 
     <!-- 按科室统计平均费用(分页) -->
-    <select id="getAverageFeePage"   resultType="com.diagbot.dto.AverageStatisticsDTO">
+    <select id="getAverageFeePage"   resultType="com.diagbot.dto.AverageStatisticsFeeDTO">
         SELECT t1.*
         FROM
         (SELECT