Skip to content

审批通过、不通过、驳回

前端: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. 审批通过

点击「通过」按钮,同意当前审批节点:

  1. 前端调用 PUT /admin-api/bpm/task/approve
  2. 后端调用 TaskService.complete() 完成任务
  3. Flowable 引擎自动推进流程到下一节点
  4. 如果是最后一个节点,流程状态变为「审批通过」

3. 审批不通过

点击「不通过」按钮,拒绝当前流程:

  1. 前端调用 PUT /admin-api/bpm/task/reject
  2. 后端更新任务状态为「审批不通过」
  3. 根据配置决定后续行为:
    • 终止流程:整个流程结束,状态变为「审批不通过」
    • 驳回到指定节点:退回重审

4. 驳回

驳回是将流程退回到之前的某个节点,重新审批。

可驳回的目标节点

  • 发起人:退回到最初的发起节点
  • 上一节点:退回到前一个审批节点
  • 任意节点:选择任意已经过的节点

实现原理

使用 Flowable 的 RuntimeService.createChangeActivityStateBuilder().moveActivityIdsToSingleActivityId() 实现节点跳转。

驳回后的处理

被驳回的节点重新变为「待审批」状态,重新走一遍审批流程。

5. 已办任务

「已办任务」页面展示审批人已处理过的任务:

已办任务

数据来源于 ACT_HI_TASKINST(历史任务表)。

6. 流程任务管理(管理员)

管理员可在「流程任务」页面查看所有任务记录,支持按流程/用户/状态筛选。