工作流管理员干预专题
2026/8/21大约 5 分钟
工作流管理员干预专题
面向流程管理员 / 运维:当在途流程出现异常(审批人离职、卡死、设计变更、需要紧急放行/作废)时,用本篇的工具"救火"。 这些操作大多不可逆或会改写流转记录,请谨慎使用并填写操作原因(所有干预都会留痕到审批记录,见《名词术语表》§5.3)。 后端实现:
WfEngineService.AdminJump / AdminReassign / AdminTerminate / AdminSuspend / AdminResume,入参WfAdminOperationDto / WfAdminReassignDto / WfAdminJumpDto。
一、5 个管理工具速览
| 操作 | 枚举 WfAction | 适用场景 | 是否可逆 | 实例状态要求 |
|---|---|---|---|---|
| 跳转 Jump | 15 | 设计变更后修复在途实例、绕过异常节点,直接跳到指定节点 | 不可逆 | 审批中 / 挂起 |
| 改派 Reassign | 14 | 审批人离职/失联,把卡住的待办换人 | 可再改派 | 审批中 / 挂起 |
| 终止 Terminate | 13 | 流程已无意义,强制作废 | 不可(另有撤回走申请人) | 审批中 / 挂起(已通过/撤回/已终止不可) |
| 挂起 Suspend | 11 | 临时冻结,等外部条件就绪再恢复 | 可恢复 | 仅审批中 |
| 恢复 Resume | 12 | 解冻被挂起的流程 | — | 仅挂起 |
⚠️ 注意区分:"终止"是管理员强制作废(无论走到哪都废掉);"撤回"是申请人在审完前自己反悔(见术语表 §5.3)。两者入口和权限都不同。
二、跳转节点(Jump)——最强但最危险
何时用
- 流程设计改了,旧的在途实例卡在新旧结构不一致的地方。
- 某节点因数据异常永远到不了,需要手动把实例挪到正确节点。
- 业务上需要"跳过"某几个节点直接到后面(如免审放行到结束前)。
操作要点(来自 AdminJump)
- 选择「跳转目标节点」:必须是该流程定义里真实存在的节点,且不能是结束节点。
- 填写跳转说明(必建议填,留痕)。
- 确认后引擎会:清空当前活动集与所有未完成任务,把实例重新激活到目标节点(生成该节点的待办/抄送)。
风险与坑
- 不可逆:跳转后原来的待办都没了,无法回退到跳转前状态。
- 并行分组要小心:若跳到"并行分组内的成员节点",引擎用
singleNodeOnly模式——只激活目标节点本身,并把组内其它分支统一置为 Skipped,使并行汇聚判定"其余分支已完成"、目标分支通过即可放行,避免卡死。简单的说:跳进并行组,等于放弃同组其它分支。 - 跳转会触发目标节点的「进入事件(Webhook)」,留意外部系统可能收到通知。
经验:跳转前先挂起实例,确认目标节点无误再跳,跳完再恢复,可缩小误操作窗口。
三、改派(Reassign)——把待办换人
何时用
审批人离职、长期请假、或明显派错人,需要把某个节点当前未完成的任务改给其他人。
操作要点(来自 AdminReassign)
- 选择「目标节点」:实例当前所处或任意未完成任务所属的节点。节点上必须存在未完成任务(已审/已跳过的任务不会被改派,节点无任务会报错)。
- 选择「改派目标用户」(按 userId)。
- 该节点下的全部未完成任务(审批 + 抄送)都会重新分配给目标用户,原待办作废。
- 目标用户会收到"待办已被管理员改派给您"的通知。
与"转办"的区别(术语表 §5.4)
- 改派(管理员):从后台强行把卡住的待办换人,不要求你是当前审批人。
- 转办(审批人):当前审批人自己在处理时,把任务彻底移交他人。
四、终止(Terminate)——强制作废
何时用
流程已经没有继续的必要(如项目取消、重复发起、测试数据),需要一条命令作废。
操作要点(来自 AdminTerminate)
- 仅当实例处于审批中或挂起时可终止。
- 以下状态不可终止,会报错:
- 已通过(
Approved) - 已撤回(
Withdrawn) - 已终止(不能重复终止)
- 已通过(
- 终止后:所有未完成任务标记作废,实例状态置为"已终止",申请人及所有待办人收到"流程已被管理员 XXX 终止"通知。
- 不可逆:终止后无法恢复,只能重新发起新流程。
如果只是想暂停而非作废,优先用「挂起」而不是「终止」。
五、挂起 / 恢复(Suspend / Resume)——临时冻结
何时用
- 等待外部系统数据、等待政策明确、或排查问题时,不想让流程继续推进,但也不想作废。
操作要点
- 挂起(Suspend):仅审批中实例可挂起。挂起后实例状态=
Suspended,任务不变(只是引擎不再推进)。前端在挂起期间会隐藏普通审批按钮,避免误操作。 - 恢复(Resume):仅挂起实例可恢复,回到
Approval继续流转。 - 挂起/恢复都会留痕并通知申请人。
六、标准"救火"流程建议
遇到在途实例异常,推荐顺序:
- 先诊断:在「流程监控」看实例当前节点、活动集、各任务状态(
Pending/Waiting/Skipped/Done)。 - 能改派就改派:只是人不合适 → 用「改派」换人,最安全、可逆。
- 要暂停等条件 → 用「挂起」,条件具备再「恢复」。
- 要绕过/修正结构 → 谨慎用「跳转」,跳转前可先挂起缩小风险窗口。
- 彻底作废 → 最后才用「终止」,确认无可挽回。
七、权限与审计
- 以上 5 个操作均为管理员权限,普通审批人/申请人无入口。
- 每次操作都会写入审批记录(
WfFlowRecord),含操作人、动作、意见(Opinion)、时间,可在「审批记录」里全程追溯。 - 涉及通知的(终止/改派/挂起/恢复)会通过站内信 + 实时推送告知相关人员。
更多权限粒度(如"谁能跳转到任意节点")由后端角色/接口鉴权控制,详见《模块说明》。
