条件路由 + 超时:流程按数据长出来
审批链不该写死。一笔 800 块的打车费和一笔 80 万的采购,凭什么走一样的流程?条件路由让流程按单据数据(金额 / 类型 / 部门……)动态决定走多长、经过谁:小额免审、大额层层加码。拖动下面的金额滑块,看审批链实时伸缩;再看每个节点上挂的 timeout——审批人迟迟不处理时,系统怎么代为推进。
1 · 路由规则:一张「金额 → 链」的映射
| 金额区间 | 审批链 | 说明 |
|---|---|---|
| ≤ ¥1,000 | 免审(0 级) | 条件命中 → auto-skip 整条链,直接 approved |
| ≤ ¥5,000 | 直属主管 | 1 级 |
| ≤ ¥50,000 | 直属主管 → 部门总监 | 2 级 |
| > ¥50,000 | 直属主管 → 部门总监 → 财务 VP | 3 级,大额多兜一层 |
这张映射表本身就是一份策略 (policy):。把它从代码里的 if/else 抽成数据,就能让业务在后台自己配阈值,不必改一行代码——这正是策略引擎那一套。
2 · timeout:别让流程烂在某个人手里
串行链最怕「卡住」:审批人休假 / 离职 / 单纯忘了,整条链就堵死。所以每个节点都该配一个时限 (SLA) 和超时动作:到点没处理就 auto-approve / auto-reject / escalate(升级给上级)/ 催办提醒。
超时是「系统代审」,审计必须如实标注。 上面触发超时后,看审计动作记的是 system 而不是某个人——这条红线不能破:绝不能把系统自动通过伪装成某位审批人点的头,否则出了事,审计追到的是一个根本没看过这张单的人。留痕要写明「因超时由系统代为通过」。