Skip to content

wf_hi_task 历史任务表

已结束任务的归档。多一个灵魂字段:variables 保存任务结束瞬间的表单快照——历史单据「当时长什么样」永久可查。

表结构

字段与 wf_task 同构,关键差异:

字段说明
variables结束瞬间快照——审批时表单长什么样,就留什么样
comment处理意见(「同意,注意假期交接」)
end_reason完成/退回/终止原因
duration任务耗时(毫秒)——环节效率分析
assignee最终办理人
delegate_*委托快照(若有)

会签的每个参与任务、加签产生的子任务,结束后都在这里各占一行,parent_id + sequence_order 保留链路结构。

快照的价值

审批详情页展示历史单据时,读的是当时的变量值,不是当前值——即使后续流程改过变量、组织架构换过人,历史记录不变。这是审计合规的底线要求。

典型查询

sql
-- 某实例完整审批轨迹(含会签/加签链)
SELECT task_def_key, name, assignee, status, comment, ended_at, duration
FROM wf_hi_task
WHERE process_instance_id = '...'
ORDER BY created_at;

-- 各环节平均停留时长(找瓶颈)
SELECT task_def_key, name,
       COUNT(*) AS cnt,
       ROUND(AVG(duration) / 3600000.0, 1) AS avg_hours
FROM wf_hi_task
WHERE ended_at > NOW() - INTERVAL '30 days'
GROUP BY task_def_key, name
ORDER BY avg_hours DESC;

-- 某人近一年审批量
SELECT COUNT(*) FROM wf_hi_task
WHERE assignee = 'u_zhangwei' AND ended_at > NOW() - INTERVAL '1 year';

与运行时的关系

wf_task(进行中) ──任务结束──▶ wf_hi_task(归档,补 comment/duration/快照)
     ▲ 整实例结束时:wf_instance → wf_hi_instance,任务行整体迁移

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