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