package com.ots.project.tool.report.MAQ; 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.MAQ.base.BaseCondition; import com.ots.project.tool.report.MAQ.base.MAQConditionVO; import com.ots.project.tool.report.MAQ.base.MAQSummaryCondition; import com.ots.project.tool.report.MAQ.condition.KeyPointsCautions; import com.ots.project.tool.report.MAQ.condition.KeyPointsStrengths; import com.ots.project.tool.report.MAQ.condition.MAQCondition; import com.ots.project.tool.report.MAQ.condition.MAQSummary; import com.ots.project.tool.report.MAQ.condition.PrimaryLeadershipStyle; import com.ots.project.tool.report.MAQ.condition.PrimaryLeadershipStyleContext; import com.ots.project.tool.report.MAQ.condition.ResponseFidelityDiagnosis; import com.ots.project.tool.report.MAQ.condition.ResponseFidelityDiagnosisTitle; import com.ots.project.tool.report.MAQ.condition.ScoreCharacteristics; import com.ots.project.tool.report.MAQ.condition.SimpleMessage; import com.ots.project.tool.report.ReportResultData; import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; import static com.ots.common.enums.ReportTypeEnum.Complete; import static com.ots.common.enums.ReportTypeEnum.MAQ; @Setter @Getter @Slf4j public class MAQReport { 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 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 simpleMessage = new SimpleMessage(p); return simpleMessage; }).collect(Collectors.toList())); paramList.add(new ResponseFidelityDiagnosisTitle()); paramList.add(new ResponseFidelityDiagnosis()); paramList.addAll(getScoreCharacteristicsList().stream().map(p -> { ScoreCharacteristics scoreCharacteristics = new ScoreCharacteristics(p); return scoreCharacteristics; }).collect(Collectors.toList())); paramList.addAll(getDataInit().stream().map(item -> { MAQCondition maqCondition = new MAQCondition(item); return maqCondition; }).collect(Collectors.toList())); paramList.add(new PrimaryLeadershipStyle()); paramList.add(new PrimaryLeadershipStyleContext()); if (Complete == reportTypeEnum || MAQ == reportTypeEnum) { paramList.add(new KeyPointsStrengths()); paramList.add(new KeyPointsCautions()); paramList.add(new MAQSummary(OPENNESSTOEXPERIENCE_1, getMAQSummaryParamList(OPENNESSTOEXPERIENCE_1))); paramList.add(new MAQSummary(CONSCIENTIOUS_2, getMAQSummaryParamList(CONSCIENTIOUS_2))); paramList.add(new MAQSummary(SOCIALLYOPEN_3, getMAQSummaryParamList(SOCIALLYOPEN_3))); paramList.add(new MAQSummary(AGREEABLENESS_4, getMAQSummaryParamList(AGREEABLENESS_4))); paramList.add(new MAQSummary(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_Judge33"); } private List getSimpleMessageCoreIds() { return Arrays.asList("LIBMAQ0001", "LIBMAQ0002", "LIBMAQ0003", "LIBMAQ0004", "LIBMAQ0005", "LIBMAQ0007" , "LIBMAQ0008", "LIBMAQ0010", "LIBMAQ0020", "LIBMAQ0030", "LIBMAQ0040", "LIBMAQ0050" , "LIBMAQ0060", "LIBMAQ0065", "LIBMAQ0070", "LIBMAQ0080", "LIBMAQ0085", "LIBMAQ0090" , "LIBMAQ0095", "LIBMAQ0100", "LIBMAQ0105", "LIBMAQ0110", "LIBMAQ0120", "LIBMAQ0135" , "LIBMAQ0130", "LIBMAQ0140", "LIBMAQ0160", "LIBMAQ0155", "LIBMAQ0150", "LIBMAQ0190" , "LIBMAQ0191", "LIBMAQ0192", "LIBMAQ0193", "LIBMAQ0194", "LIBMAQ0195", "LIBMAQ0180" , "LIBMAQ0170", "LIBMAQ0200", "LIBMAQ0205", "LIBMAQ26005", "LIBMAQ1002", "LIBMMAQ1007" , "LIBMAQ2002", "LIBMAQ2007", "LIBMAQ3002", "LIBMAQ3007", "LIBMAQ4002", "LIBMAQ4007" , "LIBMAQ27005", "LIBMAQ5002", "LIBMAQ5007", "LIBMAQ6002", "LIBMAQ6007", "LIBMAQ7002" , "LIBMAQ7007", "LIBMAQ8002", "LIBMAQ8007", "LIBMAQ9002", "LIBMAQ9007", "LIBMAQ10002" , "LIBMAQ10007", "LIBMAQ11002", "LIBMAQ11007", "LIBMAQ28005", "LIBMAQ12002", "LIBMAQ12007" , "LIBMAQ13002", "LIBMAQ13007", "LIBMAQ14002", "LIBMAQ14007", "LIBMAQ15002", "LIBMAQ15007" , "LIBMAQ29005", "LIBMAQ16002", "LIBMAQ16007", "LIBMAQ17002", "LIBMAQ17007", "LIBMAQ18002" , "LIBMAQ18007", "LIBMAQ30005", "LIBMAQ19002", "LIBMAQ19007", "LIBMAQ20002", "LIBMAQ20007" , "LIBMAQ21002", "LIBMAQ21007", "LIBMAQ22002", "LIBMAQ22007", "LIBMAQ0210", "LIBMAQ26000" , "LIBMAQ1000", "LIBMAQ2000", "LIBMAQ3000", "LIBMAQ4000", "LIBMAQ27000", "LIBMAQ5000" , "LIBMAQ6000", "LIBMAQ7000", "LIBMAQ8000", "LIBMAQ9000", "LIBMAQ10000", "LIBMAQ11000" , "LIBMAQ28000", "LIBMAQ12000", "LIBMAQ13000", "LIBMAQ14000", "LIBMAQ15000", "LIBMAQ29000" , "LIBMAQ16000", "LIBMAQ17000", "LIBMAQ18000", "LIBMAQ30000", "LIBMAQ19000", "LIBMAQ20000" , "LIBMAQ21000", "LIBMAQ22000", "LIBMAQ31000", "LIBMAQ31010", "LIBMAQ32010", "LIBMAQ25000" , "LIBMAQ25042", "LIBMAQ25012", "LIBMAQ25032", "LIBMAQ25022", "LIBMAQ33000", "LIBMAQ33010" , "LIBMAQ33020", "LIBMAQ33030", "LIBMAQ33040", "LIBMAQ33045", "LIBMAQ33050", "LIBMAQ33060" , "LIBMAQ1001", "LIBMAQ2001", "LIBMAQ3001", "LIBMAQ4001", "LIBMAQ5001", "LIBMAQ6001" , "LIBMAQ7001", "LIBMAQ8001", "LIBMAQ9001", "LIBMAQ10001", "LIBMAQ11001", "LIBMAQ12001" , "LIBMAQ13001", "LIBMAQ14001", "LIBMAQ15001", "LIBMAQ16001", "LIBMAQ17001", "LIBMAQ18001" , "LIBMAQ19001", "LIBMAQ20001", "LIBMAQ21001", "LIBMAQ22001", "LIBMAQ31013", "LIBMAQ32013" , "LIBMAQ33021", "LIBMAQ33061", "LIBMAQ33062", "LIBMAQ33063", "LIBMAQ33064", "LIBMAQ33065" , "LIBMAQ25043", "LIBMAQ25013", "LIBMAQ25033", "LIBMAQ25023", "LIBMAQ0111", "LIBMAQ0121" , "LIBMAQ0131", "LIBMAQ0141", "LIBMAQ32005", "LIBMAQ31003", "LIBMAQ31005" , "LIBMAQ00021", "LIBMAQ00041", "LIBMAQ0006", "LIBMAQ0021", "LIBMAQ0031", "LIBMAQ0041" , "LIBMAQ0042","LIBMAQ0009","LIBMAQ0220" ); } private List getMAQSummaryParamList(String summaryType) { List paramList = new ArrayList<>(); if (Objects.equals(OPENNESSTOEXPERIENCE_1, summaryType)) { paramList.add(new MAQSummaryCondition(new MAQConditionVO(OPENNESSTOEXPERIENCE_1, "Flexibility,灵活性", "P_Flex01", "LIBMAQ10"))); paramList.add(new MAQSummaryCondition(new MAQConditionVO(OPENNESSTOEXPERIENCE_1, "Creativity,创造性", "P_Creat02", "LIBMAQ20"))); paramList.add(new MAQSummaryCondition(new MAQConditionVO(OPENNESSTOEXPERIENCE_1, "Analytical Approach,分析导向", "P_Analyt03", "LIBMAQ30"))); paramList.add(new MAQSummaryCondition(new MAQConditionVO(OPENNESSTOEXPERIENCE_1, "Independence,自主独立", "P_Indep04", "LIBMAQ40"))); } else if (Objects.equals(CONSCIENTIOUS_2, summaryType)) { paramList.add(new MAQSummaryCondition(new MAQConditionVO(CONSCIENTIOUS_2, "Achievement Orientation,成就导向", "P_Achiev05", "LIBMAQ50"))); paramList.add(new MAQSummaryCondition(new MAQConditionVO(CONSCIENTIOUS_2, "Initiative,能动性", "P_Initi06", "LIBMAQ60"))); paramList.add(new MAQSummaryCondition(new MAQConditionVO(CONSCIENTIOUS_2, "Persistence,坚持性", "P_Persis07", "LIBMAQ70"))); paramList.add(new MAQSummaryCondition(new MAQConditionVO(CONSCIENTIOUS_2, "Thoroughness,细致性", "P_Thorou08", "LIBMAQ80"))); paramList.add(new MAQSummaryCondition(new MAQConditionVO(CONSCIENTIOUS_2, "Dependability,可靠性", "P_Depend09", "LIBMAQ90"))); paramList.add(new MAQSummaryCondition(new MAQConditionVO(CONSCIENTIOUS_2, "Planning and Organizing,计划/组织性", "P_Plan10", "LIBMAQ100"))); paramList.add(new MAQSummaryCondition(new MAQConditionVO(CONSCIENTIOUS_2, "Trust and Integrity,坦诚守规", "P_Integr11", "LIBMAQ110"))); } else if (Objects.equals(SOCIALLYOPEN_3, summaryType)) { paramList.add(new MAQSummaryCondition(new MAQConditionVO(SOCIALLYOPEN_3, "Personal Energy,个人精力", "P_Energy12", "LIBMAQ120"))); paramList.add(new MAQSummaryCondition(new MAQConditionVO(SOCIALLYOPEN_3, "Socially Open,社交主动性", "P_Social13", "LIBMAQ130"))); paramList.add(new MAQSummaryCondition(new MAQConditionVO(SOCIALLYOPEN_3, "Leading Others,支配性", "P_Lead14", "LIBMAQ140"))); paramList.add(new MAQSummaryCondition(new MAQConditionVO(SOCIALLYOPEN_3, "Influence ,影响力", "Influencing_15", "LIBMAQ150"))); } else if (Objects.equals(AGREEABLENESS_4, summaryType)) { paramList.add(new MAQSummaryCondition(new MAQConditionVO(AGREEABLENESS_4, "Cooperation & Teamwork,团队合作", "P_Team16", "LIBMAQ160"))); paramList.add(new MAQSummaryCondition(new MAQConditionVO(AGREEABLENESS_4, "Empathetic,同理心", "P_Empath17", "LIBMAQ170"))); paramList.add(new MAQSummaryCondition(new MAQConditionVO(AGREEABLENESS_4, "Polite & Tactful,社交敏感性", "P_Polite18", "LIBMAQ180"))); } else if (Objects.equals(EMOTIONALBALANCE_5, summaryType)) { paramList.add(new MAQSummaryCondition(new MAQConditionVO(EMOTIONALBALANCE_5, "Self-Regulation,自控力", "P_Regula19", "LIBMAQ190"))); paramList.add(new MAQSummaryCondition(new MAQConditionVO(EMOTIONALBALANCE_5, "Managing Stress,压力管理", "P_ManStr20", "LIBMAQ200"))); paramList.add(new MAQSummaryCondition(new MAQConditionVO(EMOTIONALBALANCE_5, "Self-Confidence,自信/弹性", "P_Confid21", "LIBMAQ210"))); paramList.add(new MAQSummaryCondition(new MAQConditionVO(EMOTIONALBALANCE_5, "Mindfulness,专注/觉察", "P_Mind22", "LIBMAQ220"))); } return paramList; } private List getDataInit() { List conditionVOList = new ArrayList<>(); conditionVOList.add(new MAQConditionVO("Flexibility_1", "P_Flex01", "LIBMAQ10")); conditionVOList.add(new MAQConditionVO("Creativity_2", "P_Creat02", "LIBMAQ20")); conditionVOList.add(new MAQConditionVO("AnalyticalApproach_3", "P_Analyt03", "LIBMAQ30")); conditionVOList.add(new MAQConditionVO("Independence_4", "P_Indep04", "LIBMAQ40")); conditionVOList.add(new MAQConditionVO("AchievementOrientation_5", "P_Achiev05", "LIBMAQ50")); conditionVOList.add(new MAQConditionVO("Initiative_6", "P_Initi06", "LIBMAQ60")); conditionVOList.add(new MAQConditionVO("Persistence_7", "P_Persis07", "LIBMAQ70")); conditionVOList.add(new MAQConditionVO("Thoroughness_8", "P_Thorou08", "LIBMAQ80")); conditionVOList.add(new MAQConditionVO("Dependability_9", "P_Depend09", "LIBMAQ90")); conditionVOList.add(new MAQConditionVO("PlanningandOrganizing_10", "P_Plan10", "LIBMAQ100")); conditionVOList.add(new MAQConditionVO("TrustandIntegrity_11", "P_Integr11", "LIBMAQ110")); conditionVOList.add(new MAQConditionVO("PersonalEnergy_12", "P_Energy12", "LIBMAQ120")); conditionVOList.add(new MAQConditionVO("SociallyOpen_13", "P_Social13", "LIBMAQ130")); conditionVOList.add(new MAQConditionVO("LeadingOthers_14", "P_Lead14", "LIBMAQ140")); conditionVOList.add(new MAQConditionVO("Influencing_15", "P_Influ15", "LIBMAQ150")); conditionVOList.add(new MAQConditionVO("CooperationTeamwork_16", "P_Team16", "LIBMAQ160")); conditionVOList.add(new MAQConditionVO("Empathetic_17", "P_Empath17", "LIBMAQ170")); conditionVOList.add(new MAQConditionVO("PoliteTactful_18", "P_Polite18", "LIBMAQ180")); conditionVOList.add(new MAQConditionVO("Self_Regulation_19", "P_Regula19", "LIBMAQ190")); conditionVOList.add(new MAQConditionVO("ManagingStress_20", "P_ManStr20", "LIBMAQ200")); conditionVOList.add(new MAQConditionVO("Self_Confidence_21", "P_Confid21", "LIBMAQ210")); conditionVOList.add(new MAQConditionVO("Mindfulness_22", "P_Mind22", "LIBMAQ220")); conditionVOList.add(new MAQConditionVO("Task_Result_Orientation_31", "P_Task31", "LIBMAQ310")); conditionVOList.add(new MAQConditionVO("People_Orientation_32", "P_People32", "LIBMAQ320")); 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()); 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)); if (Objects.nonNull(p.getMAQwaterDropsImages())) { waterDropsMap.putAll(p.getMAQwaterDropsImages()); } }); textMap.putAll(thaiCalculationMap); ReportResultData reportResultData = new ReportResultData(); reportResultData.setTextMap(textMap); reportResultData.setImageMap(waterDropsMap); return reportResultData; } }