flowable 投票表达式
时间: 2023-06-22 16:26:39 浏览: 137
在 flowable 中实现投票节点的投票表达式可以通过任务监听器或者流程变量来实现。以下是两种实现方式:
1. 任务监听器方式:
在投票节点上添加任务监听器,监听器可以在任务完成时触发。在监听器中可以编写投票表达式,如下所示:
```
public class VoteTaskListener implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
// 获取投票结果
Boolean voteResult = (Boolean) delegateTask.getVariable("voteResult");
// 获取投票比例
Integer voteRatio = (Integer) delegateTask.getVariable("voteRatio");
// 获取已投票数
Integer votedCount = (Integer) delegateTask.getVariable("votedCount");
// 获取总票数
Integer totalCount = (Integer) delegateTask.getVariable("totalCount");
// 判断是否通过投票
if (voteResult && votedCount >= totalCount * voteRatio / 100) {
// 投票通过
delegateTask.setVariable("result", "approved");
} else {
// 投票不通过
delegateTask.setVariable("result", "rejected");
}
}
}
```
2. 流程变量方式:
在投票节点上添加流程变量,变量可以在流程中传递和计算。在投票节点的出口条件中使用表达式来计算投票结果,如下所示:
```
${approvedCount >= totalCount * voteRatio / 100}
```
其中 approvedCount 为通过投票的数量,totalCount 为总投票数量,voteRatio 为投票比例。
以上是两种实现方式,可以根据具体业务需求选择适合的方式来实现投票节点的投票表达式。
阅读全文