预警消息提醒消息解析插件
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