From 48e0700106945178c1745ad285de814c1b872816 Mon Sep 17 00:00:00 2001
From: linzhijie <1003392067@qq.com>
Date: 星期五, 21 十月 2022 13:15:58 +0800
Subject: [PATCH] 增加异常捕获

---
 src/main/java/com/ots/common/utils/poi/WordUtil.java |   65 +++++++++++++++++++++-----------
 1 files changed, 42 insertions(+), 23 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 4363b87..ff09e38 100644
--- a/src/main/java/com/ots/common/utils/poi/WordUtil.java
+++ b/src/main/java/com/ots/common/utils/poi/WordUtil.java
@@ -407,6 +407,9 @@
             if(tableEnum == TableEnum.table4){
                 if(tableNum != null && tableNum != 8){
                     for (int i = tableNum; i <= tableNum + 4; i++) {
+                        if(i+2 > table.getRows().size()){
+                            continue;
+                        }
                         XWPFTableRow row = table.getRows().get(i+2);
                         List<XWPFTableCell> cells = row.getTableCells();
                         changeText(cells.get(0).getParagraphs().get(0),"#"+(i+1)+".");
@@ -1119,7 +1122,7 @@
             if(StringUtils.contains(keyValue, "%table-line-feed%")){
                 String[] keyValues = keyValue.split("%table-line-feed%");
                 runValue = delDynList(keyTemp, Arrays.asList(keyValues), paragraph, document,1);
-            }else{
+            }else if(StringUtils.contains(keyValue, "%line-feed%")){
                 String[] keyValues = keyValue.split("%line-feed%");
                 runValue = delDynList(keyTemp, Arrays.asList(keyValues), paragraph, document,0);
             }
@@ -1164,21 +1167,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);
 
@@ -1325,7 +1331,7 @@
 
             String key = "%" + textSet.getKey() + "%";
             if (text.indexOf(key) != -1) {
-                text = text.replaceAll(key, (String) textMap.get(textSet.getKey()));
+                text = text.replaceAll(key, String.valueOf(textMap.get(textSet.getKey())));
                 repText = text;
                 if (checkText(text)) {
                     continue;
@@ -1387,19 +1393,24 @@
         if (ExamUtil.isListEmpty(charts)) {
             return;
         }
-        if (StringUtils.equals(reportType, ReportTypeEnum.MAQ.getCode())) {
-            setMAQCompleteChars(textMap, charts);
-        } else if (StringUtils.equals(reportType, ReportTypeEnum.MAQV2.getCode()) || StringUtils.equals(reportType, ReportTypeEnum.MAQIAR.getCode())) {
-            setMAQ_V2CompleteChars(textMap, charts);
-        } else if (StringUtils.equals(reportType, ReportTypeEnum.RuiLin.getCode())) {
-            setRuiLinChar(textMap, charts);
-        } else if (StringUtils.equals(reportType, ReportTypeEnum.PAQ.getCode())) {
-            PAQChart.changeChart(document, textMap);
-        } else if (StringUtils.equals(reportType, ReportTypeEnum.MAQTR.getCode())) {
-            MAQTRChart.changeMAQTRChart(document, dataPath);
-        } else {
-            return;
+        try{
+            if (StringUtils.equals(reportType, ReportTypeEnum.MAQ.getCode())) {
+                setMAQCompleteChars(textMap, charts);
+            } else if (StringUtils.equals(reportType, ReportTypeEnum.MAQV2.getCode()) || StringUtils.equals(reportType, ReportTypeEnum.MAQIAR.getCode())) {
+                setMAQ_V2CompleteChars(textMap, charts);
+            } else if (StringUtils.equals(reportType, ReportTypeEnum.RuiLin.getCode())) {
+                setRuiLinChar(textMap, charts);
+            } else if (StringUtils.equals(reportType, ReportTypeEnum.PAQ.getCode())) {
+                PAQChart.changeChart(document, textMap);
+            } else if (StringUtils.equals(reportType, ReportTypeEnum.MAQTR.getCode())) {
+                MAQTRChart.changeMAQTRChart(document, dataPath);
+            } else {
+                return;
+            }
+        }catch (Exception e){
+            e.printStackTrace();
         }
+
     }
     private static void setMAQ_V2CompleteChars(Map<String, Object> textMap, List<XWPFChart> charts) {
         String p_Task31 = textMap.get("P_Task31").toString();
@@ -1773,7 +1784,15 @@
 
             //鏇存敼琛ㄦ牸鐨勫��
             textMap.put("sendEmailFileName", "JAQ");
+            textMap.put("SelectUsers",8);
+            //changeTable(document, textMap);
+
+
+            changeText(document, textMap);
+            changeTextBox(document, textMap);
+            addTableValue(document, null);
             changeTable(document, textMap);
+            //changChart(textMap, document, reportType, dataPath);
 
             //寤虹珛鏂囦欢瀵硅薄
             File file = new File("C:\\Users\\Administrator\\Desktop\\JAQ涓枃鐗�1.docx");

--
Gitblit v1.9.1