From 56c8bc18def3992259da50948119259f571d04ee Mon Sep 17 00:00:00 2001 From: zhijie <1003392067@qq.com> Date: 星期二, 08 六月 2021 23:25:39 +0800 Subject: [PATCH] MAQ简易版泰文支持,SAQ简易版支持 --- src/main/java/com/ots/project/tool/report/RuilinMAQ/condition/RuilinTestResultValidityDiagnosis.java | 1 src/main/java/com/ots/project/tool/report/MAQNEW/condition/ResponseFidelityDiagnosisTitle_V2.java | 1 src/main/java/com/ots/project/tool/report/MAQ/condition/ResponseFidelityDiagnosis.java | 1 src/main/java/com/ots/project/tool/report/MAQNEW/condition/PrimaryLeadershipStyleContext_V2.java | 1 src/main/java/com/ots/project/tool/report/MAQ/condition/PrimaryLeadershipStyleContext.java | 1 src/main/java/com/ots/project/tool/report/SAQ/condition/ResponseFidelityDiagnosisSAQ.java | 1 src/main/java/com/ots/project/tool/report/MAQNEW/MAQReport_V2.java | 9 src/main/java/com/ots/project/tool/report/MAQNEW/condition/KeyPointsCautions_V2.java | 1 src/main/java/com/ots/project/tool/report/MAQNEW/base/BaseCondition_V2.java | 7 src/main/java/com/ots/project/tool/report/SAQ/chart/SAQChart.java | 377 ++++++++++++++++++++++++++ src/main/java/com/ots/project/tool/exam/ExamUtil.java | 14 src/main/java/com/ots/project/tool/report/SAQ/condition/ResponseFidelityDiagnosisSAQTitle.java | 1 src/main/java/com/ots/project/tool/report/MAQNEW/condition/KeyPointsStrengths_V2.java | 1 src/main/java/com/ots/project/tool/report/SAQ/chart/RowData.java | 23 + src/main/java/com/ots/project/tool/report/SAQ/gs/condition/ResponseFidelityDiagnosisSAQGsTitle.java | 77 +++++ src/main/java/com/ots/project/tool/report/SAQ/SAQReport.java | 39 ++ src/main/java/com/ots/project/tool/report/MAQ/condition/ResponseFidelityDiagnosisTitle.java | 1 src/main/java/com/ots/project/tool/report/SAQ/gs/condition/ResponseFidelityDiagnosisSAQGs.java | 136 +++++++++ src/main/java/com/ots/project/tool/exam/ImageUtil.java | 18 + src/main/java/com/ots/project/tool/report/MAQNEW/condition/ResponseFidelityDiagnosis_V2.java | 3 src/main/java/com/ots/project/tool/report/MAQ/base/BaseCondition.java | 17 + src/main/java/com/ots/project/tool/report/MAQ/condition/KeyPointsStrengths.java | 1 src/main/java/com/ots/common/utils/poi/WordUtil.java | 23 src/main/java/com/ots/project/tool/report/RuilinMAQ/condition/RuilinTestResultValidityDiagnosisContext.java | 1 src/main/java/com/ots/project/tool/report/SAQ/chart/SeriesData.java | 26 + src/main/java/com/ots/project/tool/report/MAQ/condition/KeyPointsCautions.java | 1 26 files changed, 757 insertions(+), 25 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 ff01e4b..2e97d4a 100644 --- a/src/main/java/com/ots/common/utils/poi/WordUtil.java +++ b/src/main/java/com/ots/common/utils/poi/WordUtil.java @@ -17,6 +17,7 @@ import com.ots.project.tool.report.JAQ.condition.Table2; import com.ots.project.tool.report.JAQ.condition.Table3; import com.ots.project.tool.report.JAQ.condition.Table4; +import com.ots.project.tool.report.SAQ.chart.SAQChart; import org.apache.commons.collections.map.HashedMap; import org.apache.poi.ooxml.POIXMLDocument; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; @@ -177,6 +178,9 @@ if (run.toString().indexOf("%TTime%") != -1) { run.setText(textMap.get("reportGenerationDate").toString(), 0); } + if (run.toString().indexOf("%LIBSAQGS0018%") != -1) { + run.setText(textMap.get("LIBSAQGS0018").toString(), 0); + } } } } @@ -254,7 +258,7 @@ public static CTAnchor getAnchorWithGraphic(CTGraphicalObject ctGraphicalObject, String deskFileName, int width, int height, int leftOffset, int topOffset, boolean behind, int topPosition) { - long relativeHeight = 251649024l + topPosition; + long relativeHeight = 251649024L + topPosition; String anchorXML = "<wp:anchor xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" " + "simplePos=\"0\" relativeHeight=\"" + relativeHeight + "\" behindDoc=\"" + ((behind) ? 1 : 0) + "\" locked=\"0\" layoutInCell=\"1\" allowOverlap=\"1\">" @@ -430,7 +434,7 @@ } public static String changeValue(String runValue, Map<String, Object> textMap, XWPFRun run, XWPFParagraph paragraph, XWPFDocument document, int runPosition) throws IOException, org.apache.poi.openxml4j.exceptions.InvalidFormatException { - + log.debug("changeText:{}",runValue); Set<Map.Entry<String, Object>> textSets = textMap.entrySet(); for (Map.Entry<String, Object> textSet : textSets) { @@ -841,17 +845,13 @@ //璁剧疆鏂囨湰 changeText(document, textMap); - //鏇存敼鏂囨湰妗� -/* if (Objects.equals(reportType, ReportTypeEnum.MAQV2.getCode()) || Objects.equals(reportType, ReportTypeEnum.JAQ.getCode()) ) { - changeTextBox(document, textMap); - }*/ - + //璁剧疆鏂囨湰妗� changeTextBox(document, textMap); - //CAQ鏇存敼鏂囨湰妗嗭紝wzp娴嬭瘯.2021.4.27 -/* if (Objects.equals(reportType, ReportTypeEnum.CAQ.getCode())) { - changeTextBox(document, textMap); - }*/ + //璁剧疆鍥捐〃 + if (Objects.equals(reportType, ReportTypeEnum.SAQ.getCode())) { + SAQChart.changeChart(document, textMap); + } //鎻掑叆琛ㄦ牸 addTableValue(document, autoTableMap); @@ -888,6 +888,7 @@ } } private static String getValByKey(String text, Map<String, Object> textMap) { + log.debug("changeTextBox:{}",text); if (!checkText(text)) { return text; } diff --git a/src/main/java/com/ots/project/tool/exam/ExamUtil.java b/src/main/java/com/ots/project/tool/exam/ExamUtil.java index ccc5170..51d0b80 100644 --- a/src/main/java/com/ots/project/tool/exam/ExamUtil.java +++ b/src/main/java/com/ots/project/tool/exam/ExamUtil.java @@ -26,10 +26,16 @@ productTypeMap.put("SAQ", "SAQ"); productTypeMap.put("JAQ", "JAQ"); } + + /** + * 璁剧疆姘存淮鑳屾櫙瀵瑰簲鍥剧墖 + */ private static void setWaterDropAndBar() { - + //姘存淮鍥剧墖 waterDropPictureMap.put("ResponseFidelityDiagnosis", "waterDropDarkBlue.png"); waterDropPictureMap.put("ResponseFidelityDiagnosis_V2", "waterDropDarkBlue_V2.png"); + //SAQ绠�鏄撶増 + waterDropPictureMap.put("ResponseFidelityDiagnosisSAQGs", "waterDropDarkBlue_V2.png"); waterDropPictureMap.put("ResponseFidelityDiagnosisSAQ", "waterDropDarkBlue.png"); @@ -55,7 +61,7 @@ waterDropPictureMap.put("CooperationTeamwork", "waterDropLightBlue.png"); waterDropPictureMap.put("Empathetic", "waterDropLightBlue.png"); waterDropPictureMap.put("PoliteTactful", "waterDropLightBlue.png"); - + //鑳屾櫙瀵艰埅鏉� barPictureMap.put("ResponseFidelityDiagnosis_waterDrops1", "Bar1.png"); barPictureMap.put("ResponseFidelityDiagnosis_V2_waterDrops1", "Bar1_V2.png"); barPictureMap.put("ResponseFidelityDiagnosis_waterDrops2", "Bar1.png"); @@ -66,6 +72,10 @@ barPictureMap.put("ResponseFidelityDiagnosisSAQ_waterDrops1", "Bar1.png"); barPictureMap.put("ResponseFidelityDiagnosisSAQ_waterDrops2", "Bar1.png"); barPictureMap.put("ResponseFidelityDiagnosisSAQ_waterDrops3", "Bar2.png"); + //澧炲姞SAQ绠�鏄撶増 + barPictureMap.put("ResponseFidelityDiagnosisSAQGs_waterDrops1", "Bar1_V2.png"); + barPictureMap.put("ResponseFidelityDiagnosisSAQGs_waterDrops2", "Bar1_V2.png"); + barPictureMap.put("ResponseFidelityDiagnosisSAQGs_waterDrops3", "Bar2_V2.png"); barPictureMap.put("RuilinTestResultValidityDiagnosisContext_waterDrops1", "RuiLin1.png"); barPictureMap.put("RuilinTestResultValidityDiagnosisContext_waterDrops2", "RuiLin1.png"); diff --git a/src/main/java/com/ots/project/tool/exam/ImageUtil.java b/src/main/java/com/ots/project/tool/exam/ImageUtil.java index b0c1724..dcf2dcd 100644 --- a/src/main/java/com/ots/project/tool/exam/ImageUtil.java +++ b/src/main/java/com/ots/project/tool/exam/ImageUtil.java @@ -85,6 +85,15 @@ } return width; } + + /** + * 鍒涘缓姘存淮鍥剧墖 + * @param key + * @param waterDrop + * @param scorceF + * @param member_id + * @param suffixDate + */ public static void creteWaterDropPic(String key, String waterDrop, float scorceF, String member_id, String suffixDate) { int CANVAS_W = 1000; int CANVAS_H = 96; @@ -101,6 +110,13 @@ barImageY = 5; } if (key.indexOf("ResponseFidelityDiagnosis_V2") != -1) { + CANVAS_H = 400; + waterDropImageX = -30; + scorce100 = 800; + barImageY = 5; + waterDropImageY = 0; + } + if (key.indexOf("ResponseFidelityDiagnosisSAQGs") != -1) { CANVAS_H = 400; waterDropImageX = -30; scorce100 = 800; @@ -163,7 +179,7 @@ int waterDropOffsetX = setWaterDrop(waterDrop, waterDropImageX, waterDropImageY, scorce100, scorce, g2d, waterDropImage); - if (key.indexOf("ResponseFidelityDiagnosis_V2") != -1) { + if (key.indexOf("ResponseFidelityDiagnosis_V2") != -1 || key.indexOf("ResponseFidelityDiagnosisSAQGs") != -1) { setTextV2(String.valueOf(Math.round(scorceF)), g2d, waterDropOffsetX); }else{ setText(String.valueOf(Math.round(scorceF)), g2d, waterDropOffsetX); 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..c8e53e8 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 @@ -4,6 +4,7 @@ import com.ots.project.tool.CacheServiceFactory; import lombok.extern.slf4j.Slf4j; import java.util.Arrays; +import java.util.List; import java.util.Map; import java.util.Objects; @Slf4j @@ -12,8 +13,17 @@ public abstract String getName(); public abstract TLibraryCode calculate(Map<String, String> map, LangTypeEnum langType); + public List<TLibraryCode> calculateList(Map<String, String> map, LangTypeEnum langType){ + return null; + } public abstract Map<String, String> getMAQwaterDropsImages(); + + /** + * 鏍规嵁鍙傛暟鑾峰彇鍛戒腑鐨勬寚鏍� + * @param calculateMap + * @return + */ protected String selectTrueObject(Map<Boolean, String> calculateMap) { for (Map.Entry<Boolean, String> entry : calculateMap.entrySet()) { Boolean mapKey = entry.getKey(); @@ -56,6 +66,13 @@ 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); diff --git a/src/main/java/com/ots/project/tool/report/MAQ/condition/KeyPointsCautions.java b/src/main/java/com/ots/project/tool/report/MAQ/condition/KeyPointsCautions.java index 439d434..b0598af 100644 --- a/src/main/java/com/ots/project/tool/report/MAQ/condition/KeyPointsCautions.java +++ b/src/main/java/com/ots/project/tool/report/MAQ/condition/KeyPointsCautions.java @@ -18,6 +18,7 @@ @Slf4j public class KeyPointsCautions extends BaseCondition { private String name = "KeyPointsCautions"; + @Override public TLibraryCode calculate(Map<String, String> map, LangTypeEnum langType) { try { Map<String, String> paramMap = new HashMap(); diff --git a/src/main/java/com/ots/project/tool/report/MAQ/condition/KeyPointsStrengths.java b/src/main/java/com/ots/project/tool/report/MAQ/condition/KeyPointsStrengths.java index b3d4561..7a1d978 100644 --- a/src/main/java/com/ots/project/tool/report/MAQ/condition/KeyPointsStrengths.java +++ b/src/main/java/com/ots/project/tool/report/MAQ/condition/KeyPointsStrengths.java @@ -17,6 +17,7 @@ @Slf4j public class KeyPointsStrengths extends BaseCondition { private String name = "KeyPointsStrengths"; + @Override public TLibraryCode calculate(Map<String, String> map, LangTypeEnum langType) { try { Map<String, String> paramMap = new HashMap(); diff --git a/src/main/java/com/ots/project/tool/report/MAQ/condition/PrimaryLeadershipStyleContext.java b/src/main/java/com/ots/project/tool/report/MAQ/condition/PrimaryLeadershipStyleContext.java index f5e02a4..82cf9e9 100644 --- a/src/main/java/com/ots/project/tool/report/MAQ/condition/PrimaryLeadershipStyleContext.java +++ b/src/main/java/com/ots/project/tool/report/MAQ/condition/PrimaryLeadershipStyleContext.java @@ -13,6 +13,7 @@ @Slf4j public class PrimaryLeadershipStyleContext extends BaseCondition { private String name = "PrimaryLeadershipStyleContext"; + @Override public TLibraryCode calculate(Map<String, String> map, LangTypeEnum langType) { try { String p_task31 = map.get("P_Task31"); diff --git a/src/main/java/com/ots/project/tool/report/MAQ/condition/ResponseFidelityDiagnosis.java b/src/main/java/com/ots/project/tool/report/MAQ/condition/ResponseFidelityDiagnosis.java index 3c44521..a68567e 100644 --- a/src/main/java/com/ots/project/tool/report/MAQ/condition/ResponseFidelityDiagnosis.java +++ b/src/main/java/com/ots/project/tool/report/MAQ/condition/ResponseFidelityDiagnosis.java @@ -25,6 +25,7 @@ map.put(name + IMAGE_PREFIX + "3", Objects.isNull(P_INCON25) ? "0" : String.valueOf(P_INCON25)); return map; } + @Override public TLibraryCode calculate(Map<String, String> map, LangTypeEnum langType) { try { String p_sde_t1 = map.get("P_SDE_T1"); diff --git a/src/main/java/com/ots/project/tool/report/MAQ/condition/ResponseFidelityDiagnosisTitle.java b/src/main/java/com/ots/project/tool/report/MAQ/condition/ResponseFidelityDiagnosisTitle.java index 3492fbd..33e9021 100644 --- a/src/main/java/com/ots/project/tool/report/MAQ/condition/ResponseFidelityDiagnosisTitle.java +++ b/src/main/java/com/ots/project/tool/report/MAQ/condition/ResponseFidelityDiagnosisTitle.java @@ -21,6 +21,7 @@ public Map<String, String> getMAQwaterDropsImages() { return null; } + @Override public TLibraryCode calculate(Map<String, String> map, LangTypeEnum langType) { try { String p_sde_t1 = map.get("P_SDE_T1"); diff --git a/src/main/java/com/ots/project/tool/report/MAQNEW/MAQReport_V2.java b/src/main/java/com/ots/project/tool/report/MAQNEW/MAQReport_V2.java index 3c17d5b..82f8149 100644 --- a/src/main/java/com/ots/project/tool/report/MAQNEW/MAQReport_V2.java +++ b/src/main/java/com/ots/project/tool/report/MAQNEW/MAQReport_V2.java @@ -228,12 +228,9 @@ List<TLibraryCode> tLibraryCodes = p.calculateList(thaiCalculationMap, langType); if(tLibraryCodes != null && tLibraryCodes.size() > 0){ //琛ㄦ牸澶氫綅 璁$畻鍒嗘暟鍊艰祴鍊� 渚嬪 - // 琛ㄦ牸鐨勶細%P_Regula19_XX1% - // 琛ㄦ牸鐨勶細%P_Regula19_XX2% - // 琛ㄦ牸鐨勶細%P_Regula19_XX3% - // 琛ㄦ牸鐨勶細%P_Regula19_XX4% - // 琛ㄦ牸鐨勶細%P_Regula19_XX5% - // 琛ㄦ牸鐨勶細%P_Regula19_XX6% + // 琛ㄦ牸鐨勶細%ResponseFidelityDiagnosis_V2_0% + // 琛ㄦ牸鐨勶細%ResponseFidelityDiagnosis_V2_1% + // 琛ㄦ牸鐨勶細%ResponseFidelityDiagnosis_V2_2% for (int i = 0; i < tLibraryCodes.size(); i++) { TLibraryCode tLibraryCode = tLibraryCodes.get(i); textMap.put(p.getName() + "_" + i, Objects.isNull(tLibraryCode) || StringUtils.isBlank(tLibraryCode.getLangTypeContext(langType)) ? "N/A NONE" : tLibraryCode.getLangTypeContext(langType)); diff --git a/src/main/java/com/ots/project/tool/report/MAQNEW/base/BaseCondition_V2.java b/src/main/java/com/ots/project/tool/report/MAQNEW/base/BaseCondition_V2.java index 598c0fd..ffe797e 100644 --- a/src/main/java/com/ots/project/tool/report/MAQNEW/base/BaseCondition_V2.java +++ b/src/main/java/com/ots/project/tool/report/MAQNEW/base/BaseCondition_V2.java @@ -57,6 +57,13 @@ 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); diff --git a/src/main/java/com/ots/project/tool/report/MAQNEW/condition/KeyPointsCautions_V2.java b/src/main/java/com/ots/project/tool/report/MAQNEW/condition/KeyPointsCautions_V2.java index 24fc593..a91f008 100644 --- a/src/main/java/com/ots/project/tool/report/MAQNEW/condition/KeyPointsCautions_V2.java +++ b/src/main/java/com/ots/project/tool/report/MAQNEW/condition/KeyPointsCautions_V2.java @@ -17,6 +17,7 @@ @Slf4j public class KeyPointsCautions_V2 extends BaseCondition_V2 { private String name = "KeyPointsCautions_V2"; + @Override public TLibraryCode calculate(Map<String, String> map, LangTypeEnum langType) { try { Map<String, String> paramMap = new HashMap(); diff --git a/src/main/java/com/ots/project/tool/report/MAQNEW/condition/KeyPointsStrengths_V2.java b/src/main/java/com/ots/project/tool/report/MAQNEW/condition/KeyPointsStrengths_V2.java index 76d27d3..ab71125 100644 --- a/src/main/java/com/ots/project/tool/report/MAQNEW/condition/KeyPointsStrengths_V2.java +++ b/src/main/java/com/ots/project/tool/report/MAQNEW/condition/KeyPointsStrengths_V2.java @@ -17,6 +17,7 @@ @Slf4j public class KeyPointsStrengths_V2 extends BaseCondition_V2 { private String name = "KeyPointsStrengths_V2"; + @Override public TLibraryCode calculate(Map<String, String> map, LangTypeEnum langType) { try { Map<String, String> paramMap = new HashMap(); diff --git a/src/main/java/com/ots/project/tool/report/MAQNEW/condition/PrimaryLeadershipStyleContext_V2.java b/src/main/java/com/ots/project/tool/report/MAQNEW/condition/PrimaryLeadershipStyleContext_V2.java index 813a4e3..0a5e915 100644 --- a/src/main/java/com/ots/project/tool/report/MAQNEW/condition/PrimaryLeadershipStyleContext_V2.java +++ b/src/main/java/com/ots/project/tool/report/MAQNEW/condition/PrimaryLeadershipStyleContext_V2.java @@ -13,6 +13,7 @@ @Slf4j public class PrimaryLeadershipStyleContext_V2 extends BaseCondition_V2 { private String name = "PrimaryLeadershipStyleContext_V2"; + @Override public TLibraryCode calculate(Map<String, String> map, LangTypeEnum langType) { try { String p_task31 = map.get("P_Task31"); diff --git a/src/main/java/com/ots/project/tool/report/MAQNEW/condition/ResponseFidelityDiagnosisTitle_V2.java b/src/main/java/com/ots/project/tool/report/MAQNEW/condition/ResponseFidelityDiagnosisTitle_V2.java index aefb4df..16d7eb3 100644 --- a/src/main/java/com/ots/project/tool/report/MAQNEW/condition/ResponseFidelityDiagnosisTitle_V2.java +++ b/src/main/java/com/ots/project/tool/report/MAQNEW/condition/ResponseFidelityDiagnosisTitle_V2.java @@ -20,6 +20,7 @@ public Map<String, String> getMAQwaterDropsImages() { return null; } + @Override public TLibraryCode calculate(Map<String, String> map, LangTypeEnum langType) { try { String p_sde_t1 = map.get("P_SDE_T1"); diff --git a/src/main/java/com/ots/project/tool/report/MAQNEW/condition/ResponseFidelityDiagnosis_V2.java b/src/main/java/com/ots/project/tool/report/MAQNEW/condition/ResponseFidelityDiagnosis_V2.java index aa7a4ce..4dbcb1c 100644 --- a/src/main/java/com/ots/project/tool/report/MAQNEW/condition/ResponseFidelityDiagnosis_V2.java +++ b/src/main/java/com/ots/project/tool/report/MAQNEW/condition/ResponseFidelityDiagnosis_V2.java @@ -23,6 +23,7 @@ map.put(name + IMAGE_PREFIX + "3", Objects.isNull(P_INCON25) ? "0" : String.valueOf(P_INCON25)); return map; } + @Override public TLibraryCode calculate(Map<String, String> map, LangTypeEnum langType) { try { String p_sde_t1 = map.get("P_SDE_T1"); @@ -62,6 +63,8 @@ return null; } } + + @Override public List<TLibraryCode> calculateList(Map<String, String> map, LangTypeEnum langType) { try { String p_sde_t1 = map.get("P_SDE_T1"); diff --git a/src/main/java/com/ots/project/tool/report/RuilinMAQ/condition/RuilinTestResultValidityDiagnosis.java b/src/main/java/com/ots/project/tool/report/RuilinMAQ/condition/RuilinTestResultValidityDiagnosis.java index ad4ba2a..3486d4c 100644 --- a/src/main/java/com/ots/project/tool/report/RuilinMAQ/condition/RuilinTestResultValidityDiagnosis.java +++ b/src/main/java/com/ots/project/tool/report/RuilinMAQ/condition/RuilinTestResultValidityDiagnosis.java @@ -17,6 +17,7 @@ private Double P_SDE_T1; private Double P_IM_T1; private Double P_INCON_T1; + @Override public TLibraryCode calculate(Map<String, String> map, LangTypeEnum langType) { try { String p_sde_t1 = map.get("P_SDE_T1"); diff --git a/src/main/java/com/ots/project/tool/report/RuilinMAQ/condition/RuilinTestResultValidityDiagnosisContext.java b/src/main/java/com/ots/project/tool/report/RuilinMAQ/condition/RuilinTestResultValidityDiagnosisContext.java index e1cebfa..e577bd5 100644 --- a/src/main/java/com/ots/project/tool/report/RuilinMAQ/condition/RuilinTestResultValidityDiagnosisContext.java +++ b/src/main/java/com/ots/project/tool/report/RuilinMAQ/condition/RuilinTestResultValidityDiagnosisContext.java @@ -25,6 +25,7 @@ map.put(name + IMAGE_PREFIX + "3", Objects.isNull(P_INCON25) ? "0" : String.valueOf(P_INCON25)); return map; } + @Override public TLibraryCode calculate(Map<String, String> map, LangTypeEnum langType) { try { String p_sde_t1 = map.get("P_SDE_T1"); diff --git a/src/main/java/com/ots/project/tool/report/SAQ/SAQReport.java b/src/main/java/com/ots/project/tool/report/SAQ/SAQReport.java index 6e09da8..4433ca2 100644 --- a/src/main/java/com/ots/project/tool/report/SAQ/SAQReport.java +++ b/src/main/java/com/ots/project/tool/report/SAQ/SAQReport.java @@ -16,6 +16,8 @@ import com.ots.project.tool.report.SAQ.condition.SAQConditionVO; import com.ots.project.tool.report.SAQ.condition.SAQSummary; import com.ots.project.tool.report.SAQ.condition.SAQSummaryCondition; +import com.ots.project.tool.report.SAQ.gs.condition.ResponseFidelityDiagnosisSAQGs; +import com.ots.project.tool.report.SAQ.gs.condition.ResponseFidelityDiagnosisSAQGsTitle; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; @@ -47,9 +49,21 @@ private Map otherParams; private LangTypeEnum langType; + + /** + * 鍒濆鍖栨潯浠� + * @param reportTypeEnum + * @return + */ public List<BaseCondition> getParamList(ReportTypeEnum reportTypeEnum) { return init(reportTypeEnum); } + + /** + * 鍒濆鍖栨墍鏈夋姤鍛婂弬鏁� + * @param reportTypeEnum + * @return + */ private List<BaseCondition> init(ReportTypeEnum reportTypeEnum) { List<BaseCondition> paramList = new ArrayList<>(); @@ -57,9 +71,12 @@ SimpleMessage simpleMessage = new SimpleMessage(p); return simpleMessage; }).collect(Collectors.toList())); - + //鎸囨爣鍛戒腑瀵瑰簲瀛楀吀 瀹屾暣鐗� paramList.add(new ResponseFidelityDiagnosisSAQTitle()); paramList.add(new ResponseFidelityDiagnosisSAQ()); + //鏀寔GS绠�鏄撶増 + paramList.add(new ResponseFidelityDiagnosisSAQGs()); + paramList.add(new ResponseFidelityDiagnosisSAQGsTitle()); paramList.addAll(getScoreCharacteristicsList().stream().map(p -> { ScoreCharacteristics scoreCharacteristics = new ScoreCharacteristics(p); @@ -119,7 +136,7 @@ private List<String> getSimpleMessageCoreIds() { //鏀寔SAQ GS绠�鏄撶増 return Arrays.asList("LIBSAQGS0001","LIBSAQGS0002","LIBSAQGS0005","LIBSAQGS0008","LIBSAQGS0009", - "LIBSAQGS0011","LIBSAQGS0017","LIBSAQGS0015","LIBSAQGS8800", + "LIBSAQGS0011","LIBSAQGS0017","LIBSAQGS0015","LIBSAQGS8800","LIBSAQGS0018", "LIBSAQ0001", "LIBSAQ0003", "LIBSAQ0005", "LIBSAQ0007", "LIBSAQ0009", "LIBSAQ00011", "LIBSAQ0015", "LIBSAQ0017", "LIBSAQ0162", "LIBSAQ0164", "LIBSAQ0020", "LIBSAQ0022", "LIBSAQ0024", "LIBSAQ0026", "LIBSAQ0030", "LIBSAQ0035", "LIBSAQ0040", "LIBSAQ0041", @@ -184,7 +201,7 @@ public ReportResultData getTemplateParameters(Map<String, String> thaiCalculationMap, ReportTypeEnum type, LangTypeEnum langType) { this.reportTypeEnum = type; this.langType = langType; - + //鍩烘湰淇℃伅瀛楁 Map textMap = new HashMap(); Map waterDropsMap = new HashMap(); textMap.put("questionnaireTaker", getQuestionnaireTaker()); @@ -192,10 +209,22 @@ textMap.put("reportGenerationDate", getReportGenerationDate()); textMap.put("userName", getUserName()); textMap.put("questionnaireEmail", getQuestionnaireEmail()); - + //鏍规嵁鎶ュ憡绫诲瀷鑾峰彇鎶ュ憡瀛楀吀 getParamList(type).stream().forEach(p -> { TLibraryCode calculate = p.calculate(thaiCalculationMap, langType); - textMap.put(p.getName(), Objects.isNull(calculate) || StringUtils.isBlank(calculate.getLangTypeContext(langType)) ? "N/A NONE" : calculate.getLangTypeContext(langType)); + List<TLibraryCode> tLibraryCodes = p.calculateList(thaiCalculationMap, langType); + if(tLibraryCodes != null && tLibraryCodes.size() > 0){//琛ㄦ牸澶氫綅 璁$畻鍒嗘暟鍊艰祴鍊� 渚嬪 + // 琛ㄦ牸鐨勶細%ResponseFidelityDiagnosis_V2_0% + // 琛ㄦ牸鐨勶細%ResponseFidelityDiagnosis_V2_1% + // 琛ㄦ牸鐨勶細%ResponseFidelityDiagnosis_V2_2% + for (int i = 0; i < tLibraryCodes.size(); i++) { + TLibraryCode tLibraryCode = tLibraryCodes.get(i); + textMap.put(p.getName() + "_" + i, Objects.isNull(tLibraryCode) || StringUtils.isBlank(tLibraryCode.getLangTypeContext(langType)) ? "N/A NONE" : tLibraryCode.getLangTypeContext(langType)); + } + }else{ + textMap.put(p.getName(), Objects.isNull(calculate) || StringUtils.isBlank(calculate.getLangTypeContext(langType)) ? "N/A NONE" : calculate.getLangTypeContext(langType)); + } + //姘存淮闆嗗悎 if (Objects.nonNull(p.getMAQwaterDropsImages())) { waterDropsMap.putAll(p.getMAQwaterDropsImages()); } diff --git a/src/main/java/com/ots/project/tool/report/SAQ/chart/RowData.java b/src/main/java/com/ots/project/tool/report/SAQ/chart/RowData.java new file mode 100644 index 0000000..8c84599 --- /dev/null +++ b/src/main/java/com/ots/project/tool/report/SAQ/chart/RowData.java @@ -0,0 +1,23 @@ +package com.ots.project.tool.report.SAQ.chart; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * @description: 琛屾暟鎹� + * @author: zhijie + * @create: 2021-06-07 23:30 + **/ +@Data +@NoArgsConstructor //鏃犲弬鏋勯�� +@AllArgsConstructor //鏈夊弬鏋勯�� +public class RowData { + + public String name; + + /** + */ + public double value; + +} diff --git a/src/main/java/com/ots/project/tool/report/SAQ/chart/SAQChart.java b/src/main/java/com/ots/project/tool/report/SAQ/chart/SAQChart.java new file mode 100644 index 0000000..47e6fb5 --- /dev/null +++ b/src/main/java/com/ots/project/tool/report/SAQ/chart/SAQChart.java @@ -0,0 +1,377 @@ +package com.ots.project.tool.report.SAQ.chart; + +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ooxml.POIXMLDocument; +import org.apache.poi.ooxml.POIXMLDocumentPart; +import org.apache.poi.openxml4j.exceptions.InvalidFormatException; +import org.apache.poi.xssf.usermodel.XSSFCell; +import org.apache.poi.xssf.usermodel.XSSFRow; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.apache.poi.xwpf.usermodel.XWPFChart; +import org.apache.poi.xwpf.usermodel.XWPFDocument; +import org.openxmlformats.schemas.drawingml.x2006.chart.*; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.*; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +/** + * @description: SAQ鍥捐〃 鏁g偣鍥捐窡鏌卞舰鍥炬暟鎹彉鏇� + * @author: zhijie + * @create: 2021-06-07 23:31 + **/ +@Slf4j +public class SAQChart { + + + public static void main(String[] args) throws IOException { + XWPFDocument document = new XWPFDocument(POIXMLDocument.openPackage("D:\\娴嬭瘎绯荤粺\\闇�姹俓\2.docx")); + Map<String, Object> textMap = new HashMap<String, Object>(); + changeChart(document,textMap); + } + + /** + * 鏇挎崲SAQ鍥捐〃鏁版嵁 + * @param document 鏂囨。瀵硅薄 + * @param textMap 鎶ュ憡瀛楀吀閿�煎 + * @return + */ + public static boolean changeChart(XWPFDocument document, Map<String, Object> textMap){ + List<SeriesData> seriesDatas = initData(textMap); + if(seriesDatas == null){ + log.error("鏇挎崲SAQ鍥捐〃鏁版嵁,鍒濆鍖栨暟鎹け璐�!"); + return false; + } + //SAQ鍥捐〃鏁版嵁 + changeSAQChart(document,seriesDatas); + return true; + } + + /** + * 鍒ゆ柇鏄惁涓虹┖ + * @param value + * @return + */ + public static boolean checkParamsIsNull(String... value) { + for (int i = 0; i < value.length; i++) { + if (Objects.isNull(value[i])) { + return true; + } + } + return false; + } + + /** + * 鍒濆鍖栨姤鍛婃暟鎹� + * @param textMap + * @return + */ + public static List<SeriesData> initData(Map<String, Object> textMap){ + //鑾峰彇鍛戒腑鏁板�� + String p_sde23 = (String) textMap.get("P_SDE23"); + String p_im24 = (String) textMap.get("P_IM24"); + String p_incon25 = (String) textMap.get("P_INCON25"); + //鍒ゆ柇鏄惁涓虹┖ + if (checkParamsIsNull(p_sde23, p_im24, p_incon25)) { + return null; + } + Double P_SDE23 = Double.valueOf(p_sde23); + Double P_IM24 = Double.valueOf(p_im24); + Double P_INCON25 = Double.valueOf(p_incon25); + + // 娴嬭瘯鏁版嵁 + List<SeriesData> seriesDatas = Arrays.asList( + new SeriesData("涓汉鏁板�煎湪姝よ皟鏁�", Arrays.asList( + new RowData("涓汉鏁板�煎湪姝よ皟鏁�", P_INCON25), + new RowData("涓汉鏁板�煎湪姝よ皟鏁�", P_IM24), + new RowData("涓汉鏁板�煎湪姝よ皟鏁�", P_SDE23) + )), + new SeriesData("涓绘煴褰㈡暟鎹紙x杞达級1", Arrays.asList( + new RowData("涓绘煴褰㈡暟鎹紙x杞达級1", 0), + new RowData("涓绘煴褰㈡暟鎹紙x杞达級1", 5), + new RowData("涓绘煴褰㈡暟鎹紙x杞达級1", 5) + )), + new SeriesData("涓绘煴褰㈡暟鎹紙x杞达級2", Arrays.asList( + new RowData("涓绘煴褰㈡暟鎹紙x杞达級2", 5), + new RowData("涓绘煴褰㈡暟鎹紙x杞达級2", 5), + new RowData("涓绘煴褰㈡暟鎹紙x杞达級2", 5) + )), + new SeriesData("杈呭姪鏌卞舰鏁版嵁", Arrays.asList( + new RowData("杈呭姪鏌卞舰鏁版嵁", 100), + new RowData("杈呭姪鏌卞舰鏁版嵁", 95), + new RowData("杈呭姪鏌卞舰鏁版嵁", 95) + )), + new SeriesData("Y杞�", Arrays.asList( + new RowData("Y杞�", 27), + new RowData("Y杞�", 60), + new RowData("Y杞�", 93) + )) + ); + return seriesDatas; + } + + /** + * 鏇挎崲word鍥捐〃 鏁g偣鍥捐窡鏌卞舰鍥剧粍鍚堝浘褰� + * @param doc + * @param seriesDatas + */ + public static void changeSAQChart(XWPFDocument doc,List<SeriesData> seriesDatas) { + try { + //鍔ㄦ�佸埛鏂板浘琛� + List<POIXMLDocumentPart> relations = doc.getRelations(); + for (POIXMLDocumentPart part : relations) { + if (part instanceof XWPFChart) { + // 鍥捐〃鍏冪礌 + XWPFChart chart = (XWPFChart) part; + + // 鏌ョ湅閲岄潰鐨勫浘琛ㄦ暟鎹紝鎵嶈兘鐭ラ亾鏄粈涔堝浘琛� + CTPlotArea plot = chart.getCTChart().getPlotArea(); + // excel鍐呯疆琛ㄦ牸 + XSSFWorkbook workbook = chart.getWorkbook(); + XSSFSheet sheet = workbook.getSheetAt(0); + + //鏁g偣鍥� + if (!plot.getScatterChartList().isEmpty()) { + CTScatterChart scatterChart = plot.getScatterChartArray(0); + //System.out.println("鏁g偣鍥緖"+plot.getScatterChartList().size()+"}"); + //鍒锋柊鍐呯疆excel鏁版嵁 + refreshExcel(seriesDatas, workbook, sheet); + workbook.write(chart.getPackagePart().getOutputStream()); + + //鏁g偣鍥炬暟鎹簮 XY鍧愭爣 + List<SeriesData> scatterDatas = new ArrayList<SeriesData>(); + scatterDatas.add(seriesDatas.get(0)); + scatterDatas.add(seriesDatas.get(4)); + int i = 0; + for (CTScatterSer ser : scatterChart.getSerList()) { + //鏇存柊鏁g偣鍥剧紦瀛� + updateScatterChart(scatterDatas, ser.getXVal(), ser.getYVal()); + ++i; + } + } + //鏌卞舰鍥� + if (!plot.getBarChartList().isEmpty()) { + CTBarChart barChart = plot.getBarChartArray(0); + //System.out.println("鏌卞舰鍥緖"+plot.getScatterChartList().size()+"}"); + //鍒锋柊鍐呯疆excel鏁版嵁 + refreshExcel(seriesDatas, workbook, sheet); + workbook.write(chart.getPackagePart().getOutputStream()); + + //鏌卞舰鍥炬暟鎹簮 + List<SeriesData> barDatas = seriesDatas.subList(1,4); + //鍥犱负鏌卞舰鍥綜TBarSer娌℃寜excel椤哄簭璧� 璋冩崲鏁版嵁浣嶇疆淇濇寔瀵瑰簲 + Collections.swap(barDatas, 1, 2); + int i = 0; + for (CTBarSer ser : barChart.getSerList()) { + //鏇存柊鏌卞舰鍥炬暟鎹紦瀛� + updateBarChart(barDatas.get(i), ser.getVal()); + ++i; + } + } + } + } + + } catch (Exception e) { + e.printStackTrace(); + log.error("SAQGS鏇挎崲word鍥捐〃 鏁g偣鍥捐窡鏌卞舰鍥剧粍鍚堝浘褰㈠け璐ワ細{}",e); + } + } + + /** + * 鏇存柊鍥捐〃鐨勫叧鑱� excel + * + * @param seriesDatas + * @param workbook + * @param sheet + */ + protected static void refreshExcel(List<SeriesData> seriesDatas, XSSFWorkbook workbook, XSSFSheet sheet) { + XSSFRow title = sheet.getRow(0); + //閬嶅巻鏁版嵁鏁扮粍杩涜excel璧嬪�� + for (int i = 0; i < seriesDatas.size(); i++) { + SeriesData data = seriesDatas.get(i); + if (data.name != null && !data.name.isEmpty()) { + // 绗竴琛屾爣棰� + XSSFCell cell = title.getCell(i); + if (cell == null) { + cell = title.createCell(i + 1); + } + cell.setCellValue(data.name); + } + int size = data.value.size(); + //閬嶅巻鏁版嵁杩涜璧嬪�� + for (int j = 0; j < size; j++) { + //浠庣浜岃寮�濮嬭祴鍊� + XSSFRow row = sheet.getRow(j + 1); + if (row == null) { + row = sheet.createRow(j + 1); + } + RowData cellValu = data.value.get(j); + + //绗竴鍒楀紑濮嬭祴鍊� + XSSFCell cell = row.getCell(i); + if (cell == null) { + cell = row.createCell(i); + } + cell.setCellValue(cellValu.value); + } + //鍒犻櫎澶氫綑琛屾暟 + int lastRowNum = sheet.getLastRowNum(); + if (lastRowNum > size) { + for (int idx = lastRowNum; idx > size; idx--) { + sheet.removeRow(sheet.getRow(idx)); + } + } + } + } + + + /** + * 鏇存柊 鏁g偣鍥� 缂撳瓨鏁版嵁 + * + * @param seriesDatas 鏁版嵁 + * @param xDataSource X鍧愭爣鏁版嵁缂撳瓨 + * @param yDataSource Y鍧愭爣鏁版嵁缂撳瓨 + */ + protected static void updateScatterChart(List<SeriesData> seriesDatas, CTAxDataSource xDataSource, + CTNumDataSource yDataSource) { + + //鑾峰彇xy鍧愭爣鏁版嵁鏉℃暟 + long xNumCnt = xDataSource.getNumRef().getNumCache().getPtCount().getVal(); + long yNumCnt = yDataSource.getNumRef().getNumCache().getPtCount().getVal(); + + //鑾峰彇XY鏈�鏂版暟鎹� + List<RowData> xRowDatas = seriesDatas.get(0).getValue(); + int xRowDataSize = xRowDatas.size(); + List<RowData> yRowDatas = seriesDatas.get(1).getValue(); + int yRowDataSize = yRowDatas.size(); + + //鏇存柊X鍧愭爣缂撳瓨 + for (int i = 0; i < xRowDatas.size(); i++) { + RowData cellValu = xRowDatas.get(i); + CTNumVal val = xNumCnt > i ? xDataSource.getNumRef().getNumCache().getPtArray(i) + : xDataSource.getNumRef().getNumCache().addNewPt(); + val.setIdx(i); + val.setV(String.format("%.0f", cellValu.value)); + } + + //鏇存柊Y鍧愭爣缂撳瓨 + for (int i = 0; i < yRowDatas.size(); i++) { + RowData cellValu = yRowDatas.get(i); + CTNumVal val = yNumCnt > i ? yDataSource.getNumRef().getNumCache().getPtArray(i) + : yDataSource.getNumRef().getNumCache().addNewPt(); + val.setIdx(i); + val.setV(String.format("%.0f", cellValu.value)); + } + + // 鏇存柊瀵瑰簲excel鐨勮寖鍥� + xDataSource.getNumRef().setF( + replaceRowEnd(xDataSource.getNumRef().getF(), + xNumCnt, + xRowDataSize)); + yDataSource.getNumRef().setF( + replaceRowEnd(yDataSource.getNumRef().getF(), + yNumCnt, + yRowDataSize)); + + // 鍒犻櫎澶氱殑 + if (xNumCnt > xRowDataSize) { + for (int idx = xRowDataSize; idx < xNumCnt; idx++) { + xDataSource.getNumRef().getNumCache().removePt(xRowDataSize); + } + } + if (yNumCnt > yRowDataSize) { + for (int idx = yRowDataSize; idx < yNumCnt; idx++) { + yDataSource.getNumRef().getNumCache().removePt(yRowDataSize); + } + } + // 鏇存柊涓暟 + xDataSource.getNumRef().getNumCache().getPtCount().setVal(xRowDataSize); + // 鏇存柊涓暟 + yDataSource.getNumRef().getNumCache().getPtCount().setVal(yRowDataSize); + } + + + /** + * 鏇存柊 鏌卞舰鍥� 鐨勭紦瀛樻暟鎹� + * + * @param seriesDatas 鏁版嵁 + * @param numDataSource 鏁版嵁鐨勭紦瀛� + */ + protected static void updateBarChart(SeriesData seriesDatas, CTNumDataSource numDataSource) { + //鑾峰彇鏌卞舰鍥炬暟鎹暟閲� + long ptNumCnt = numDataSource.getNumRef().getNumCache().getPtCount().getVal(); + int dataSize = seriesDatas.value.size(); + for (int i = 0; i < dataSize; i++) { + RowData cellValu = seriesDatas.value.get(i); + CTNumVal val = ptNumCnt > i ? numDataSource.getNumRef().getNumCache().getPtArray(i) + : numDataSource.getNumRef().getNumCache().addNewPt(); + val.setIdx(i); + val.setV(String.format("%.0f", cellValu.value)); + + } + + // 鏇存柊瀵瑰簲excel鐨勮寖鍥� + numDataSource.getNumRef().setF( + replaceRowEnd(numDataSource.getNumRef().getF(), + ptNumCnt, + dataSize)); + + // 鍒犻櫎澶氱殑 + if (ptNumCnt > dataSize) { + for (int idx = dataSize; idx < ptNumCnt; idx++) { + numDataSource.getNumRef().getNumCache().removePt(dataSize); + } + } + // 鏇存柊涓暟 + numDataSource.getNumRef().getNumCache().getPtCount().setVal(dataSize); + } + + + /** + * 鏇挎崲 褰㈠锛� Sheet1!$A$2:$A$4 鐨勫瓧绗� + * + * @param range + * @return + */ + public static String replaceRowEnd(String range, long oldSize, long newSize) { + Pattern pattern = Pattern.compile("(:\\$[A-Z]+\\$)(\\d+)"); + Matcher matcher = pattern.matcher(range); + if (matcher.find()) { + long old = Long.parseLong(matcher.group(2)); + return range.replaceAll("(:\\$[A-Z]+\\$)(\\d+)", "$1" + Long.toString(old - oldSize + newSize)); + } + return range; + } + + /** + * 鑾峰彇鍥捐〃鏈夊摢浜涚被鍨� + * @param part + */ + public static void getChartType(POIXMLDocumentPart part){ + XWPFChart chart = (XWPFChart) part; + //鏍规嵁灞炴�х涓�鍒楀悕绉板垏鎹㈡暟鎹被鍨� + CTChart ctChart = chart.getCTChart(); + CTPlotArea plotArea = ctChart.getPlotArea(); + + if (!plotArea.getBarChartList().isEmpty()) { + System.out.println("鏌辩姸鍥緖"+plotArea.getBarChartList().size()+"}"); + } + if (!plotArea.getPieChartList().isEmpty()) { + System.out.println("楗煎浘{"+plotArea.getPieChartList().size()+"}"); + } + if (!plotArea.getLineChartList().isEmpty()) { + System.out.println("绾垮舰鍥緖"+plotArea.getLineChartList().size()+"}"); + } + if (!plotArea.getBar3DChartList().isEmpty()) { + System.out.println("鏌辩姸鍥�3D{"+plotArea.getBar3DChartList().size()+"}"); + } + if (!plotArea.getScatterChartList().isEmpty()) { + System.out.println("鏁g偣鍥緖"+plotArea.getScatterChartList().size()+"}"); + } + } + +} diff --git a/src/main/java/com/ots/project/tool/report/SAQ/chart/SeriesData.java b/src/main/java/com/ots/project/tool/report/SAQ/chart/SeriesData.java new file mode 100644 index 0000000..bbb10dc --- /dev/null +++ b/src/main/java/com/ots/project/tool/report/SAQ/chart/SeriesData.java @@ -0,0 +1,26 @@ +package com.ots.project.tool.report.SAQ.chart; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @description: 鍥捐〃鏁版嵁 + * @author: zhijie + * @create: 2021-06-07 23:29 + **/ +@Data +@NoArgsConstructor //鏃犲弬鏋勯�� +@AllArgsConstructor //鏈夊弬鏋勯�� +public class SeriesData { + + /** + * value 绯诲垪鐨勫悕瀛� + */ + public String name; + + public List<RowData> value; + +} diff --git a/src/main/java/com/ots/project/tool/report/SAQ/condition/ResponseFidelityDiagnosisSAQ.java b/src/main/java/com/ots/project/tool/report/SAQ/condition/ResponseFidelityDiagnosisSAQ.java index 93dd83b..d371261 100644 --- a/src/main/java/com/ots/project/tool/report/SAQ/condition/ResponseFidelityDiagnosisSAQ.java +++ b/src/main/java/com/ots/project/tool/report/SAQ/condition/ResponseFidelityDiagnosisSAQ.java @@ -25,6 +25,7 @@ map.put(name + IMAGE_PREFIX + "3", Objects.isNull(P_INCON25) ? "0" : String.valueOf(P_INCON25)); return map; } + @Override public TLibraryCode calculate(Map<String, String> map, LangTypeEnum langType) { try { String p_sde_t1 = map.get("P_SDE_T1"); diff --git a/src/main/java/com/ots/project/tool/report/SAQ/condition/ResponseFidelityDiagnosisSAQTitle.java b/src/main/java/com/ots/project/tool/report/SAQ/condition/ResponseFidelityDiagnosisSAQTitle.java index 44b9c5e..47590f7 100644 --- a/src/main/java/com/ots/project/tool/report/SAQ/condition/ResponseFidelityDiagnosisSAQTitle.java +++ b/src/main/java/com/ots/project/tool/report/SAQ/condition/ResponseFidelityDiagnosisSAQTitle.java @@ -20,6 +20,7 @@ public Map<String, String> getMAQwaterDropsImages() { return null; } + @Override public TLibraryCode calculate(Map<String, String> map, LangTypeEnum langType) { try { String p_sde_t1 = map.get("P_SDE_T1"); diff --git a/src/main/java/com/ots/project/tool/report/SAQ/gs/condition/ResponseFidelityDiagnosisSAQGs.java b/src/main/java/com/ots/project/tool/report/SAQ/gs/condition/ResponseFidelityDiagnosisSAQGs.java new file mode 100644 index 0000000..989c4cb --- /dev/null +++ b/src/main/java/com/ots/project/tool/report/SAQ/gs/condition/ResponseFidelityDiagnosisSAQGs.java @@ -0,0 +1,136 @@ +package com.ots.project.tool.report.SAQ.gs.condition; + +import com.ots.common.enums.LangTypeEnum; +import com.ots.project.exam.domain.TLibraryCode; +import com.ots.project.tool.report.MAQ.base.BaseCondition; +import lombok.Getter; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; + +import java.util.*; + +/** +* @Description: SAQ绠�鏄撶増缁撴灉鏍囬璁$畻 +* @Author: zhijie +* @Date: 2021/6/6 +*/ +@Getter +@Setter +@Slf4j +public class ResponseFidelityDiagnosisSAQGs extends BaseCondition { + private String name = "ResponseFidelityDiagnosisSAQGs"; + private Double P_SDE23; + private Double P_IM24; + private Double P_INCON25; + + @Override + public Map<String, String> getMAQwaterDropsImages() { + Map map = new HashMap(); + map.put(name + IMAGE_PREFIX + "1", Objects.isNull(P_SDE23) ? "0" : String.valueOf(P_SDE23)); + map.put(name + IMAGE_PREFIX + "2", Objects.isNull(P_IM24) ? "0" : String.valueOf(P_IM24)); + map.put(name + IMAGE_PREFIX + "3", Objects.isNull(P_INCON25) ? "0" : String.valueOf(P_INCON25)); + return map; + } + + /** + * 鍛戒腑璁$畻 + * @param map + * @param langType + * @return + */ + @Override + public TLibraryCode calculate(Map<String, String> map, LangTypeEnum langType) { + try { + /** + * 鑾峰彇娉板浗鎺ュ彛杩斿洖鐨勬不鏍� + */ + String p_sde_t1 = map.get("P_SDE_T1"); + String p_im_t1 = map.get("P_IM_T1"); + String p_incon_t1 = map.get("P_INCON_T1"); + String p_sde23 = map.get("P_SDE23"); + String p_im24 = map.get("P_IM24"); + String p_incon25 = map.get("P_INCON25"); + //妫�鏌ユ槸鍚︿负绌� + if (checkParamsIsNull(p_sde_t1, p_im_t1, p_incon_t1, p_sde23, p_im24, p_incon25)) { + return null; + } + Double P_SDE_T1 = Double.valueOf(p_sde_t1); + Double P_IM_T1 = Double.valueOf(p_im_t1); + Double P_INCON_T1 = Double.valueOf(p_incon_t1); + P_SDE23 = Double.valueOf(p_sde23); + P_IM24 = Double.valueOf(p_im24); + P_INCON25 = Double.valueOf(p_incon25); + //鏍规嵁鎸囨爣璁$畻瀵瑰簲瀛楀吀 + boolean LIBSAQGS8801 = (P_SDE_T1 >= 95 || P_IM_T1 >= 95 || P_INCON_T1 >= 95) && (P_SDE23 >= 95 || P_IM24 >= 95 || P_INCON25 >= 95); + boolean LIBSAQGS8802 = (P_SDE_T1 >= 95 || P_IM_T1 >= 95 || P_INCON_T1 >= 95) && (5 < P_SDE23 && P_SDE23 < 95 && 5 < P_IM24 && P_IM24 < 95 && P_INCON25 < 95); + boolean LIBSAQGS8803 = (P_SDE_T1 >= 95 || P_IM_T1 >= 95 || P_INCON_T1 >= 95) && (P_SDE23 <= 5 || P_IM24 <= 5) && (P_INCON25 < 95); + boolean LIBSAQGS8804 = (P_SDE_T1 < 95 && P_IM_T1 < 95 && P_INCON_T1 < 95) && (P_SDE23 >= 95 || P_IM24 >= 95 || P_INCON25 >= 95); + boolean LIBSAQGS8805 = (P_SDE_T1 < 95 && P_IM_T1 < 95 && P_INCON_T1 < 95) && (5 < P_SDE23 && P_SDE23 < 95 && 5 < P_IM24 && P_IM24 < 95 && P_INCON25 < 95); + boolean LIBSAQGS8806 = (P_SDE_T1 < 95 && P_IM_T1 < 95 && P_INCON_T1 < 95) && (P_SDE23 <= 5 || P_IM24 <= 5) && (P_INCON25 < 95); + Map calculateMap = new HashMap(); + calculateMap.put(LIBSAQGS8801, "LIBSAQGS8801"); + calculateMap.put(LIBSAQGS8802, "LIBSAQGS8802"); + calculateMap.put(LIBSAQGS8803, "LIBSAQGS8803"); + calculateMap.put(LIBSAQGS8804, "LIBSAQGS8804"); + calculateMap.put(LIBSAQGS8805, "LIBSAQGS8805"); + calculateMap.put(LIBSAQGS8806, "LIBSAQGS8806"); + String codeId = selectTrueObject(calculateMap); + //鏍规嵁鍛戒腑鍊艰幏鍙栨姤鍛婂瓧鍏歌繑鍥� + TLibraryCode maqReportLibrary = getMaqReportLibrary(map, codeId, langType); + return maqReportLibrary; + } catch (Exception ex) { + log.error("ResponseFidelityDiagnosisSAQGs error:{}", ex.getMessage(), ex); + return null; + } + } + + @Override + public List<TLibraryCode> calculateList(Map<String, String> map, LangTypeEnum langType) { + try { + /** + * 鑾峰彇娉板浗鎺ュ彛杩斿洖鐨勬不鏍� + */ + String p_sde_t1 = map.get("P_SDE_T1"); + String p_im_t1 = map.get("P_IM_T1"); + String p_incon_t1 = map.get("P_INCON_T1"); + String p_sde23 = map.get("P_SDE23"); + String p_im24 = map.get("P_IM24"); + String p_incon25 = map.get("P_INCON25"); + //妫�鏌ユ槸鍚︿负绌� + if (checkParamsIsNull(p_sde_t1, p_im_t1, p_incon_t1, p_sde23, p_im24, p_incon25)) { + return null; + } + Double P_SDE_T1 = Double.valueOf(p_sde_t1); + Double P_IM_T1 = Double.valueOf(p_im_t1); + Double P_INCON_T1 = Double.valueOf(p_incon_t1); + P_SDE23 = Double.valueOf(p_sde23); + P_IM24 = Double.valueOf(p_im24); + P_INCON25 = Double.valueOf(p_incon25); + //鏍规嵁鎸囨爣璁$畻瀵瑰簲瀛楀吀 + boolean LIBSAQGS8801_3 = (P_SDE_T1 >= 95 || P_IM_T1 >= 95 || P_INCON_T1 >= 95) && (P_SDE23 >= 95 || P_IM24 >= 95 || P_INCON25 >= 95); + boolean LIBSAQGS8802_3 = (P_SDE_T1 >= 95 || P_IM_T1 >= 95 || P_INCON_T1 >= 95) && ((5 < P_SDE23 && P_SDE23 < 95) && (5 < P_IM24 && P_IM24 < 95) && P_INCON25 < 95); + boolean LIBSAQGS8803_3 = (P_SDE_T1 >= 95 || P_IM_T1 >= 95 || P_INCON_T1 >= 95) && (P_SDE23 <= 5 || P_IM24 <= 5) && (P_INCON25 < 95); + boolean LIBSAQGS8804_3 = (P_SDE_T1 < 95 && P_IM_T1 < 95 && P_INCON_T1 < 95) && (P_SDE23 >= 95 || P_IM24 >= 95 || P_INCON25 >= 95); + boolean LIBSAQGS8805_3 = (P_SDE_T1 < 95 && P_IM_T1 < 95 && P_INCON_T1 < 95) && ((5 < P_SDE23 && P_SDE23 < 95) && (5 < P_IM24 && P_IM24 < 95) && P_INCON25 < 95); + boolean LIBSAQGS8806_3 = (P_SDE_T1 < 95 && P_IM_T1 < 95 && P_INCON_T1 < 95) && (P_SDE23 <= 5 || P_IM24 <= 5) && (P_INCON25 < 95); + Map calculateMap = new HashMap(); + calculateMap.put(LIBSAQGS8801_3, "LIBSAQGS88011,LIBSAQGS88012,LIBSAQGS88013"); + calculateMap.put(LIBSAQGS8802_3, "LIBSAQGS88021,LIBSAQGS88022,LIBSAQGS88023"); + calculateMap.put(LIBSAQGS8803_3, "LIBSAQGS88031,LIBSAQGS88032,LIBSAQGS88033"); + calculateMap.put(LIBSAQGS8804_3, "LIBSAQGS88041,LIBSAQGS88042,LIBSAQGS88043"); + calculateMap.put(LIBSAQGS8805_3, "LIBSAQGS88051,LIBSAQGS88052,LIBSAQGS88053"); + calculateMap.put(LIBSAQGS8806_3, "LIBSAQGS88061,LIBSAQGS88062,LIBSAQGS88063"); + String codeId = selectTrueObject(calculateMap); + String[] split = codeId.split(","); + List<TLibraryCode> libcodes = new ArrayList<>(); + Arrays.stream(split).forEach(item -> { + libcodes.add(getMaqReportLibrary(map, item, langType)); + }); + return libcodes; + } catch (Exception ex) { + log.error("ResponseFidelityDiagnosisSAQGs error:{}", ex.getMessage(), ex); + return null; + } + } + +} diff --git a/src/main/java/com/ots/project/tool/report/SAQ/gs/condition/ResponseFidelityDiagnosisSAQGsTitle.java b/src/main/java/com/ots/project/tool/report/SAQ/gs/condition/ResponseFidelityDiagnosisSAQGsTitle.java new file mode 100644 index 0000000..5182c91 --- /dev/null +++ b/src/main/java/com/ots/project/tool/report/SAQ/gs/condition/ResponseFidelityDiagnosisSAQGsTitle.java @@ -0,0 +1,77 @@ +package com.ots.project.tool.report.SAQ.gs.condition; + +import com.ots.common.enums.LangTypeEnum; +import com.ots.project.exam.domain.TLibraryCode; +import com.ots.project.tool.report.MAQ.base.BaseCondition; +import lombok.Getter; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; + +import java.util.HashMap; +import java.util.Map; + +/** + * @Description: SAQ绠�鏄撶増缁撴灉鍊艰绠� + * @Author: zhijie + * @Date: 2021/6/6 + */ +@Getter +@Setter +@Slf4j +public class ResponseFidelityDiagnosisSAQGsTitle extends BaseCondition { + private String name = "ResponseFidelityDiagnosisSAQGsTitle"; + private Double P_SDE_T1; + private Double P_IM_T1; + private Double P_INCON_T1; + @Override + public Map<String, String> getMAQwaterDropsImages() { + return null; + } + + /** + * 鍛戒腑璁$畻 + * @param map + * @param langType + * @return + */ + @Override + public TLibraryCode calculate(Map<String, String> map, LangTypeEnum langType) { + try { + String p_sde_t1 = map.get("P_SDE_T1"); + String p_im_t1 = map.get("P_IM_T1"); + String p_incon_t1 = map.get("P_INCON_T1"); + String p_sde23 = map.get("P_SDE23"); + String p_im24 = map.get("P_IM24"); + String p_incon25 = map.get("P_INCON25"); + if (checkParamsIsNull(p_sde_t1, p_im_t1, p_incon_t1, p_sde23, p_im24, p_incon25)) { + return null; + } + P_SDE_T1 = Double.valueOf(p_sde_t1); + P_IM_T1 = Double.valueOf(p_im_t1); + P_INCON_T1 = Double.valueOf(p_incon_t1); + Double P_SDE23 = Double.valueOf(p_sde23); + Double P_IM24 = Double.valueOf(p_im24); + Double P_INCON25 = Double.valueOf(p_incon25); + boolean LIBSAQ8810 = (P_SDE_T1 >= 95 || P_IM_T1 >= 95 || P_INCON_T1 >= 95) && (P_SDE23 >= 95 || P_IM24 >= 95 || P_INCON25 >= 95); + boolean LIBSAQ8820 = (P_SDE_T1 >= 95 || P_IM_T1 >= 95 || P_INCON_T1 >= 95) && (5 < P_SDE23 && P_SDE23< 95 && 5 < P_IM24 && P_IM24< 95 && P_INCON25 < 95); + boolean LIBSAQ8830 = (P_SDE_T1 >= 95 || P_IM_T1 >= 95 || P_INCON_T1 >= 95) && (P_SDE23 <= 5 || P_IM24 <= 5) && (P_INCON25 < 95); + boolean LIBSAQ8840 = (P_SDE_T1 < 95 && P_IM_T1 < 95 && P_INCON_T1 < 95) && (P_SDE23 >= 95 || P_IM24 >= 95 || P_INCON25 >= 95); + boolean LIBSAQ8850 = (P_SDE_T1 < 95 && P_IM_T1 < 95 && P_INCON_T1 < 95) && (5 < P_SDE23 && P_SDE23 < 95 && 5 < P_IM24 && P_IM24 < 95 && P_INCON25 < 95); + boolean LIBSAQ8860 = (P_SDE_T1 < 95 && P_IM_T1 < 95 && P_INCON_T1 < 95) && (P_SDE23 <= 5 || P_IM24 <= 5) && (P_INCON25 < 95); + Map calculateMap = new HashMap(); + calculateMap.put(LIBSAQ8810, "LIBSAQ8810"); + calculateMap.put(LIBSAQ8820, "LIBSAQ8820"); + calculateMap.put(LIBSAQ8830, "LIBSAQ8830"); + calculateMap.put(LIBSAQ8840, "LIBSAQ8840"); + calculateMap.put(LIBSAQ8850, "LIBSAQ8850"); + calculateMap.put(LIBSAQ8860, "LIBSAQ8860"); + String codeId = selectTrueObject(calculateMap); + + TLibraryCode maqReportLibrary = getMaqReportLibrary(map, codeId ,langType); + return maqReportLibrary; + } catch (Exception ex) { + log.error("ResponseFidelityDiagnosisSAQTitle error:{}", ex.getMessage(), ex); + return null; + } + } +} -- Gitblit v1.9.1