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<BaseCondition_V2> getParamList(ReportTypeEnum reportTypeEnum) {
|
return init(reportTypeEnum);
|
}
|
private List<BaseCondition_V2> init(ReportTypeEnum reportTypeEnum) {
|
List<BaseCondition_V2> 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<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_Judg33");
|
}
|
private List<String> getSimpleMessageCoreIds() {
|
return Arrays.asList(
|
"LIBMAQV20001", "LIBMAQV20002", "LIBMAQV20003", "LIBMAQV20004", "LIBMAQV20005",
|
"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<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")));
|
} 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<MAQConditionVO_V2> getDataInit() {
|
List<MAQConditionVO_V2> 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<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());
|
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){
|
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;
|
}
|
}
|