自定义条件表单

栏目:云苍穹知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

自定义条件表单

# 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 业务场景预警监控方案中默认的监控条件设置,无法满足需求,用户可以通过自定义条件表单设置自定义的监控条件。比如在低库存预警场景...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息