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