[测评系统]--测评系统核心代码库
林致杰
2022-03-07 c63c907840e9c194d92ad490efd5f76c7f67a900
src/main/java/com/ots/project/tool/report/MAQNEW/MAQReport_V2.java
@@ -34,9 +34,21 @@
    private Map otherParams;
    
    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<>();
        
@@ -44,11 +56,13 @@
            SimpleMessage_V2 simpleMessage = new SimpleMessage_V2(p);
            return simpleMessage;
        }).collect(Collectors.toList()));
        paramList.add(new ResponseFidelityDiagnosisTitle_V2());
        paramList.add(new ResponseFidelityDiagnosis_V2());
        //MAQ IAR不需要
        if(!reportTypeEnum.getCode().equals(ReportTypeEnum.MAQIAR.getCode())){
            paramList.add(new ResponseFidelityDiagnosisTitle_V2());
            paramList.add(new ResponseFidelityDiagnosis_V2());
        }
        paramList.addAll(getScoreCharacteristicsList().stream().map(p -> {
            ScoreCharacteristics_V2 scoreCharacteristics = new ScoreCharacteristics_V2(p);
            return scoreCharacteristics;
@@ -130,32 +144,32 @@
    private List<MAQSummaryCondition_V2> getMAQSummaryParamList(String summaryType) {
        List<MAQSummaryCondition_V2> paramList = new ArrayList<>();
        if (Objects.equals(OPENNESSTOEXPERIENCE_1, summaryType)) {
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(OPENNESSTOEXPERIENCE_1, "Flexibility,灵活性", "P_Flex01", "LIBMAQV210")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(OPENNESSTOEXPERIENCE_1, "Creativity,创造性", "P_Creat02", "LIBMAQV220")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(OPENNESSTOEXPERIENCE_1, "Analytical Approach,分析导向", "P_Analyt03", "LIBMAQV230")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(OPENNESSTOEXPERIENCE_1, "Independence,自主独立", "P_Indep04", "LIBMAQV240")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(OPENNESSTOEXPERIENCE_1, "Flexibility,灵活性,ความยืดหยุ่น", "P_Flex01", "LIBMAQV210")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(OPENNESSTOEXPERIENCE_1, "Creativity,创造性,ความคิดสร้างสรรค์", "P_Creat02", "LIBMAQV220")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(OPENNESSTOEXPERIENCE_1, "Analytical Approach,分析导向,วิธีการวิเคราะห์", "P_Analyt03", "LIBMAQV230")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(OPENNESSTOEXPERIENCE_1, "Independence,自主独立,ความเป็นอิสระ", "P_Indep04", "LIBMAQV240")));
        } else if (Objects.equals(CONSCIENTIOUS_2, summaryType)) {
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(CONSCIENTIOUS_2, "Achievement Orientation,成就导向", "P_Achiev05", "LIBMAQV250")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(CONSCIENTIOUS_2, "Initiative,能动性", "P_Initi06", "LIBMAQV260")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(CONSCIENTIOUS_2, "Persistence,坚持性", "P_Persis07", "LIBMAQV270")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(CONSCIENTIOUS_2, "Thoroughness,细致性", "P_Thorou08", "LIBMAQV280")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(CONSCIENTIOUS_2, "Dependability,可靠性", "P_Depend09", "LIBMAQV290")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(CONSCIENTIOUS_2, "Planning and Organizing,计划/组织性", "P_Plan10", "LIBMAQV2100")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(CONSCIENTIOUS_2, "Trust and Integrity,坦诚守规", "P_Integr11", "LIBMAQV2110")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(CONSCIENTIOUS_2, "Achievement Orientation,成就导向,กำหนดเป้าหมายให้ผลสัมฤทธิ์", "P_Achiev05", "LIBMAQV250")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(CONSCIENTIOUS_2, "Initiative,能动性,ความคิดริเริ่ม", "P_Initi06", "LIBMAQV260")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(CONSCIENTIOUS_2, "Persistence,坚持性,วิริยะ", "P_Persis07", "LIBMAQV270")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(CONSCIENTIOUS_2, "Thoroughness,细致性,ความละเอียดรอบคอบ", "P_Thorou08", "LIBMAQV280")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(CONSCIENTIOUS_2, "Dependability,可靠性,ความน่าเชื่อถือ", "P_Depend09", "LIBMAQV290")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(CONSCIENTIOUS_2, "Planning and Organizing,计划/组织性,การวางแผนและการจัดระเบียบ", "P_Plan10", "LIBMAQV2100")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(CONSCIENTIOUS_2, "Trust and Integrity,坦诚守规,ความน่าเชื่อถือและความซื่อสัตย์", "P_Integr11", "LIBMAQV2110")));
        } else if (Objects.equals(SOCIALLYOPEN_3, summaryType)) {
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(SOCIALLYOPEN_3, "Personal Energy,个人精力", "P_Energy12", "LIBMAQV2120")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(SOCIALLYOPEN_3, "Socially Open,社交主动性", "P_Social13", "LIBMAQV2130")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(SOCIALLYOPEN_3, "Leading Others,支配性", "P_Lead14", "LIBMAQV2140")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(SOCIALLYOPEN_3, "Influence ,影响力", "P_Influ15", "LIBMAQV2150")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(SOCIALLYOPEN_3, "Personal Energy,个人精力,พลังงานส่วนตัว", "P_Energy12", "LIBMAQV2120")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(SOCIALLYOPEN_3, "Socially Open,社交主动性,ความเป็นผู้เปิดกว้าง", "P_Social13", "LIBMAQV2130")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(SOCIALLYOPEN_3, "Leading Others,支配性,การนำผู้อื่น", "P_Lead14", "LIBMAQV2140")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(SOCIALLYOPEN_3, "Influence ,影响力,การจูงใจผู้อื่น", "P_Influ15", "LIBMAQV2150")));
        } else if (Objects.equals(AGREEABLENESS_4, summaryType)) {
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(AGREEABLENESS_4, "Cooperation & Teamwork,团队合作", "P_Team16", "LIBMAQV2160")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(AGREEABLENESS_4, "Empathetic,同理心", "P_Empath17", "LIBMAQV2170")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(AGREEABLENESS_4, "Polite & Tactful,社交敏感性", "P_Polite18", "LIBMAQV2180")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(AGREEABLENESS_4, "Cooperation & Teamwork,团队合作,ความร่วมมือและการทำงานเป็นทีม", "P_Team16", "LIBMAQV2160")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(AGREEABLENESS_4, "Empathetic,同理心,ความเห็นอกเห็นใจ", "P_Empath17", "LIBMAQV2170")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(AGREEABLENESS_4, "Polite & Tactful,社交敏感性,ความสุภาพและมีไหวพริบ", "P_Polite18", "LIBMAQV2180")));
        } else if (Objects.equals(EMOTIONALBALANCE_5, summaryType)) {
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(EMOTIONALBALANCE_5, "Self-Regulation,自控力", "P_Regula19", "LIBMAQV2190")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(EMOTIONALBALANCE_5, "Managing Stress,压力管理", "P_ManStr20", "LIBMAQV2200")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(EMOTIONALBALANCE_5, "Self-Confidence,自信/弹性", "P_Confid21", "LIBMAQV2210")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(EMOTIONALBALANCE_5, "Mindfulness,专注/觉察", "P_Mind22", "LIBMAQV2220")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(EMOTIONALBALANCE_5, "Self-Regulation,自控力,การควบคุมตนเอง", "P_Regula19", "LIBMAQV2190")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(EMOTIONALBALANCE_5, "Managing Stress,压力管理,การจัดการกับความเครียด", "P_ManStr20", "LIBMAQV2200")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(EMOTIONALBALANCE_5, "Self-Confidence,自信/弹性,ความมั่นใจในตนเอง", "P_Confid21", "LIBMAQV2210")));
            paramList.add(new MAQSummaryCondition_V2(new MAQConditionVO_V2(EMOTIONALBALANCE_5, "Mindfulness,专注/觉察,และสร้างแรงบันดาลใจให้ผู้มีส่วนได้ส่วนเสียขององค์กรเชื่อมั่นในพันธกิจ,วิสัยทัศน์ และค่านิยมขององค์กร", "P_Mind22", "LIBMAQV2220")));
        }
        return paramList;
    }
@@ -187,13 +201,21 @@
        conditionVOList.add(new MAQConditionVO_V2("People_Orientation_32", "P_People32", "LIBMAQV2320"));
        return conditionVOList;
    }
    /**
     * 获取报告字典替换值
     * @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());
@@ -201,18 +223,25 @@
        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));
            }
            //水滴集合
            if (Objects.nonNull(p.getMAQwaterDropsImages())) {
                waterDropsMap.putAll(p.getMAQwaterDropsImages());
            }