package com.ots.project.tool.report.SAQ; 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.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.ScoreCharacteristics; import com.ots.project.tool.report.MAQ.condition.SimpleMessage; import com.ots.project.tool.report.ReportResultData; import com.ots.project.tool.report.SAQ.condition.ResponseFidelityDiagnosisSAQ; import com.ots.project.tool.report.SAQ.condition.ResponseFidelityDiagnosisSAQTitle; 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 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; @Setter @Getter @Slf4j public class SAQReport { 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 ResponseFidelityDiagnosisSAQTitle()); paramList.add(new ResponseFidelityDiagnosisSAQ()); 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 KeyPointsStrengths()); paramList.add(new KeyPointsCautions()); paramList.add(new SAQSummary(OPENNESSTOEXPERIENCE_1, getSAQSummaryParamList(OPENNESSTOEXPERIENCE_1))); paramList.add(new SAQSummary(CONSCIENTIOUS_2, getSAQSummaryParamList(CONSCIENTIOUS_2))); paramList.add(new SAQSummary(SOCIALLYOPEN_3, getSAQSummaryParamList(SOCIALLYOPEN_3))); paramList.add(new SAQSummary(AGREEABLENESS_4, getSAQSummaryParamList(AGREEABLENESS_4))); paramList.add(new SAQSummary(EMOTIONALBALANCE_5, getSAQSummaryParamList(EMOTIONALBALANCE_5))); return paramList; } private List getSAQSummaryParamList(String summaryType) { List paramList = new ArrayList<>(); if (Objects.equals(OPENNESSTOEXPERIENCE_1, summaryType)) { paramList.add(new SAQSummaryCondition(new SAQConditionVO(OPENNESSTOEXPERIENCE_1, "Flexibility,灵活性", "P_Flex01", "LIBSAQ10"))); paramList.add(new SAQSummaryCondition(new SAQConditionVO(OPENNESSTOEXPERIENCE_1, "Creativity,创造性", "P_Creat02", "LIBSAQ20"))); paramList.add(new SAQSummaryCondition(new SAQConditionVO(OPENNESSTOEXPERIENCE_1, "Analytical Approach,分析导向", "P_Analyt03", "LIBSAQ30"))); paramList.add(new SAQSummaryCondition(new SAQConditionVO(OPENNESSTOEXPERIENCE_1, "Independence,自主独立", "P_Indep04", "LIBSAQ40"))); } else if (Objects.equals(CONSCIENTIOUS_2, summaryType)) { paramList.add(new SAQSummaryCondition(new SAQConditionVO(CONSCIENTIOUS_2, "Achievement Orientation,成就导向", "P_Achiev05", "LIBSAQ50"))); paramList.add(new SAQSummaryCondition(new SAQConditionVO(CONSCIENTIOUS_2, "Initiative,能动性", "P_Initi06", "LIBSAQ60"))); paramList.add(new SAQSummaryCondition(new SAQConditionVO(CONSCIENTIOUS_2, "Persistence,坚持性", "P_Persis07", "LIBSAQ70"))); paramList.add(new SAQSummaryCondition(new SAQConditionVO(CONSCIENTIOUS_2, "Thoroughness,细致性", "P_Thorou08", "LIBSAQ80"))); paramList.add(new SAQSummaryCondition(new SAQConditionVO(CONSCIENTIOUS_2, "Dependability,可靠性", "P_Depend09", "LIBSAQ90"))); paramList.add(new SAQSummaryCondition(new SAQConditionVO(CONSCIENTIOUS_2, "Planning and Organizing,计划/组织性", "P_Plan10", "LIBSAQ100"))); paramList.add(new SAQSummaryCondition(new SAQConditionVO(CONSCIENTIOUS_2, "Trust and Integrity,坦诚守规", "P_Integr11", "LIBSAQ110"))); } else if (Objects.equals(SOCIALLYOPEN_3, summaryType)) { paramList.add(new SAQSummaryCondition(new SAQConditionVO(SOCIALLYOPEN_3, "Personal Energy,个人精力", "P_Energy12", "LIBSAQ120"))); paramList.add(new SAQSummaryCondition(new SAQConditionVO(SOCIALLYOPEN_3, "Socially Open,社交主动性", "P_Social13", "LIBSAQ130"))); paramList.add(new SAQSummaryCondition(new SAQConditionVO(SOCIALLYOPEN_3, "Leading Others,支配性", "P_Lead14", "LIBSAQ140"))); paramList.add(new SAQSummaryCondition(new SAQConditionVO(SOCIALLYOPEN_3, "Influence ,影响力", "Influencing_15", "LIBSAQ150"))); } else if (Objects.equals(AGREEABLENESS_4, summaryType)) { paramList.add(new SAQSummaryCondition(new SAQConditionVO(AGREEABLENESS_4, "Cooperation & Teamwork,团队合作", "P_Team16", "LIBSAQ160"))); paramList.add(new SAQSummaryCondition(new SAQConditionVO(AGREEABLENESS_4, "Empathetic,同理心", "P_Empath17", "LIBSAQ170"))); paramList.add(new SAQSummaryCondition(new SAQConditionVO(AGREEABLENESS_4, "Polite & Tactful,社交敏感性", "P_Polite18", "LIBSAQ180"))); } else if (Objects.equals(EMOTIONALBALANCE_5, summaryType)) { paramList.add(new SAQSummaryCondition(new SAQConditionVO(EMOTIONALBALANCE_5, "Self-Regulation,自控力", "P_Regula19", "LIBSAQ190"))); paramList.add(new SAQSummaryCondition(new SAQConditionVO(EMOTIONALBALANCE_5, "Managing Stress,压力管理", "P_ManStr20", "LIBSAQ200"))); paramList.add(new SAQSummaryCondition(new SAQConditionVO(EMOTIONALBALANCE_5, "Self-Confidence,自信/弹性", "P_Confid21", "LIBSAQ210"))); paramList.add(new SAQSummaryCondition(new SAQConditionVO(EMOTIONALBALANCE_5, "Mindfulness,专注/觉察", "P_Mind22", "LIBSAQ220"))); } return paramList; } private List getSimpleMessageCoreIds() { return Arrays.asList("LIBSAQ0001", "LIBSAQ0003", "LIBSAQ0005", "LIBSAQ0007", "LIBSAQ0009", "LIBSAQ00011", "LIBSAQ0015", "LIBSAQ0017", "LIBSAQ0162", "LIBSAQ0164", "LIBSAQ0020", "LIBSAQ0022", "LIBSAQ0024", "LIBSAQ0026", "LIBSAQ0030", "LIBSAQ0035", "LIBSAQ0040", "LIBSAQ0041", "LIBSAQ0042", "LIBSAQ0043", "LIBSAQ0050", "LIBSAQ0051", "LIBSAQ0052", "LIBSAQ0053", "LIBSAQ0054", "LIBSAQ0060", "LIBSAQ0061", "LIBSAQ0062", "LIBSAQ0063", "LIBSAQ0064", "LIBSAQ0070", "LIBSAQ0080", "LIBSAQ0081", "LIBSAQ0110", "LIBSAQ0111", "LIBSAQ0105", "LIBSAQ0120", "LIBSAQ0121", "LIBSAQ0110", "LIBSAQ0131", "LIBSAQ0135", "LIBSAQ0120", "LIBSAQ0141", "LIBSAQ0150", "LIBSAQ0155", "LIBSAQ0160", "LIBSAQ0180", "LIBSAQ0190", "LIBSAQ0191", "LIBSAQ0192", "LIBSAQ0193", "LIBSAQ0194", "LIBSAQ0195", "LIBSAQ0090", "LIBSAQ0095", "LIBSAQ0096", "LIBSAQ0097", "LIBSAQ0098", "LIBSAQ0099", "LIBSAQ0200", "LIBSAQ0205", "LIBSAQ0206", "LIBSAQ0207", "LIBSAQ26005", "LIBSAQ1002", "LIBSAQ27005", "LIBSAQ28005", "LIBSAQ29005", "LIBSAQ30005", "LIBSAQ0210", "LIBSAQ26000", "LIBSAQ1000", "LIBSAQ10001", "LIBSAQ3000", "LIBSAQ3001", "LIBSAQ4000", "LIBSAQ4001", "LIBSAQ27000", "LIBSAQ5000", "LIBSAQ5001", "LIBSAQ6000", "LIBSAQ6001", "LIBSAQ7000", "LIBSAQ7001", "LIBSAQ8000", "LIBSAQ8001", "LIBSAQ9000", "LIBSAQ9001", "LIBSAQ10000", "LIBSAQ10001", "LIBSAQ28000", "LIBSAQ13000", "LIBSAQ13001", "LIBSAQ15000", "LIBSAQ15001", "LIBSAQ29000", "LIBSAQ16000", "LIBSAQ16001", "LIBSAQ17000", "LIBSAQ17001", "LIBSAQ30000", "LIBSAQ19000", "LIBSAQ19001", "LIBSAQ21000", "LIBSAQ21001", "LIBMAQ33060", "LIBSAQ26007", "LIBSAQ33061", "LIBSAQ27007", "LIBSAQ33062", "LIBSAQ28007", "LIBSAQ33063", "LIBSAQ29007", "LIBSAQ33064", "LIBSAQ33067", "LIBSAQ33069", "LIBSAQ30007", "LIBSAQ33070", "LIBSAQ33065", "LIBSAQ33067", "LIBSAQ33069","LIBSAQ33070" ); } private List getDataInit() { List conditionVOList = new ArrayList<>(); conditionVOList.add(new MAQConditionVO("Flexibility_1", "P_Flex01", "LIBSAQ10")); conditionVOList.add(new MAQConditionVO("Creativity_2", "P_Creat02", "LIBSAQ20")); conditionVOList.add(new MAQConditionVO("AnalyticalApproach_3", "P_Analyt03", "LIBSAQ30")); conditionVOList.add(new MAQConditionVO("Independence_4", "P_Indep04", "LIBSAQ40")); conditionVOList.add(new MAQConditionVO("AchievementOrientation_5", "P_Achiev05", "LIBSAQ50")); conditionVOList.add(new MAQConditionVO("Initiative_6", "P_Initi06", "LIBSAQ60")); conditionVOList.add(new MAQConditionVO("Persistence_7", "P_Persis07", "LIBSAQ70")); conditionVOList.add(new MAQConditionVO("Thoroughness_8", "P_Thorou08", "LIBSAQ80")); conditionVOList.add(new MAQConditionVO("Dependability_9", "P_Depend09", "LIBSAQ90")); conditionVOList.add(new MAQConditionVO("PlanningandOrganizing_10", "P_Plan10", "LIBSAQ100")); conditionVOList.add(new MAQConditionVO("TrustandIntegrity_11", "P_Integr11", "LIBSAQ110")); conditionVOList.add(new MAQConditionVO("PersonalEnergy_12", "P_Energy12", "LIBSAQ120")); conditionVOList.add(new MAQConditionVO("SociallyOpen_13", "P_Social13", "LIBSAQ130")); conditionVOList.add(new MAQConditionVO("LeadingOthers_14", "P_Lead14", "LIBSAQ140")); conditionVOList.add(new MAQConditionVO("Influencing_15", "P_Influ15", "LIBSAQ150")); conditionVOList.add(new MAQConditionVO("CooperationTeamwork_16", "P_Team16", "LIBSAQ160")); conditionVOList.add(new MAQConditionVO("Empathetic_17", "P_Empath17", "LIBSAQ170")); conditionVOList.add(new MAQConditionVO("PoliteTactful_18", "P_Polite18", "LIBSAQ180")); conditionVOList.add(new MAQConditionVO("Self_Regulation_19", "P_Regula19", "LIBSAQ190")); conditionVOList.add(new MAQConditionVO("ManagingStress_20", "P_ManStr20", "LIBSAQ200")); conditionVOList.add(new MAQConditionVO("Self_Confidence_21", "P_Confid21", "LIBSAQ210")); conditionVOList.add(new MAQConditionVO("Mindfulness_22", "P_Mind22", "LIBSAQ220")); conditionVOList.add(new MAQConditionVO("Task_Result_Orientation_31", "P_Task31", "LIBSAQ310")); conditionVOList.add(new MAQConditionVO("People_Orientation_32", "P_People32", "LIBSAQ320")); return conditionVOList; } 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"); } 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; } }