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 String questionnaireEmail;
|
|
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 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<SAQSummaryCondition> getSAQSummaryParamList(String summaryType) {
|
List<SAQSummaryCondition> 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<String> getSimpleMessageCoreIds() {
|
//支持SAQ GS简易版
|
return Arrays.asList("LIBSAQGS0001","LIBSAQGS0002","LIBSAQGS0005","LIBSAQGS0008","LIBSAQGS0009",
|
"LIBSAQGS0011","LIBSAQGS0017","LIBSAQGS0015","LIBSAQGS8800",
|
"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<MAQConditionVO> getDataInit() {
|
List<MAQConditionVO> 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<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");
|
}
|
|
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());
|
|
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;
|
}
|
}
|