Skip to content

wf_task 运行时任务表

一次「需要人来办的事」= 一行。或签、会签、加签、委托全部在这一张表上闭环——只保留进行中任务,只留办理所需的最小字段集。

表结构

标识与归属

字段说明
id任务 UUID
process_instance_id所属实例(独立任务可为空
process_id流程定义版本
task_type任务类型:user_task(默认)/ ccTask 抄送
task_def_key节点定义 ID(对应 DSL 里的 node id)
name / description任务名称与说明
tenant_id + 审计四件套租户隔离与审计(同其余 wf_* 表)

状态机

字段说明
status全集:created / assigned / waiting / pending / active / delegated / completed / returned / withdrawn / suspended / terminated。初值按创建场景:指定办理人 → active;候选组模式 → pending(签收后 active);抄送任务 → 直接 completed
assignee当前办理人
owner拥有人(委托前的原办理人)
claimed_at签收时间(空 = 未签收,用于签收/抢单)

会签与加签(核心)

字段说明
parent_id父任务 ID——加签产生子任务挂到主任务下;会签每人一行
sequence_order会签序号(顺序会签子任务按此排序;0 = 主任务或非会签)
approval_typesingle 单人 / or 或签 / sequential 依次 / vote 票签 / countersign 会签 / system 系统 / cc 抄送;加签子任务还会写 add_sign_before / add_sign_after / add_sign
approval_rule会签规则 JSON:`{"type":"all

办理与超时

字段说明
form_key关联表单
variables任务级变量(运行时可改,如加签备注、转办留痕)
due_date截止时间(gflow 定时巡检 due_date 已超期的任务并发站内提醒)
priority优先级,待办排序用

委托与转办留痕

  • 委托delegate_from / delegate_reason / delegate_time 三列直接落表
  • 转办:写入 variablestransfer_from / transfer_reason / transfer_time

结束字段

ended_at / comment(处理意见)/ end_reason / duration(耗时毫秒)。

状态一览

指定办理人创建 ──▶ active ──办理──▶ completed
候选组创建 ─────▶ pending ──签收──▶ active
抄送任务创建 ────▶ completed(不阻塞流程)
任一在途状态:挂起 ⇄ suspended;被退回 returned;撤回 withdrawn;实例终止连带作废 terminated

加签的存储形态

主管审批中加签「前置审批人 zhangwei」时:

wf_task: 主任务(parent_id=NULL, status=active)
wf_task: 子任务(parent_id=主任务, sequence_order=1, assignee=zhangwei)  ← 先审

引擎保证父任务在链上子任务全部完成前不出结果——这就是「加签」的全部存储实现,没有额外表。

索引设计

  • process_instance_id —— 实例详情页取任务列表
  • assigneestatus —— 各自单列索引,我的待办按需组合
  • due_date —— 超时扫描
  • priority DESC, created_at ASC —— 待办排序
  • tenant_id(process_instance_id, task_def_key, sequence_order) —— 租户隔离与流程维度回溯
  • (parent_id, sequence_order) —— 会签/加签链(部分索引,parent_id IS NOT NULL

rulego-bpm 基于 Apache-2.0 许可开源 · gflow 商业授权