← 审批流 · 把签字流程做成引擎 / 条件路由 + 超时:流程按数据长出来 待审核 1 / 3
routing · 条件路由 + 超时

条件路由 + 超时:流程按数据长出来

审批链不该写死。一笔 800 块的打车费和一笔 80 万的采购,凭什么走一样的流程?条件路由让流程按单据数据(金额 / 类型 / 部门……)动态决定走多长、经过谁:小额免审、大额层层加码。拖动下面的金额滑块,看审批链实时伸缩;再看每个节点上挂的 timeout——审批人迟迟不处理时,系统怎么代为推进。

1 · 路由规则:一张「金额 → 链」的映射

金额区间 审批链 说明
≤ ¥1,000 免审(0 级) 条件命中 → auto-skip 整条链,直接 approved
≤ ¥5,000 直属主管 1 级
≤ ¥50,000 直属主管 → 部门总监 2 级
> ¥50,000 直属主管 → 部门总监 → 财务 VP 3 级,大额多兜一层

这张映射表本身就是一份策略 (policy):条件走向条件 \to 走向。把它从代码里的 if/else 抽成数据,就能让业务在后台自己配阈值,不必改一行代码——这正是策略引擎那一套。

2 · timeout:别让流程烂在某个人手里

串行链最怕「卡住」:审批人休假 / 离职 / 单纯忘了,整条链就堵死。所以每个节点都该配一个时限 (SLA)超时动作:到点没处理就 auto-approve / auto-reject / escalate(升级给上级)/ 催办提醒。

超时是「系统代审」,审计必须如实标注。 上面触发超时后,看审计动作记的是 system 而不是某个人——这条红线不能破:绝不能把系统自动通过伪装成某位审批人点的头,否则出了事,审计追到的是一个根本没看过这张单的人。留痕要写明「因超时由系统代为通过」。