package com.ots.project.tool.report.MAQNEW.base;
|
import com.ots.common.enums.LangTypeEnum;
|
import com.ots.project.exam.domain.TLibraryCode;
|
import com.ots.project.tool.CacheServiceFactory;
|
import lombok.extern.slf4j.Slf4j;
|
import java.util.*;
|
@Slf4j
|
public abstract class BaseCondition_V2 {
|
public static final String IMAGE_PREFIX = "_waterDrops";
|
public abstract String getName();
|
|
public abstract TLibraryCode calculate(Map<String, String> map, LangTypeEnum langType);
|
public List<TLibraryCode> calculateList(Map<String, String> map, LangTypeEnum langType){
|
return null;
|
}
|
|
public abstract Map<String, String> getMAQwaterDropsImages();
|
protected String selectTrueObject(Map<Boolean, String> calculateMap) {
|
for (Map.Entry<Boolean, String> entry : calculateMap.entrySet()) {
|
Boolean mapKey = entry.getKey();
|
if (mapKey) {
|
return entry.getValue();
|
}
|
}
|
return null;
|
}
|
protected boolean checkParamsNonNull(String... value) {
|
return !checkParamsIsNull(value);
|
}
|
protected boolean checkParamsIsNull(String... value) {
|
for (int i = 0; i < value.length; i++) {
|
if (Objects.isNull(value[i])) {
|
return true;
|
}
|
}
|
return false;
|
}
|
public TLibraryCode getMaqReportLibrary(Map<String, String> map, String codeId, LangTypeEnum langType) {
|
if (Objects.isNull(codeId)) {
|
return null;
|
}
|
StringBuilder content = new StringBuilder();
|
String[] split = codeId.split(",");
|
TLibraryCode result = new TLibraryCode();
|
Arrays.stream(split).forEach(item -> {
|
TLibraryCode maqReportLibrary = CacheServiceFactory.getInstance().getMAQReportLibrary(item);
|
if (Objects.isNull(maqReportLibrary)) {
|
log.warn("************** LibraryCode 没有配置 code = {} ***********", item);
|
} else {
|
content.append(maqReportLibrary.getLangTypeContext(langType));
|
result.setDictType(maqReportLibrary.getDictType());
|
result.setIcon(maqReportLibrary.getIcon());
|
result.setLibraryCode(maqReportLibrary.getLibraryCode());
|
}
|
});
|
result.setLangTypeContext(content.toString(), langType);
|
dynamicParameterSubstitution(map, result, langType);
|
return result;
|
}
|
public void dynamicParameterSubstitution(Map<String, String> map, TLibraryCode maqReportLibrary, LangTypeEnum langType) {
|
map.forEach((key, value) -> {
|
String content = maqReportLibrary.getLangTypeContext(langType);
|
String replaceStr = "%" + key + "%";
|
maqReportLibrary.setLangTypeContext(content.replace(replaceStr, "<BoldText>" + value + "</BoldText>"), langType);
|
});
|
}
|
}
|