From ccbe40edcd772214ac3df40be1f582b6acea63f4 Mon Sep 17 00:00:00 2001
From: linzhijie <19970921lzj>
Date: 星期一, 12 四月 2021 15:50:09 +0800
Subject: [PATCH] 优化代码

---
 src/main/java/com/ots/project/tool/ShellTool.java                     |   33 ++++++++++
 src/main/java/com/ots/common/enums/ReportTitle.java                   |   44 ++++++++++++++
 src/main/java/com/ots/project/tool/report/MAQ/base/BaseCondition.java |   21 +++++++
 src/main/java/com/ots/project/tool/report/CAQ/CAQReport.java          |   24 +++++++
 4 files changed, 120 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/ots/common/enums/ReportTitle.java b/src/main/java/com/ots/common/enums/ReportTitle.java
new file mode 100644
index 0000000..fccd1ea
--- /dev/null
+++ b/src/main/java/com/ots/common/enums/ReportTitle.java
@@ -0,0 +1,44 @@
+package com.ots.common.enums;
+
+/**
+ * @author zhijie
+ * @date 2021/03/19
+ * @Description: 鎶ュ憡閭欢鏍囬绫�
+ */
+public enum ReportTitle {
+    ZH("濮撳悕","Chinese", "%s鐨�%s娴嬭瘎鎶ュ憡"),
+    US("Name","English", "%s's %s Report"),
+    TAI("喔娻阜喙堗腑","Thai", "喔`覆喔⑧竾喔侧笝喔佮覆喔`笡喔`赴喙�喔∴复喔� %s 喔傕腑喔� %s"),
+    ;
+    public final String field;
+    public final String langType;
+    public final String reportTitle;
+
+
+
+    ReportTitle(String field,String langType, String reportTitle) {
+        this.field = field;
+        this.langType = langType;
+        this.reportTitle = reportTitle;
+    }
+
+    public static String getReportTitle(String langType) {
+        ReportTitle[] types = ReportTitle.values();
+        for (ReportTitle type : types) {
+            if (type.langType.equals(langType)) {
+                return type.reportTitle;
+            }
+        }
+        return "";
+    }
+
+    public static String getField(String langType) {
+        ReportTitle[] types = ReportTitle.values();
+        for (ReportTitle type : types) {
+            if (type.langType.equals(langType)) {
+                return type.field;
+            }
+        }
+        return "";
+    }
+}
diff --git a/src/main/java/com/ots/project/tool/ShellTool.java b/src/main/java/com/ots/project/tool/ShellTool.java
index ce2612f..715583b 100644
--- a/src/main/java/com/ots/project/tool/ShellTool.java
+++ b/src/main/java/com/ots/project/tool/ShellTool.java
@@ -10,9 +10,12 @@
         StringBuilder builder = new StringBuilder();
         if (os.toLowerCase().startsWith("mac")) {
             builder.append("/Applications/LibreOffice.app/Contents/MacOS/soffice --headless --convert-to ");
+        } else if(os.contains("Windows")){
+            builder.append("cmd /c start soffice --headless --convert-to ");
         } else {
             builder.append("libreoffice6.4 --headless --convert-to ");
         }
+
         builder.append(type).append(" ");
         builder.append("--outdir " + targetPath).append(" ");
         builder.append(sourcePath).append(" ");
@@ -24,8 +27,36 @@
             }
         } catch (Exception e) {
         }
-        return exec(builder.toString());
+        return run_cmd(builder.toString());
     }
+
+    public static String run_cmd(String strcmd) {
+        //
+        Runtime rt = Runtime.getRuntime(); //Runtime.getRuntime()杩斿洖褰撳墠搴旂敤绋嬪簭鐨凴untime瀵硅薄
+        Process ps = null;  //Process鍙互鎺у埗璇ュ瓙杩涚▼鐨勬墽琛屾垨鑾峰彇璇ュ瓙杩涚▼鐨勪俊鎭��
+        try {
+            ps = rt.exec(strcmd);   //璇ュ璞$殑exec()鏂规硶鎸囩ずJava铏氭嫙鏈哄垱寤轰竴涓瓙杩涚▼鎵ц鎸囧畾鐨勫彲鎵ц绋嬪簭锛屽苟杩斿洖涓庤瀛愯繘绋嬪搴旂殑Process瀵硅薄瀹炰緥銆�
+            ps.waitFor();  //绛夊緟瀛愯繘绋嬪畬鎴愬啀寰�涓嬫墽琛屻��
+        } catch (IOException e1) {
+            e1.printStackTrace();
+        } catch (InterruptedException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+
+        int i = ps.exitValue();  //鎺ユ敹鎵ц瀹屾瘯鐨勮繑鍥炲��
+        if (i == 0) {
+            System.out.println("鎵ц瀹屾垚.");
+        } else {
+            System.out.println("鎵ц澶辫触.");
+        }
+
+        ps.destroy();  //閿�姣佸瓙杩涚▼
+        ps = null;
+
+        return null;
+    }
+
     private static String exec(String command) {
         String returnString = "";
         Runtime runTime = Runtime.getRuntime();
diff --git a/src/main/java/com/ots/project/tool/report/CAQ/CAQReport.java b/src/main/java/com/ots/project/tool/report/CAQ/CAQReport.java
index 37d5129..07adf38 100644
--- a/src/main/java/com/ots/project/tool/report/CAQ/CAQReport.java
+++ b/src/main/java/com/ots/project/tool/report/CAQ/CAQReport.java
@@ -23,7 +23,14 @@
     private String reportDate;
     
     private String testToken;
-    
+
+    /**
+     * 鑾峰彇鎶ュ憡瀛楀吀鐨刢ode璺焩alue
+     * @param thaiCalculationMap
+     * @param type
+     * @param langType
+     * @return
+     */
     public ReportResultData getTemplateParameters(Map<String, String> thaiCalculationMap, ReportTypeEnum type, LangTypeEnum langType) {
         Map<String, Object> infoMap = new HashMap();
         infoMap.put("fullName", fullName);
@@ -31,13 +38,17 @@
         infoMap.put("testToken", testToken);
         Map textMap = new HashMap();
         Map waterDropsMap = new HashMap();
+        //閬嶅巻鍒濆鍖朿ode瀛楀吀鍊肩殑value
         getParamList(type).stream().forEach(p -> {
             TLibraryCode calculate = p.calculate(thaiCalculationMap, langType);
+            //淇濆瓨缃崲鍚庢枃鏈瓧鍏� 渚�:LIBCAQ0015 : 璇ュ�欓�変汉鍦ㄦ娊璞℃帹鐞嗚兘鍔涢儴鍒�20棰樹腑鍥炵瓟姝g‘鐨勯鏁帮細<BoldText>14</BoldText>
             textMap.put(p.getName(), Objects.isNull(calculate) || StringUtils.isBlank(calculate.getLangTypeContext(langType)) ? "N/A NONE" : calculate.getLangTypeContext(langType));
+            //淇濆瓨鍥剧墖瀛楀吀 渚嬪瓙锛歅_Abstract_context_waterDrops : 26.0
             if (Objects.nonNull(p.getMAQwaterDropsImages())) {
                 waterDropsMap.putAll(p.getMAQwaterDropsImages());
             }
         });
+        //淇濆瓨涔嬪墠浼犺繘鏉ョ殑棰樼洰ID璺熶竴浜涗釜浜轰俊鎭�
         textMap.putAll(thaiCalculationMap);
         ReportResultData reportResultData = new ReportResultData();
         reportResultData.setTextMap(textMap);
@@ -47,6 +58,12 @@
     public List<BaseCondition> getParamList(ReportTypeEnum reportTypeEnum) {
         return init(reportTypeEnum);
     }
+
+    /**
+     * 鍒濆鍖栧瓧鍏�
+     * @param reportTypeEnum
+     * @return
+     */
     private List<BaseCondition> init(ReportTypeEnum reportTypeEnum) {
         List<BaseCondition> paramList = new ArrayList<>();
         
@@ -59,6 +76,11 @@
         paramList.add(new WaterDropletContentPNumeric());
         return paramList;
     }
+
+    /**
+     * 鍒濆鍖栫畝鍗曠殑瀛楀吀code
+     * @return
+     */
     private List<String> getSimpleMessageCoreIds() {
         return Arrays.asList("LIBCAQ0005", "LIBCAQ0006", "LIBCAQ0007", "LIBCAQ0008", "LIBCAQ0010", "LIBCAQ0020"
                 ,"LIBCAQ0030","LIBCAQ0040","LIBCAQ0050","LIBCAQ0060","LIBCAQ0070","LIBCAQ0080"
diff --git a/src/main/java/com/ots/project/tool/report/MAQ/base/BaseCondition.java b/src/main/java/com/ots/project/tool/report/MAQ/base/BaseCondition.java
index 5176400..34cd069 100644
--- a/src/main/java/com/ots/project/tool/report/MAQ/base/BaseCondition.java
+++ b/src/main/java/com/ots/project/tool/report/MAQ/base/BaseCondition.java
@@ -34,6 +34,14 @@
         }
         return false;
     }
+
+    /**
+     * 鑾峰彇鎶ュ憡瀛楀吀
+     * @param map
+     * @param codeId
+     * @param langType
+     * @return
+     */
     public TLibraryCode getMaqReportLibrary(Map<String, String> map, String codeId, LangTypeEnum langType) {
         if (Objects.isNull(codeId)) {
             return null;
@@ -41,6 +49,9 @@
         StringBuilder content = new StringBuilder();
         String[] split = codeId.split(",");
         TLibraryCode result = new TLibraryCode();
+        /**
+         * 鏍规嵁瀛楀吀CODE鑾峰彇瀵瑰簲鐨勫瓧鍏歌鎯�
+         */
         Arrays.stream(split).forEach(item -> {
             TLibraryCode maqReportLibrary = CacheServiceFactory.getInstance().getMAQReportLibrary(item);
             if (Objects.isNull(maqReportLibrary)) {
@@ -52,11 +63,21 @@
                 result.setLibraryCode(maqReportLibrary.getLibraryCode());
             }
         });
+        //璁剧疆瀵瑰簲璇█鐨勬枃瀛楀唴瀹�
         result.setLangTypeContext(content.toString(), langType);
+        //鏇挎崲鎶ュ憡瀛楀吀鍐呭鐨勫彉閲�
         dynamicParameterSubstitution(map, result, langType);
         return result;
     }
+
+    /**
+     * 鏇挎崲鎶ュ憡瀛楀吀鍐呭鐨勫彉閲�
+     * @param map
+     * @param maqReportLibrary
+     * @param langType
+     */
     public void dynamicParameterSubstitution(Map<String, String> map, TLibraryCode maqReportLibrary, LangTypeEnum langType) {
+        //鏍规嵁鎶ュ憡瀛楀吀鍐呭 瀹氫綅鍙橀噺鍚嶄綅缃� 鏇挎崲缁撴灉
         map.forEach((key, value) -> {
             String content = maqReportLibrary.getLangTypeContext(langType);
             String replaceStr = "%" + key + "%";

--
Gitblit v1.9.1