package com.ots.project.tool.report.MAQNEW; 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.base.MAQConditionVO_V2; import com.ots.project.tool.report.MAQNEW.base.MAQSummaryCondition_V2; import com.ots.project.tool.report.MAQNEW.condition.*; import com.ots.project.tool.report.ReportResultData; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; import java.util.*; import java.util.stream.Collectors; @Setter @Getter @Slf4j public class MAQReport_V2 { private static final String OPENNESSTOEXPERIENCE_1 = "OpennessToExperience_1"; private static final String CONSCIENTIOUS_2 = "Conscientious_2"; private static final String SOCIALLYOPEN_3 = "SociallyOpen_3"; private static final String AGREEABLENESS_4 = "Agreeableness_4"; private static final String EMOTIONALBALANCE_5 = "EmotionalBalance_5"; 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 Map otherParams; private LangTypeEnum langType; public List getParamList(ReportTypeEnum reportTypeEnum) { return init(reportTypeEnum); } private List init(ReportTypeEnum reportTypeEnum) { List paramList = new ArrayList<>(); paramList.addAll(getSimpleMessageCoreIds().stream().map(p -> { SimpleMessage_V2 simpleMessage = new SimpleMessage_V2(p); return simpleMessage; }).collect(Collectors.toList())); 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; }).collect(Collectors.toList())); paramList.addAll(getDataInit().stream().map(item -> { MAQCondition_V2 maqCondition = new MAQCondition_V2(item); return maqCondition; }).collect(Collectors.toList())); paramList.add(new PrimaryLeadershipStyle_V2()); paramList.add(new PrimaryLeadershipStyleContext_V2()); paramList.add(new KeyPointsStrengths_V2()); paramList.add(new KeyPointsCautions_V2()); paramList.add(new MAQSummary_V2(OPENNESSTOEXPERIENCE_1, getMAQSummaryParamList(OPENNESSTOEXPERIENCE_1))); paramList.add(new MAQSummary_V2(CONSCIENTIOUS_2, getMAQSummaryParamList(CONSCIENTIOUS_2))); paramList.add(new MAQSummary_V2(SOCIALLYOPEN_3, getMAQSummaryParamList(SOCIALLYOPEN_3))); paramList.add(new MAQSummary_V2(AGREEABLENESS_4, getMAQSummaryParamList(AGREEABLENESS_4))); paramList.add(new MAQSummary_V2(EMOTIONALBALANCE_5, getMAQSummaryParamList(EMOTIONALBALANCE_5))); return paramList; } private List getScoreCharacteristicsList() { return Arrays.asList("P_Flex01", "P_Creat02", "P_Analyt03", "P_Indep04", "P_Achiev05", "P_Initi06", "P_Persis07", "P_Thorou08", "P_Depend09", "P_Plan10", "P_Integr11", "P_Energy12", "P_Social13", "P_Lead14", "P_Influ15", "P_Team16", "P_Empath17", "P_Polite18", "P_Regula19", "P_ManStr20", "P_Confid21", "P_Mind22", "P_SDE23", "P_IM24", "P_INCON25", "P_Open26", "P_Consci27", "P_Extrov28", "P_Agree29", "P_EmSt30", "P_Task31", "P_People32", "P_Judg33"); } private List getSimpleMessageCoreIds() { return Arrays.asList( "LIBMAQV20001", "LIBMAQV20002", "LIBMAQV20003", "LIBMAQV20004", "LIBMAQV20005", "LIBMAQV200101","LIBMAQV200201","LIBMAQV200301","LIBMAQV20041","LIBMAQV20042",//MAQV2简易版报告需要用到 "LIBMAQV200071", "LIBMAQV20006", "LIBMAQV20009", "LIBMAQV20210", "LIBMAQV200077", "LIBMAQV20008", "LIBMAQV20009", "LIBMAQV20010", "LIBMAQV20011", "LIBMAQV20030", "LIBMAQV20040", "LIBMAQV20060", "LIBMAQV233000", "LIBMAQV20008", "LIBMAQV20065", "LIBMAQV20070", "LIBMAQV20080", "LIBMAQV20085", "LIBMAQV20090", "LIBMAQV2000794", "LIBMAQV2000795", "LIBMAQV20095", "LIBMAQV28800", "LIBMAQV20110", "LIBMAQV201052", "LIBMAQV20120", "LIBMAQV201102", "LIBMAQV201202", "LIBMAQV20111", "LIBMAQV20121", "LIBMAQV20105", "LIBMAQV20131", "LIBMAQV20141", "LIBMAQV20135", "LIBMAQV20150", "LIBMAQV20155", "LIBMAQV20160", "LIBMAQV20170", "LIBMAQV20190", "LIBMAQV20191", "LIBMAQV20192", "LIBMAQV20193", "LIBMAQV20194", "LIBMAQV20195", "LIBMAQV20162", "LIBMAQV20164", "LIBMAQV20200", "LIBMAQV20205", "LIBMAQV20221", "LIBMAQV20222", "LIBMAQV20223", "LIBMAQV20224", "LIBMAQV20225", "LIBMAQV20226", "LIBMAQV20227", "LIBMAQV20228", "LIBMAQV20229", "LIBMAQV20230", "LIBMAQV20231", "LIBMAQV20232", "LIBMAQV20233", "LIBMAQV20234", "LIBMAQV226006", "LIBMAQV20210", "LIBMAQV20220", "LIBMAQV231000", "LIBMAQV231010", "LIBMAQV231013", "LIBMAQV232010", "LIBMAQV232013", "LIBMAQV225000", "LIBMAQV225042", "LIBMAQV225043", "LIBMAQV225012", "LIBMAQV225013", "LIBMAQV225032", "LIBMAQV225033", "LIBMAQV225022", "LIBMAQV225023", "LIBMAQV225002", "LIBMAQV233010", "LIBMAQV233020", "LIBMAQV233021", "LIBMAQV233030", "LIBMAQV233040", "LIBMAQV233045", "LIBMAQV233050", "LIBMAQV233060", "LIBMAQV226003", "LIBMAQV226004", "LIBMAQV227003", "LIBMAQV227004", "LIBMAQV228003", "LIBMAQV228004", "LIBMAQV229003", "LIBMAQV229004", "LIBMAQV230003", "LIBMAQV230004", "LIBMAQV21001", "LIBMAQV21002", "LIBMAQV21007", "LIBMAQV22002", "LIBMAQV22007", "LIBMAQV23002", "LIBMAQV23007", "LIBMAQV24002", "LIBMAQV24007", "LIBMAQV25002", "LIBMAQV25007", "LIBMAQV26002", "LIBMAQV26007", "LIBMAQV27002", "LIBMAQV27007", "LIBMAQV28802", "LIBMAQV28007", "LIBMAQV29002", "LIBMAQV29007", "LIBMAQV210002", "LIBMAQV210007", "LIBMAQV211002", "LIBMAQV211007", "LIBMAQV212002", "LIBMAQV212007", "LIBMAQV213002", "LIBMAQV213007", "LIBMAQV214002", "LIBMAQV214007", "LIBMAQV215002", "LIBMAQV215007", "LIBMAQV216002", "LIBMAQV216007", "LIBMAQV217002", "LIBMAQV217007", "LIBMAQV218002", "LIBMAQV218007", "LIBMAQV219002", "LIBMAQV219007", "LIBMAQV220002", "LIBMAQV220007", "LIBMAQV221002", "LIBMAQV221007", "LIBMAQV222002", "LIBMAQV222007", "LIBMAQV226001", "LIBMAQV226002", "LIBMAQV21000", "LIBMAQV21001", "LIBMAQV22000", "LIBMAQV22001", "LIBMAQV23000", "LIBMAQV23001", "LIBMAQV24000", "LIBMAQV24001", "LIBMAQV227001", "LIBMAQV2270015", "LIBMAQV228002", "LIBMAQV25000", "LIBMAQV25001", "LIBMAQV26000", "LIBMAQV26001", "LIBMAQV27000", "LIBMAQV27001", "LIBMAQV229002", "LIBMAQV28000", "LIBMAQV28001", "LIBMAQV227002", "LIBMAQV29000", "LIBMAQV29001", "LIBMAQV210000", "LIBMAQV230002", "LIBMAQV210001", "LIBMAQV211000", "LIBMAQV211001", "LIBMAQV228001", "LIBMAQV212000", "LIBMAQV212001", "LIBMAQV213000", "LIBMAQV213001", "LIBMAQV214000", "LIBMAQV214001", "LIBMAQV215000", "LIBMAQV215001", "LIBMAQV229001", "LIBMAQV216000", "LIBMAQV216001", "LIBMAQV217000", "LIBMAQV217001", "LIBMAQV218000", "LIBMAQV218001", "LIBMAQV230001", "LIBMAQV219000", "LIBMAQV219001", "LIBMAQV220000", "LIBMAQV220001", "LIBMAQV221000", "LIBMAQV221001", "LIBMAQV222000", "LIBMAQV222001", "LIBMAQV231003", "LIBMAQV231005", "LIBMAQV232005", "LIBMAQV231010", "LIBMAQV231013", "LIBMAQV20020", "LIBMAQV233061", "LIBMAQV20007", "LIBMAQV200081", "LIBMAQV28002", "LIBMAQV227006", "LIBMAQV228006", "LIBMAQV229006", "LIBMAQV230006", "LIBMAQV233061", "LIBMAQV233062", "LIBMAQV233063", "LIBMAQV233064", "LIBMAQV233065" ); } private List getMAQSummaryParamList(String summaryType) { List 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"))); } 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"))); } 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"))); } 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"))); } 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"))); } return paramList; } private List getDataInit() { List conditionVOList = new ArrayList<>(); conditionVOList.add(new MAQConditionVO_V2("Flexibility_1", "P_Flex01", "LIBMAQV210")); conditionVOList.add(new MAQConditionVO_V2("Creativity_2", "P_Creat02", "LIBMAQV220")); conditionVOList.add(new MAQConditionVO_V2("AnalyticalApproach_3", "P_Analyt03", "LIBMAQV230")); conditionVOList.add(new MAQConditionVO_V2("Independence_4", "P_Indep04", "LIBMAQV240")); conditionVOList.add(new MAQConditionVO_V2("AchievementOrientation_5", "P_Achiev05", "LIBMAQV250")); conditionVOList.add(new MAQConditionVO_V2("Initiative_6", "P_Initi06", "LIBMAQV260")); conditionVOList.add(new MAQConditionVO_V2("Persistence_7", "P_Persis07", "LIBMAQV270")); conditionVOList.add(new MAQConditionVO_V2("Thoroughness_8", "P_Thorou08", "LIBMAQV280")); conditionVOList.add(new MAQConditionVO_V2("Dependability_9", "P_Depend09", "LIBMAQV290")); conditionVOList.add(new MAQConditionVO_V2("PlanningandOrganizing_10", "P_Plan10", "LIBMAQV2100")); conditionVOList.add(new MAQConditionVO_V2("TrustandIntegrity_11", "P_Integr11", "LIBMAQV2110")); conditionVOList.add(new MAQConditionVO_V2("PersonalEnergy_12", "P_Energy12", "LIBMAQV2120")); conditionVOList.add(new MAQConditionVO_V2("SociallyOpen_13", "P_Social13", "LIBMAQV2130")); conditionVOList.add(new MAQConditionVO_V2("LeadingOthers_14", "P_Lead14", "LIBMAQV2140")); conditionVOList.add(new MAQConditionVO_V2("Influencing_15", "P_Influ15", "LIBMAQV2150")); conditionVOList.add(new MAQConditionVO_V2("CooperationTeamwork_16", "P_Team16", "LIBMAQV2160")); conditionVOList.add(new MAQConditionVO_V2("Empathetic_17", "P_Empath17", "LIBMAQV2170")); conditionVOList.add(new MAQConditionVO_V2("PoliteTactful_18", "P_Polite18", "LIBMAQV2180")); conditionVOList.add(new MAQConditionVO_V2("Self_Regulation_19", "P_Regula19", "LIBMAQV2190")); conditionVOList.add(new MAQConditionVO_V2("ManagingStress_20", "P_ManStr20", "LIBMAQV2200")); conditionVOList.add(new MAQConditionVO_V2("Self_Confidence_21", "P_Confid21", "LIBMAQV2210")); conditionVOList.add(new MAQConditionVO_V2("Mindfulness_22", "P_Mind22", "LIBMAQV2220")); conditionVOList.add(new MAQConditionVO_V2("Task_Result_Orientation_31", "P_Task31", "LIBMAQV2310")); conditionVOList.add(new MAQConditionVO_V2("People_Orientation_32", "P_People32", "LIBMAQV2320")); return conditionVOList; } public ReportResultData getTemplateParameters(Map 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 tLibraryCodes = p.calculateList(thaiCalculationMap, langType); if(tLibraryCodes != null && tLibraryCodes.size() > 0){ 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()); } }); textMap.putAll(thaiCalculationMap); ReportResultData reportResultData = new ReportResultData(); reportResultData.setTextMap(textMap); reportResultData.setImageMap(waterDropsMap); return reportResultData; } }