package com.ots.project.tool.report.SAQ.condition; import com.ots.common.enums.LangTypeEnum; 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 lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; import static com.ots.common.enums.LangTypeEnum.Chinese; import static com.ots.common.enums.LangTypeEnum.English; @Setter @Getter @Slf4j public class SAQSummaryCondition extends BaseCondition { private String name; private SAQConditionVO conditionVO; private Double conditionValue; public SAQSummaryCondition(SAQConditionVO conditionVO) { this.name = conditionVO.getName(); this.conditionVO = conditionVO; } @Override public Map getMAQwaterDropsImages() { HashMap map = new HashMap<>(); map.put(name + IMAGE_PREFIX, Objects.isNull(conditionValue) ? "0" : String.valueOf(conditionValue)); return map; } @Override public TLibraryCode calculate(Map map, LangTypeEnum langType) { try { String conditionKey = conditionVO.getConditionKey(); String conValue = map.get(conditionKey); if (checkParamsIsNull(conValue)) { return null; } conditionValue = Double.valueOf(conValue); List conditionTarget = conditionVO.getConditionTarget(); boolean jianjian = conditionValue <= 5; boolean jian = 5 < conditionValue && conditionValue <= 30; boolean jia = 70 <= conditionValue && conditionValue < 95; boolean jiajia = conditionValue >= 95; String prefix = getPrefix(jianjian, jian, jia, jiajia); if (Objects.isNull(prefix)) { return null; } Map calculateMap = new HashMap(); calculateMap.put(jianjian, conditionTarget.get(0)); calculateMap.put(jian, conditionTarget.get(1)); calculateMap.put(jia, conditionTarget.get(4)); calculateMap.put(jiajia, conditionTarget.get(5)); String codeId = selectTrueObject(calculateMap); TLibraryCode library = getMaqReportLibrary(map, codeId, langType); String split = getTitleByLang(conditionVO.getTitle(), langType); String context = "" + prefix + split + " " + library.getLangTypeContext(langType); library.setLangTypeContext(context, langType); return library; } catch (Exception ex) { log.error("MAQCondition error name={},conditionKey={},conditionTarget={} error:{}", name, conditionVO.getConditionKey(), conditionVO.getConditionTarget(), ex.getMessage(), ex); return null; } } private String getTitleByLang(String title, LangTypeEnum langType) { String[] split = title.split(","); if (langType == English) { return split[0]; } else if (langType == Chinese) { return split[1]; } return "noConfiguration"; } private String getPrefix(boolean jianjian, boolean jian, boolean jia, boolean jiajia) { String prefix = ""; if (jianjian) { prefix = "--"; } else if (jian) { prefix = "-"; } else if (jia) { prefix = "+"; } else if (jiajia) { prefix = "++"; } else { prefix = null; } return prefix; } }