From 8eca4e5cd3f320064a93029f5991bd7cab338323 Mon Sep 17 00:00:00 2001
From: zhijie <1003392067@qq.com>
Date: 星期一, 19 九月 2022 23:43:59 +0800
Subject: [PATCH] 优化导出报告

---
 src/main/java/com/ots/common/utils/poi/WordUtil.java |   38 ++++++++++++++++++++------------------
 1 files changed, 20 insertions(+), 18 deletions(-)

diff --git a/src/main/java/com/ots/common/utils/poi/WordUtil.java b/src/main/java/com/ots/common/utils/poi/WordUtil.java
index a394a0f..82c2efb 100644
--- a/src/main/java/com/ots/common/utils/poi/WordUtil.java
+++ b/src/main/java/com/ots/common/utils/poi/WordUtil.java
@@ -1113,17 +1113,16 @@
         } else {
             String keyTemp = textSet.getKey();
             String keyValue = Objects.isNull(textSet.getValue()) ? "" : textSet.getValue().toString();
-            if (StringUtils.contains(keyValue, "%line-feed%") || StringUtils.contains(keyValue, "%table-line-feed%")) {
 
-                //琛ㄦ牸閲岀殑鎹㈣ 鐗规畩澶勭悊 鍥犱负娌℃湁娈佃惤
-                if(StringUtils.contains(keyValue, "table")){
-                    String[] keyValues = keyValue.split("%table-line-feed%");
-                    runValue = delDynList(keyTemp, Arrays.asList(keyValues), paragraph, document,1);
-                }else{
-                    String[] keyValues = keyValue.split("%line-feed%");
-                    runValue = delDynList(keyTemp, Arrays.asList(keyValues), paragraph, document,0);
-                }
+            //琛ㄦ牸閲岀殑鎹㈣ 鐗规畩澶勭悊 鍥犱负娌℃湁娈佃惤
+            if(StringUtils.contains(keyValue, "%table-line-feed%")){
+                String[] keyValues = keyValue.split("%table-line-feed%");
+                runValue = delDynList(keyTemp, Arrays.asList(keyValues), paragraph, document,1);
+            }else{
+                String[] keyValues = keyValue.split("%line-feed%");
+                runValue = delDynList(keyTemp, Arrays.asList(keyValues), paragraph, document,0);
             }
+
             log.info("ChangeValue鐨刱ey鍊硷細" + key + "  ChangeValue鐨剉alue鍊硷細" + keyValue);
             runValue = runValue.replaceAll(key, keyValue);
         }
@@ -1164,21 +1163,24 @@
             reportType = getTypeIfIsSAQ(tReportTemplate, reportType);
             reportType = getPositionIfJAQ(textMap, reportType);
             reportName = textMap.get("sendEmailFileName") + "_" + reportType + "_" + ReportTypeNameEnum.valueOf(tReportTemplate.getTemplateType()).getCode() + "_" + ReportTypeNameEnum.valueOf(tReportTemplate.getLangType()).getCode() + ".docx";
-
             reportName = reportName.replaceAll(" ", "_");
-            out = getDownLoadFileOutputStream(reportName);
 
-            log.info("reportTemplate:" + fileName);
-            //String templateType = tReportTemplate.getTemplateType();
-            setChageWord(fileName, out, textMap, tReportTemplate.getReportType(),tReportTemplate.getDataPath(), autoTableMap);
-            out.flush();
-            changColorIfJAQ(textMap, out, reportName, tReportTemplate.getReportType());
+            //妯℃澘鏂囦欢闇�瑕佸姞閿�
+            out = getDownLoadFileOutputStream(reportName);
+            synchronized (fileName.intern()){
+                //String templateType = tReportTemplate.getTemplateType();
+                setChageWord(fileName, out, textMap, tReportTemplate.getReportType(),tReportTemplate.getDataPath(), autoTableMap);
+                out.flush();
+                changColorIfJAQ(textMap, out, reportName, tReportTemplate.getReportType());
+            }
+
             //PAQ銆丮AQTR閲囩敤鏂扮殑doc杞琾df
             if(ReportTypeEnum.PAQ.getCode().equals(reportType) || ReportTypeEnum.MAQTR.getCode().equals(reportType)){
                 PdfUtil.convertPDF(EssConfig.getProfile() + "/" + reportName);
             }else{
-                ShellTool.execLibreofficeCommand("pdf", EssConfig.getProfile() + "/" + reportName, EssConfig.getProfile() + "/");
-
+                //ShellTool.execLibreofficeCommand("pdf", EssConfig.getProfile() + "/" + reportName, EssConfig.getProfile() + "/");
+                ShellTool shellTool = ShellTool.builder();
+                shellTool.execNewLibreofficeCommand("pdf", EssConfig.getProfile() + "/" + reportName, EssConfig.getProfile() + "/" + reportName.replace("docx","pdf"));
             }
             zipFilePath = getPdfPath(reportName);
 

--
Gitblit v1.9.1