自定义条件表单
# 1 业务场景
预警监控方案中默认的监控条件设置,无法满足需求,用户可以通过自定义条件表单设置自定义的监控条件。比如在低库存预警场景,需要根据不同的仓库配置对应的商品库存下限的监控条件。
# 2 系统路径
苍穹版本V5.0及以下:【系统服务云】→【配置工具】(苍穹版本V6.0:【基础服务云】→【公共设置】)→【预警平台】→【业务预警对象】→【新增/打开已保存的业务预警对象】→【自定义条件表单】
![1.webp](/download/01001a6624e1f5cb48b091e5c1ece535ce85.webp)
# 3 接口说明
自定义条件表单的表单插件需实现kd.bos.entity.earlywarn.warn.plugin.IEarlyWarnConditionForm接口,预警平台通过该接口从用户自定义的监控条件配置页面,获取所需的条件数据。
注:自定义条件表单需要与数据源插件配合使用,数据源插件可参考文章[预警平台进阶场景介绍](https://vip-admin.kingdee.com/article/256133771093708032)。
```java
public interface IEarlyWarnConditionForm {
/**
* 获取自定义表单参数
* @return 自定义表单参数
*/
Map<String,Object> getCustomParams();
/**
* 检查自定义表单参数是否有效
* @return 错误信息
*/
EarlyWarnConditionCheckResult checkCustomParams();
}
```
# 4 示例
下面以低库存预警,每个仓库的商品库存下限不同的场景为例,演示自定义预警条件如何使用:
1、在开发平台配置一个自定义条件动态表单。编写表单插件实现IEarlyWarnConditionForm接口,预警平台通过该接口,获取用户在监控方案配置的自定义预警条件。
![2.webp](/download/0100af851eddd00d4b2192b396d13e38179c.webp)
插件代码如下:
```java
public class StockEarlyWarnConditionDemo extends AbstractFormPlugin implements IEarlyWarnConditionForm {
@Override
public Map<String, Object> getCustomParams() {
//仓库
String warehouse = (String) getModel().getValue("warehouse");
//最低库存数量
Object quantity = getModel().getValue("quantity");
//自定义条件参数
Map<String, Object> dataMap = new HashMap<>();
dataMap.put("warehouse", warehouse);
dataMap.put("quantity", quantity);
return dataMap;
}
@Override
public EarlyWarnConditionCheckResult checkCustomParams() {
Object quantity = getModel().getValue("quantity");
//校验是否填写了最低库存数量
if (StringUtils.isBlank(quantity)){
return EarlyWarnConditionCheckResult.failure("请填写最低库存数量。");
}
return EarlyWarnConditionCheckResult.success("");
}
@Override
public void afterCreateNewData(EventObject e) {
super.afterCreateNewData(e);
Map<String, Object> customParams = getView().getFormShowParameter().getCustomParams();
for (Map.Entry<String, Object> entry : customParams.entrySet()) {
getModel().setValue(entry.getKey(), entry.getValue());
}
}
}
```
2、编写数据源插件,可以继承插件kd.bos.service.earlywarn.impl.DefaultEarlyWarnBillDataSource,重写buildFilter()方法,或实现自定义数据源接口kd.bos.entity.earlywarn.warn.plugin.IEarlyWarnConditionForm。数据源插件代码如下:
```java
public class StockEarlyWarnDataSourceDemo extends DefaultEarlyWarnBillDataSource {
/**
* 构建过滤条件
* @param dataSource 数据源
* @param filterCondition 过滤条件
* @param context 引擎执行上下文
* @return 过滤条件
*/
@Override
public List<QFilter> buildFilter(String dataSource, FilterCondition filterCondition, EarlyWarnContext context) {
//自定义条件数据
Map<String, Object> customConditionDataMap = context.getCustomConditionDataMap();
List<QFilter> filters = new ArrayList<>();
//构建条件:仓库等于仓库001时,最低库存数量小于等于10
for (Map.Entry<String, Object> entry : customConditionDataMap.entrySet()) {
String cp = QCP.equals;
if (StringUtils.equals(entry.getKey(), "quantity")){
cp = QCP.less_equals;
}
QFilter qFilter = new QFilter(entry.getKey(), cp, entry.getValue());
filters.add(qFilter);
}
return filters;
}
}
```
3、新增业务预警对象,选择自定义条件动态表单,同时注册数据源插件。
![3.webp](/download/01004c08e282e9544cbcbf88e031659924fd.webp)
4、新增预警监控方案,选择步骤3新增的预警对象,配置自定义条件:仓库为仓库001时最低库存数量为10。
![4.webp](/download/01004121e9f926914607b7130f446ca64556.webp)
自定义条件表单
# 1 业务场景预警监控方案中默认的监控条件设置,无法满足需求,用户可以通过自定义条件表单设置自定义的监控条件。比如在低库存预警场景...
点击下载文档
上一篇:主题定制系列——自定义表格的列宽模式下一篇:预警监控方案高级条件介绍
本文2024-09-23 00:38:08发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-140735.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章