linzhijie
2021-04-12 3a8e1524dcf0eeb610d38123d5f0a3ef838379cd
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())) {