预警消息提醒消息解析插件
This commit is contained in:
parent
a7cc8f0410
commit
36679aa757
|
@ -0,0 +1,66 @@
|
|||
package zcgj.zcdev.zcdev.fs.plugin.other;
|
||||
|
||||
import kd.bos.dataentity.entity.DynamicObject;
|
||||
import kd.bos.entity.earlywarn.EarlyWarnContext;
|
||||
import kd.bos.entity.earlywarn.kit.StringTemplateParser;
|
||||
import kd.bos.entity.earlywarn.kit.StringUtil;
|
||||
import kd.bos.entity.earlywarn.warn.plugin.IEarlyWarnMessageCompiler;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
public class MessageCompiler implements IEarlyWarnMessageCompiler {
|
||||
|
||||
|
||||
@Override
|
||||
public String getSingleMessage(String expression, List<String> fields, DynamicObject data, EarlyWarnContext earlyWarnContext) {
|
||||
if (expression == null || data == null){
|
||||
return "";
|
||||
}
|
||||
Map<String, String> map = new HashMap<>();
|
||||
for (String field : fields) {
|
||||
String value = "";
|
||||
if ("zcgj_beginlocal".equals(field)
|
||||
|| "zcgj_debitlocal".equals(field)
|
||||
|| "zcgj_creditlocal".equals(field)
|
||||
|| "zcgj_yeardebitfor".equals(field)
|
||||
|| "zcgj_yearcreditfor".equals(field)
|
||||
|| "zcgj_endlocal".equals(field)){
|
||||
String[] arr = StringUtil.split(field, ".");
|
||||
Object objValue = getValue(data, arr);
|
||||
value = objValue == null?"" : objValue.toString();
|
||||
if(value!=null){
|
||||
BigDecimal valBig = new BigDecimal(value);
|
||||
BigDecimal divide = valBig.setScale(2, RoundingMode.HALF_UP).divide(new BigDecimal("10000"), 2, RoundingMode.HALF_UP);
|
||||
value = String.valueOf(divide);
|
||||
}
|
||||
}else {
|
||||
String[] arr = StringUtil.split(field, ".");
|
||||
Object objValue = getValue(data, arr);
|
||||
value = objValue == null?"" : objValue.toString();
|
||||
}
|
||||
map.put(field,value);
|
||||
}
|
||||
StringTemplateParser parser = new StringTemplateParser();
|
||||
return parser.parse(expression,name->map.get(name));
|
||||
}
|
||||
private String getValue(DynamicObject data, String[] arr) {
|
||||
if(null == arr || arr.length == 0){
|
||||
return "";
|
||||
}
|
||||
Object obj = data.get(arr[0]);
|
||||
if(obj instanceof DynamicObject){
|
||||
return getValue((DynamicObject)obj, Arrays.copyOfRange(arr, 1, arr.length));
|
||||
}
|
||||
return StringUtil.toSafeString(obj);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getMergeMessage(String s, List<String> list, EarlyWarnContext earlyWarnContext) {
|
||||
return "";
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue