TreeviewCopyright © aleen42 all right reserved, powered by aleen42
扩展规则链
1.业务背景
在脚手架某些按钮上想执行一些自己的逻辑。
比如:一个审批流,你又添加了一个启用按钮,希望单据启用后,才能提交审批,停用的单据不能提交。就可以在提交的动作上,加一个扩展的规则链,来实现。
2.后台定义规则链
脚手架后端代码中有rule规则扩展示例。通过继承AbstractCommonRule,然后通过注解Component标注该类。
/**
* @desc 缺货认定申请单 审批提交规则
**/
@Slf4j
@Component("StockoutAffirmApplySubmitRule")
public class StockoutAffirmApplySubmitRule extends AbstractCommonRule {
@Override
public RuleExecuteResult execute(BillContext billContext, Map<String, Object> paramMap) throws Exception {
// 获取规则实体
List<BizObject> bills = this.getBills(billContext, paramMap);
// 定义返回值
RuleExecuteResult result = new RuleExecuteResult();
if( bills != null && bills.size() > 0){
BizObject bill = bills.get(0);
log.info("bill 的启用状态:{}", JSONObject.toJSONString(bill.get("enable")));
if( "0".equals(bill.get("enable")) ){
throw new BusinessException("停用的单据不能提交!!!");
}
}
return result;
}
}
3.动作上配置规则链
在对应页面建模设计页面中(卡片),选择需要配置自定义rule规则的按钮或命令
注:因为列表上也有“提交”按钮,所以列表设计器的submit也要添加该规则