在Activiti中如何判断当前任务的状态?
在activiti中, 对于正在执行的任务, 已经执行过得任务, 未执行的任务可以判断出来, 但是还有一种状态, 就是任务已经执行过了, 但是因为后面因为流程选择关系又回到了这个任务的前面一些任务, 那这个任务可能还会执行一遍, 如何判断任务的这个状态?
比如下面这个请假流程图
当执行到人事审批这边, 人事审批拒绝了当前申请, 开始调整申请任务, 所以人事审批有可能还会执行一次, 这个已经执行过, 但是可能还会执行的状态改如何判断?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
自己琢磨了一下, 找到了满足自己的这个要求的解决方法, 主要就是对于已经执行过的任务的状态进行判断, 比如审批任务, 如果审批不通过, 则会退回到申请步骤, 所以这个时候审批任务是执行完成过一次, 但是可能还会执行一次, 对于这个状态我判定的思路是这样的:
首先根据ProcessInstanceID可以获得该流程所有的历史活动实例(ACT_HI_ACTINS表)的, 按时间排序后进行遍历, 将activityID放入到一个数组中, 如果一个activityId重复出现了两次, 则这两个activityId中间的则是这种状态的, 然后将部分从数组中移除
代码
javaBean
因为现在需求中的场景比较简单, 对于使用并行网关的情况并没有考虑, 对于复杂的流程可能还需要改进
带变量,将流程经过的节点写在变量中?
或者直接在数据库中标记流程经过的每一个节点,到达节点的时候根据流程id去判断就可以了。