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<BaseCondition> getParamList(ReportTypeEnum reportTypeEnum) {
|
return init(reportTypeEnum);
|
}
|
private List<BaseCondition> init(ReportTypeEnum reportTypeEnum) {
|
List<BaseCondition> 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<String> 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<String> 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<MAQSummaryCondition> getMAQSummaryParamList(String summaryType) {
|
List<MAQSummaryCondition> 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<MAQConditionVO> getDataInit() {
|
List<MAQConditionVO> 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<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());
|
|
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;
|
}
|
}
|