|
@@ -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异常");
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|