在activiti中, 对于正在执行的任务, 已经执行过得任务, 未执行的任务可以判断出来, 但是还有一种状态, 就是任务已经执行过了, 但是因为后面因为流程选择关系又回到了这个任务的前面一些任务, 那这个任务可能还会执行一遍, 如何判断任务的这个状态?
比如下面这个请假流程图
当执行到人事审批这边, 人事审批拒绝了当前申请, 开始调整申请任务, 所以人事审批有可能还会执行一次, 这个已经执行过, 但是可能还会执行的状态改如何判断?
在activiti中, 对于正在执行的任务, 已经执行过得任务, 未执行的任务可以判断出来, 但是还有一种状态, 就是任务已经执行过了, 但是因为后面因为流程选择关系又回到了这个任务的前面一些任务, 那这个任务可能还会执行一遍, 如何判断任务的这个状态?
比如下面这个请假流程图
当执行到人事审批这边, 人事审批拒绝了当前申请, 开始调整申请任务, 所以人事审批有可能还会执行一次, 这个已经执行过, 但是可能还会执行的状态改如何判断?
3 回答2.6k 阅读✓ 已解决
3 回答4.1k 阅读✓ 已解决
8 回答3.8k 阅读
4 回答2.8k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.6k 阅读✓ 已解决
4 回答1.9k 阅读
自己琢磨了一下, 找到了满足自己的这个要求的解决方法, 主要就是对于已经执行过的任务的状态进行判断, 比如审批任务, 如果审批不通过, 则会退回到申请步骤, 所以这个时候审批任务是执行完成过一次, 但是可能还会执行一次, 对于这个状态我判定的思路是这样的:
首先根据ProcessInstanceID可以获得该流程所有的历史活动实例(ACT_HI_ACTINS表)的, 按时间排序后进行遍历, 将activityID放入到一个数组中, 如果一个activityId重复出现了两次, 则这两个activityId中间的则是这种状态的, 然后将部分从数组中移除
代码
javaBean
因为现在需求中的场景比较简单, 对于使用并行网关的情况并没有考虑, 对于复杂的流程可能还需要改进