From 84d2cebc581878fb336e8c70861d680147ec2e89 Mon Sep 17 00:00:00 2001
From: linzhijie <1003392067@qq.com>
Date: 星期四, 13 四月 2023 17:39:02 +0800
Subject: [PATCH] 新增CIAQ模板

---
 src/main/java/com/ots/project/tool/report/CIAQ/CIAQReport.java                               |  132 ++++++++++++++++++++++++++++++++++++++++++++
 src/main/java/com/ots/project/tool/report/reportCalculation/request/CIAQRequest.java         |   31 ++++++++++
 src/main/java/com/ots/project/tool/report/reportCalculation/request/CalculationTypeEnum.java |    2 
 src/main/java/com/ots/common/enums/ReportTypeEnum.java                                       |    3 
 4 files changed, 166 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/ots/common/enums/ReportTypeEnum.java b/src/main/java/com/ots/common/enums/ReportTypeEnum.java
index ca765fd..752a349 100644
--- a/src/main/java/com/ots/common/enums/ReportTypeEnum.java
+++ b/src/main/java/com/ots/common/enums/ReportTypeEnum.java
@@ -4,7 +4,8 @@
 @Getter
 public enum ReportTypeEnum {
     Brief("Brief", "绠�鏄撶増"), Complete("Complete", "瀹屾暣鐗�"), SAQ("SAQ", "SAQ鎶ュ憡"), RuiLin("RuiLin", "鐫块偦鎶ュ憡"), CAQ("CAQ", "CAQ鎶ュ憡"),
-    JAQ("JAQ","JAQ鎶ュ憡"),MAQ("MAQ", "MAQ鎶ュ憡"),MAQV2("MAQV2", "MAQV2鎶ュ憡"),PAQ("PAQ", "PAQ鎶ュ憡"),MAQIAR("MAQIAR", "MAQIAR鎶ュ憡"),MAQTR("MAQTR", "MAQTR鎶ュ憡");
+    JAQ("JAQ","JAQ鎶ュ憡"),MAQ("MAQ", "MAQ鎶ュ憡"),MAQV2("MAQV2", "MAQV2鎶ュ憡"),PAQ("PAQ", "PAQ鎶ュ憡"),MAQIAR("MAQIAR", "MAQIAR鎶ュ憡"),
+    MAQTR("MAQTR", "MAQTR鎶ュ憡"),CIAQ("CIAQ", "CIAQ鎶ュ憡");
     private final String code;
     private final String message;
     ReportTypeEnum(String code, String message) {
diff --git a/src/main/java/com/ots/project/tool/report/CIAQ/CIAQReport.java b/src/main/java/com/ots/project/tool/report/CIAQ/CIAQReport.java
new file mode 100644
index 0000000..b32f3cf
--- /dev/null
+++ b/src/main/java/com/ots/project/tool/report/CIAQ/CIAQReport.java
@@ -0,0 +1,132 @@
+package com.ots.project.tool.report.CIAQ;
+
+import com.ots.common.enums.LangTypeEnum;
+import com.ots.common.enums.ReportTypeEnum;
+import com.ots.common.utils.StringUtils;
+import com.ots.project.exam.domain.TLibraryCode;
+import com.ots.project.tool.report.MAQNEW.base.BaseCondition_V2;
+import com.ots.project.tool.report.MAQNEW.condition.ResponseFidelityDiagnosisTitle_V2;
+import com.ots.project.tool.report.MAQNEW.condition.ResponseFidelityDiagnosis_V2;
+import com.ots.project.tool.report.MAQNEW.condition.ScoreCharacteristics_V2;
+import com.ots.project.tool.report.MAQNEW.condition.SimpleMessage_V2;
+import com.ots.project.tool.report.PAQ.condition.Diagnosis;
+import com.ots.project.tool.report.PAQ.condition.DiagnosisTitle;
+import com.ots.project.tool.report.ReportResultData;
+import lombok.Data;
+import lombok.extern.slf4j.Slf4j;
+
+import java.text.DecimalFormat;
+import java.util.*;
+import java.util.stream.Collectors;
+
+@Data
+@Slf4j
+public class CIAQReport {
+    private String questionnaireTaker;
+    private String questionnaireID;
+    private String reportGenerationDate;
+    private String userName;
+    private String questionnaireEmail;
+    private String questionnaireStartTime;
+    private String questionnaireEndTime;
+    private ReportTypeEnum reportTypeEnum;
+
+    private LangTypeEnum langType;
+
+    /**
+     * 鏍规嵁鎶ュ憡绫诲瀷鍒濆鍖栨暟鎹�
+     * @param reportTypeEnum
+     * @return
+     */
+    public List<BaseCondition_V2> getParamList(ReportTypeEnum reportTypeEnum) {
+        return init(reportTypeEnum);
+    }
+
+    /**
+     * 鏍规嵁鎶ュ憡绫诲瀷鍒濆鍖栨墍鏈�
+     * @param reportTypeEnum
+     * @return
+     */
+    private List<BaseCondition_V2> init(ReportTypeEnum reportTypeEnum) {
+        List<BaseCondition_V2> paramList = new ArrayList<>();
+
+        //鏅�氫俊鎭�
+        paramList.addAll(getSimpleMessageCoreIds().stream().map(p -> {
+            SimpleMessage_V2 simpleMessage = new SimpleMessage_V2(p);
+            return simpleMessage;
+        }).collect(Collectors.toList()));
+
+        //琛ㄦ牸璁$畻鏁板��
+        paramList.addAll(getScoreCharacteristicsList().stream().map(p -> {
+            ScoreCharacteristics_V2 scoreCharacteristics = new ScoreCharacteristics_V2(p);
+            return scoreCharacteristics;
+        }).collect(Collectors.toList()));
+
+        return paramList;
+    }
+
+    /**
+     * 琛ㄦ牸璁$畻鏁板��
+     * @return
+     */
+    private List<String> getScoreCharacteristicsList() {
+        return Arrays.asList("PR_Dim01", "PR_Dim02", "PR_Dim03", "PR_Dim04", "PR_Dim05", "PR_Dim06", "PR_Dim07", "PR_Dim08");
+    }
+
+    /**
+     * 鏅�氭枃鏈浛鎹ibrary
+     * @return
+     */
+    private List<String> getSimpleMessageCoreIds() {
+        return Arrays.asList(
+                "occ1H", "occ2H", "occ3H", "occ4H", "occ5H", "occ6H", "occ7H", "occ8H", "occ9H", "occ10H",
+                "occ1L", "occ2L", "occ3L", "occ4L", "occ5L", "occ6L", "occ7L", "occ8L", "occ9L", "occ10L",
+                "Condition");
+    }
+
+    /**
+     * 鑾峰彇鎶ュ憡瀛楀吀鏇挎崲鍊�
+     * @param thaiCalculationMap
+     * @param type
+     * @param langType
+     * @return
+     */
+    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());
+        textMap.put("questionnaireID", getQuestionnaireID());
+        textMap.put("reportGenerationDate", getReportGenerationDate());
+        textMap.put("userName", getUserName());
+        textMap.put("questionnaireEmail", getQuestionnaireEmail());
+        textMap.put("questionnaireStartTime", getQuestionnaireStartTime());
+        textMap.put("questionnaireEndTime", getQuestionnaireEndTime());
+        //鏍规嵁鎶ュ憡绫诲瀷鑾峰彇鎶ュ憡瀛楀吀
+        getParamList(type).stream().forEach(p -> {
+            //鑾峰彇瀵瑰簲璇█鎶ュ憡瀛楀吀
+            TLibraryCode calculate = p.calculate(thaiCalculationMap, 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));
+            }
+        });
+        textMap.putAll(thaiCalculationMap);
+        ReportResultData reportResultData = new ReportResultData();
+        reportResultData.setTextMap(textMap);
+        return reportResultData;
+    }
+}
diff --git a/src/main/java/com/ots/project/tool/report/reportCalculation/request/CIAQRequest.java b/src/main/java/com/ots/project/tool/report/reportCalculation/request/CIAQRequest.java
new file mode 100644
index 0000000..326115d
--- /dev/null
+++ b/src/main/java/com/ots/project/tool/report/reportCalculation/request/CIAQRequest.java
@@ -0,0 +1,31 @@
+package com.ots.project.tool.report.reportCalculation.request;
+
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Map;
+
+/*
+ * @Author linzhijie
+ * @Description CIAQ鑱屼笟鍏磋叮绠楁硶鎺ュ彛璇锋眰
+ * @Date 2023/4/13  17:34
+ * @Param 
+ * @return  
+ */
+@Data
+public class CIAQRequest {
+
+    // 鐢ㄦ埛鍚�
+    private String username;
+
+    // 娴嬭瘯瀵嗙爜
+    private String accesscode;
+
+    // CIAQ棰樼洰姘镐箙ID鍙�
+    private String cid;
+
+    // 绛旈淇℃伅
+    private String answer;
+
+}
diff --git a/src/main/java/com/ots/project/tool/report/reportCalculation/request/CalculationTypeEnum.java b/src/main/java/com/ots/project/tool/report/reportCalculation/request/CalculationTypeEnum.java
index 7a65b89..2d7a18c 100644
--- a/src/main/java/com/ots/project/tool/report/reportCalculation/request/CalculationTypeEnum.java
+++ b/src/main/java/com/ots/project/tool/report/reportCalculation/request/CalculationTypeEnum.java
@@ -1,5 +1,5 @@
 package com.ots.project.tool.report.reportCalculation.request;
 
 public enum CalculationTypeEnum {
-    MAQ, SAQ, RUILIN, CAQ, JAQ,PAQ
+    MAQ, SAQ, RUILIN, CAQ, JAQ,PAQ,CIAQ
 }

--
Gitblit v1.9.1