Browse Source

未整改病历统计导出

zhaops 4 years ago
parent
commit
131230d089

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

@@ -132,6 +132,7 @@ public class ResourceServerConfigurer extends ResourceServerConfigurerAdapter {
                 .antMatchers("/console/export/leaveHosMrPageExport").permitAll()
                 .antMatchers("/console/export/qcCheckStatisticsExport").permitAll()
                 .antMatchers("/console/export/unModifyMRPageExport").permitAll()
+                .antMatchers("/console/export/unModifyMRStatisticsExport").permitAll()
                 .antMatchers("/qc/data/sendDoctorInfos").permitAll()
                 .antMatchers("/qc/data/sendDeptInfos").permitAll()
                 .antMatchers("/qc/data/sendRecordTypes").permitAll()

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

@@ -175,6 +175,7 @@ public class UrlAccessDecisionManager implements AccessDecisionManager {
                 || matchers("/console/export/leaveHosMrPageExport", request)
                 || matchers("/console/export/qcCheckStatisticsExport", request)
                 || matchers("/console/export/unModifyMRPageExport", request)
+                || matchers("/console/export/unModifyMRStatisticsExport", request)
                 || matchers("/qc/data/sendDoctorInfos", request)
                 || matchers("/qc/data/sendDeptInfos", request)
                 || matchers("/qc/data/sendRecordTypes", request)

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

@@ -1,5 +1,9 @@
 package com.diagbot.facade;
 
+import cn.afterturn.easypoi.excel.ExcelExportUtil;
+import cn.afterturn.easypoi.excel.entity.ExportParams;
+import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.diagbot.dto.AverageStatisticsDTO;
 import com.diagbot.dto.AverageStatisticsFeeDTO;
@@ -15,22 +19,37 @@ import com.diagbot.dto.LevelStatisticsDTO;
 import com.diagbot.dto.LevelStatisticsTZDTO;
 import com.diagbot.dto.NumDTO;
 import com.diagbot.dto.QcResultPercentDTO;
+import com.diagbot.dto.UnModifyMRDTO;
+import com.diagbot.entity.SysHospitalSet;
 import com.diagbot.exception.CommonErrorCode;
 import com.diagbot.exception.CommonException;
 import com.diagbot.util.BeanUtil;
+import com.diagbot.util.EntityUtil;
 import com.diagbot.util.ExcelUtils;
+import com.diagbot.util.ListUtil;
+import com.diagbot.util.ObjectUtil;
+import com.diagbot.util.StringUtil;
 import com.diagbot.util.SysUserUtils;
 import com.diagbot.vo.EntryStatisticsVO;
 import com.diagbot.vo.FilterOrderVO;
 import com.diagbot.vo.FilterPageByAverageVO;
 import com.diagbot.vo.FilterPageVO;
+import com.diagbot.vo.FilterUnModifyMRVO;
 import com.diagbot.vo.QcResultShortPageVO;
+import com.google.common.collect.Lists;
+import org.apache.poi.ss.usermodel.Workbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Description: 报表导出装饰层
@@ -44,6 +63,10 @@ public class ConsoleExportFacade {
     private ConsoleFacade consoleFacade;
     @Autowired
     private BehospitalInfoFacade behospitalInfoFacade;
+    @Autowired
+    private SysHospitalSetFacade sysHospitalSetFacade;
+    @Autowired
+    private FilterFacade filterFacade;
 
     /**
      * 病案首页合格率占比
@@ -294,4 +317,71 @@ public class ConsoleExportFacade {
         String fileName = "未整改病历详情页.xls";
         ExcelUtils.exportExcelUser(records, null, "sheet1", ExportExcelDTO.class, fileName, response);
     }
-}
+
+    /**
+     * 未整改病历统计导出
+     *
+     * @param response
+     * @param filterUnModifyMRVO
+     */
+    public void unModifyMRStatisticsExport(HttpServletResponse response, FilterUnModifyMRVO filterUnModifyMRVO) {
+        try {
+            filterFacade.filterUnModifyMRVOSet(filterUnModifyMRVO);
+            List<ExcelExportEntity> colList = Lists.newLinkedList();
+            ExcelExportEntity deptIdCol = new ExcelExportEntity("科室编码", "deptId");
+            deptIdCol.setWidth(20);
+            colList.add(deptIdCol);
+            ExcelExportEntity deptNameCol = new ExcelExportEntity("科室名称", "deptName");
+            deptNameCol.setWidth(50);
+            colList.add(deptNameCol);
+
+            QueryWrapper<SysHospitalSet> hospitalSetQueryWrapper = new QueryWrapper<>();
+            hospitalSetQueryWrapper.eq("is_deleted", 'N')
+                    .eq("hospital_id", filterUnModifyMRVO.getHospitalId())
+                    .eq("code", "unmodify_mr_entry_cx");
+            SysHospitalSet hospitalSet = sysHospitalSetFacade.getOne(hospitalSetQueryWrapper);
+            //缺陷条目未维护
+            if (hospitalSet == null || StringUtil.isBlank(hospitalSet.getValue())) {
+                throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "未整改病历条目未设置");
+            }
+
+            List<String> columnSet = Arrays.asList(hospitalSet.getValue().split(","));
+            for (String valueStr : columnSet) {
+                String[] keyValue = valueStr.split("--");
+                if (keyValue != null || keyValue.length > 1) {
+                    ExcelExportEntity entryCol = new ExcelExportEntity(keyValue[1], "entry_" + keyValue[0] + "_num");
+                    entryCol.setWidth(20);
+                    colList.add(entryCol);
+                }
+            }
+
+            Map<String, String> keyNameMap = EntityUtil.makeMapWithKeyValue(colList, "key", "name");
+            UnModifyMRDTO unModifyMRDTO = consoleFacade.unModifyMRStatistics(filterUnModifyMRVO);
+            List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
+            List<Object> data = Lists.newLinkedList();
+            if (unModifyMRDTO != null && ListUtil.isNotEmpty(unModifyMRDTO.getData())) {
+                data = unModifyMRDTO.getData();
+                //存储表格中的每一行数据
+                Map<String, Object> valMap = null;
+                for (Object obj : data) {
+                    valMap = new HashMap<>(colList.size());
+                    for (Map.Entry<String, String> keyName : keyNameMap.entrySet()) {
+                        valMap.put(keyName.getKey(), ObjectUtil.getValueByKey(obj, keyName.getKey()));
+                    }
+                    list.add(valMap);
+                }
+            }
+            Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams("未整改病历统计", "数据"), colList,
+                    list);
+            response.setCharacterEncoding("UTF-8");
+            response.setHeader("content-Type", "application/vnd.ms-excel");
+            String fileName = "未整改病历统计.xls";
+            response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
+            workbook.write(response.getOutputStream());
+            workbook.close();
+
+        } catch (IOException e) {
+            throw new CommonException(CommonErrorCode.SERVER_IS_ERROR, "导出Excel异常");
+        }
+    }
+}

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

@@ -6,6 +6,7 @@ import com.diagbot.vo.EntryStatisticsVO;
 import com.diagbot.vo.FilterOrderVO;
 import com.diagbot.vo.FilterPageByAverageVO;
 import com.diagbot.vo.FilterPageVO;
+import com.diagbot.vo.FilterUnModifyMRVO;
 import com.diagbot.vo.QcResultShortPageVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -281,4 +282,20 @@ public class ConsoleExportController {
     public void unModifyMRPageExport(HttpServletResponse response, @RequestBody @Valid QcResultShortPageVO qcResultShortPageVO) {
         consoleExportFacade.unModifyMRPageExport(response, qcResultShortPageVO);
     }
+
+    /**
+     * 未整改病历统计导出
+     *
+     * @param filterUnModifyMRVO
+     * @return
+     */
+    @ApiOperation(value = "未整改病历统计导出[by:zhaops]",
+            notes = "behDeptName:科室名称 <br>" +
+                    "startDate: 起始时间 <br>" +
+                    "endDate: 截止时间 <br>")
+    @PostMapping("/unModifyMRStatisticsExport")
+    @SysLogger("unModifyMRStatisticsExport")
+    public void unModifyMRStatisticsExport(HttpServletResponse response, @RequestBody @Valid FilterUnModifyMRVO filterUnModifyMRVO) {
+        consoleExportFacade.unModifyMRStatisticsExport(response, filterUnModifyMRVO);
+    }
 }