package com.ots.project.tool.report.CIAQ;
|
|
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.condition.ResponseFidelityDiagnosisTitle_V2;
|
import com.ots.project.tool.report.MAQNEW.condition.ResponseFidelityDiagnosis_V2;
|
import com.ots.project.tool.report.MAQNEW.condition.ScoreCharacteristics_V2;
|
import com.ots.project.tool.report.MAQNEW.condition.SimpleMessage_V2;
|
import com.ots.project.tool.report.PAQ.condition.Diagnosis;
|
import com.ots.project.tool.report.PAQ.condition.DiagnosisTitle;
|
import com.ots.project.tool.report.ReportResultData;
|
import lombok.Data;
|
import lombok.extern.slf4j.Slf4j;
|
|
import java.text.DecimalFormat;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
@Data
|
@Slf4j
|
public class CIAQReport {
|
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 LangTypeEnum langType;
|
|
/**
|
* 根据报告类型初始化数据
|
* @param reportTypeEnum
|
* @return
|
*/
|
public List<BaseCondition_V2> getParamList(ReportTypeEnum reportTypeEnum) {
|
return init(reportTypeEnum);
|
}
|
|
/**
|
* 根据报告类型初始化所有
|
* @param reportTypeEnum
|
* @return
|
*/
|
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.addAll(getScoreCharacteristicsList().stream().map(p -> {
|
ScoreCharacteristics_V2 scoreCharacteristics = new ScoreCharacteristics_V2(p);
|
return scoreCharacteristics;
|
}).collect(Collectors.toList()));
|
|
return paramList;
|
}
|
|
/**
|
* 表格计算数值
|
* @return
|
*/
|
private List<String> getScoreCharacteristicsList() {
|
return Arrays.asList("PR_Dim01", "PR_Dim02", "PR_Dim03", "PR_Dim04", "PR_Dim05", "PR_Dim06", "PR_Dim07", "PR_Dim08");
|
}
|
|
/**
|
* 普通文本替换library
|
* @return
|
*/
|
private List<String> getSimpleMessageCoreIds() {
|
return new ArrayList<>();
|
}
|
|
/**
|
* 获取报告字典替换值
|
* @param thaiCalculationMap
|
* @param type
|
* @param langType
|
* @return
|
*/
|
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){
|
//表格多位 计算分数值赋值 例如
|
// 表格的:%ResponseFidelityDiagnosis_V2_0%
|
// 表格的:%ResponseFidelityDiagnosis_V2_1%
|
// 表格的:%ResponseFidelityDiagnosis_V2_2%
|
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));
|
}
|
});
|
textMap.putAll(thaiCalculationMap);
|
ReportResultData reportResultData = new ReportResultData();
|
reportResultData.setTextMap(textMap);
|
return reportResultData;
|
}
|
}
|