开发示例 - 预警平台自定义预警条件的简单示例原创
1人赞赏了该文章
1,408次浏览
编辑于2021年11月08日 16:53:51
场景:在上一篇文章中,介绍了为什么自定义预警条件无法保存成功。这一篇文章会做一个简单的示例,讲述自定义预警条件应该如何使用。(上篇文章连接:https://club.kdcloud.com/article/244186107288236288)
第一步:新建一个单据,添加一个文本字段作为演示。
第二步:将实现了IEarlyWarnConditionForm接口的插件,注册到该单据中,代码如下:
public class TimePagePlugins20210901 extends AbstractFormPlugin implements IEarlyWarnConditionForm { @Override public Map<String, Object> getCustomParams() { IDataModel model = getModel(); Object kdec_decimalfield = model.getValue("kdec_textfield"); HashMap<String, Object> data = new HashMap<>(); data.put("kdec_textfield", kdec_decimalfield); return data; } @Override public EarlyWarnConditionCheckResult checkCustomParams() { return EarlyWarnConditionCheckResult.success("success"); } @Override public void beforeBindData(EventObject e) { super.beforeBindData(e); Map<String, Object> customParams = this.getView().getFormShowParameter().getCustomParams(); for (String key : customParams.keySet()) { this.getView().getModel().setValue(key, customParams.get(key)); } } }
第三步:
新增预警对象,选择上面创建的单据,数据源插件选择自己业务的表单(这里以任意一张表单为例子)
public class TestCustomConditionDataSource extends DefaultEarlyWarnBillDataSource { public List<QFilter> buildFilter(String dataSource, FilterCondition filterCondition, EarlyWarnContext context) { List<QFilter> filters = super.buildFilter(dataSource, filterCondition, context); Map<String, Object> customConditionMap = context.getCustomConditionDataMap(); String kdec_textfield = (String)customConditionMap.get("kdec_textfield"); QFilter filter = new QFilter("kdec_textfield", "like", "%" + kdec_textfield + "%"); filters.add(filter); return filters; } }
第四步:
创建一个监控方案(并填写好方案编码等必填信息),监控条件的文本字段输入“test...”,点击保存,显示保存成功。如果表单满足kdec_textfield like "%test...%",则数据该表单
第五步:执行监控方案,查看预警列表,发现有一张单据满足kdec_textfield like "%test...%"的条件,单据编号如下:
第六步:验证,打开该表单,发现确实满足条件,验证成功
赞 1
1人点赞
还没有人点赞,快来当第一个点赞的人吧!
打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!
推荐阅读