审批通过、不通过、驳回
前端:Vue3 + Vben Admin + Ant Design Vue;流程相关页面源码位于 ruoyi-office-vben/apps/web-antd/src/views/bpm。
1. 待办任务
1.1 表结构
Flowable 的任务数据同样采用冷热分离:
- 运行时:
ACT_RU_TASK(当前任务) - 历史:
ACT_HI_TASKINST(历史任务)
1.2 任务状态
RuoYi Office 定义了 10 种任务状态(BpmTaskStatusEnum):
| 状态 | 值 | 说明 |
|---|---|---|
| 待审批 | 1 | 等待审批人处理 |
| 运行中 | 2 | 审批人已收到但未处理(向后加签中间状态) |
| 审批通过 | 3 | 审批人已通过 |
| 审批不通过 | 4 | 审批人已拒绝 |
| 已取消 | 5 | 任务被取消 |
| 已退回 | 6 | 任务被驳回 |
| 已委派 | 7 | 任务被委派中 |
| 待后加签 | 8 | 等待向后加签审批 |
| 待前加签 | 9 | 等待向前加签审批 |
| 已撤回 | 10 | 任务被撤回 |
1.3 待办任务列表
审批人在「待办任务」页面查看需要处理的任务:

2. 审批通过
点击「通过」按钮,同意当前审批节点:
- 前端调用
PUT /admin-api/bpm/task/approve - 后端调用
TaskService.complete()完成任务 - Flowable 引擎自动推进流程到下一节点
- 如果是最后一个节点,流程状态变为「审批通过」
3. 审批不通过
点击「不通过」按钮,拒绝当前流程:
- 前端调用
PUT /admin-api/bpm/task/reject - 后端更新任务状态为「审批不通过」
- 根据配置决定后续行为:
- 终止流程:整个流程结束,状态变为「审批不通过」
- 驳回到指定节点:退回重审
4. 驳回
驳回是将流程退回到之前的某个节点,重新审批。
可驳回的目标节点
- 发起人:退回到最初的发起节点
- 上一节点:退回到前一个审批节点
- 任意节点:选择任意已经过的节点
实现原理
使用 Flowable 的 RuntimeService.createChangeActivityStateBuilder().moveActivityIdsToSingleActivityId() 实现节点跳转。
驳回后的处理
被驳回的节点重新变为「待审批」状态,重新走一遍审批流程。
5. 已办任务
「已办任务」页面展示审批人已处理过的任务:

数据来源于 ACT_HI_TASKINST(历史任务表)。
6. 流程任务管理(管理员)
管理员可在「流程任务」页面查看所有任务记录,支持按流程/用户/状态筛选。