From 3a8e1524dcf0eeb610d38123d5f0a3ef838379cd Mon Sep 17 00:00:00 2001
From: linzhijie <19970921lzj>
Date: 星期一, 12 四月 2021 15:44:53 +0800
Subject: [PATCH] Merge branch '20210406-maqv2' into 20210412-youhua

---
 src/main/java/com/ots/project/exam/controller/TExamReportController.java |   34 +++++++++++++++++++++++++++-------
 1 files changed, 27 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/ots/project/exam/controller/TExamReportController.java b/src/main/java/com/ots/project/exam/controller/TExamReportController.java
index 96f28b2..764dafe 100644
--- a/src/main/java/com/ots/project/exam/controller/TExamReportController.java
+++ b/src/main/java/com/ots/project/exam/controller/TExamReportController.java
@@ -65,6 +65,7 @@
 import org.apache.commons.collections.map.HashedMap;
 import org.apache.poi.ss.usermodel.BorderStyle;
 import org.apache.poi.ss.usermodel.IndexedColors;
+import org.apache.poi.xssf.streaming.SXSSFSheet;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.jetbrains.annotations.NotNull;
 import org.slf4j.Logger;
@@ -123,6 +124,7 @@
     private IExamUtilService iExamUtilService;
     @Autowired
     private IEntTestPackageService entTestPackageService;
+
     @Autowired
     private ITExamPaperService itExamPaperService;
 
@@ -535,7 +537,7 @@
         setSysHeadToEnglish(tExamReportList, reportResultMap, reportType);
 
         // 鍐欐枃浠�
-        writeFile(fileNameResult, reportResultMap);
+        writeMutiFile(fileNameResult, reportResultMap);
 
         // 杩斿洖涓嬭浇
         return AjaxResult.success(examUtilService.getLangOrLocalLangString("", tExamReportList.get(0).getProductName()) + "_DateReport.xlsx");
@@ -635,13 +637,31 @@
 
     private void writeFile(String fileNameResult, Map<String, List<List<Object>>> reportResultMap) {
         for (Map.Entry<String, List<List<Object>>> entryReport : reportResultMap.entrySet()) {
-            ExcelWriter writer = cn.hutool.poi.excel.ExcelUtil.getWriter(fileNameResult, entryReport.getKey());
+            ExcelWriter writer = cn.hutool.poi.excel.ExcelUtil.getBigWriter(fileNameResult, entryReport.getKey());
             StyleSet styleSet = writer.getStyleSet();
             styleSet.setBorder(BorderStyle.NONE, IndexedColors.OLIVE_GREEN);
             writer.write(entryReport.getValue(), true);
+            SXSSFSheet sheet = (SXSSFSheet) writer.getSheet();
+            sheet.trackAllColumnsForAutoSizing();
+            writer.autoSizeColumnAll();
             writer.close();
         }
-
+    }
+    private void writeMutiFile(String fileNameResult, Map<String, List<List<Object>>> reportResultMap) {
+        FileUtil.del(fileNameResult);
+        ExcelWriter writer = null;
+        for (Map.Entry<String, List<List<Object>>> entryReport : reportResultMap.entrySet()) {
+            if (Objects.isNull(writer)) {
+                writer = new ExcelWriter(fileNameResult,entryReport.getKey());
+            }
+            writer.setSheet(entryReport.getKey());
+            StyleSet styleSet = writer.getStyleSet();
+            styleSet.setBorder(BorderStyle.NONE, IndexedColors.OLIVE_GREEN);
+            writer.write(entryReport.getValue(), true);
+            writer.autoSizeColumnAll();
+            writer.setSheet(entryReport.getKey());
+        }
+        writer.close();
     }
 
     private void setReportResultList(List<Object> demographyHeadSystem, List<List<Object>> reportResultList, Map<String, Object> textMap) {
@@ -677,6 +697,10 @@
     private String getReportType(TExamReport tExamReport) {
         String reportType = ReportTypeEnum.RuiLin.getCode();
         TExamPaper tExamPaper = itExamPaperService.selectTExamPaperById(tExamReport.getProductId());
+        tExamPaper.getName();
+        if (tExamPaper.getName().indexOf("鐫块偦")>0 || tExamPaper.getName().indexOf("RuiLin")>0 ) {
+            return reportType;
+        }
         List<TReportTemplate> tReportTemplateList = itReportTemplateService.selectTReportTemplates(tExamPaper.getReportTemplateId());
         for (TReportTemplate tReportTemplate : tReportTemplateList) {
             if (Objects.isNull(tReportTemplate.getReportType())) {
@@ -698,10 +722,6 @@
     }
 
     private void setDataReportHeader(DataReportHead dataReportHead, Map<String, List<List<Object>>> reportResultMap, String reportType, boolean isRight) {
-        //濡傛灉涓虹┖閲嶆柊鑾峰彇
-        if(Objects.isNull(reportType)){
-
-        }
         if (Objects.equals(reportType, ReportTypeEnum.RuiLin.getCode())) {
             setDataReportHeaderRuilin(dataReportHead, reportResultMap, isRight);
         } else if (Objects.equals(reportType, ReportTypeEnum.CAQ.getCode())) {

--
Gitblit v1.9.1