Skip to content

[P1] approval: single-step threshold only — no multi-stage / parallel / delegation / OOO #1299

@xuyushun441-sys

Description

@xuyushun441-sys

来源:docs/PLATFORM_GAPS_FROM_TEMPLATES.md 第 5 条(P1)。
实证:procurementcompliancecontracts 三个模板的审批流均验证不足。

现象

平台审批流(approval flow 节点 / state machine guard)目前仅支持单步阈值审批,缺:

  • 多级串行审批:金额 < X 部门主管 → < Y 财务总监 → < Z CEO
  • 并行 + 会签:若干审批人必须全部通过 / 任意一人通过 / N 人之 M
  • 委派(delegation):A 临时把审批权限给 B
  • OOO(out of office):A 标记不在岗,自动跳过 → 备选人
  • 撤回 / 重审:发起人撤回、上级驳回到指定节点
  • 审批意见持久化:审批人填的理由 / 附件

复现

cd packages/procurement && pnpm dev
# 创建一个金额 1,000,000 的请求 — 期望走 manager → finance → CEO 三级
# 实际只能配置单一阈值,超过 X 全部转给一个人

当前 workaround

模板侧硬写多 step state machine:

states: { pending_manager, pending_finance, pending_ceo, ... }

把审批拆成业务状态,每一级写一个 flow。代价:

  1. 审批关系 hardcode 在模板里,客户改不了。
  2. 没有委派 / OOO 概念。
  3. 无审批意见结构化字段。
  4. 并行 / 会签写不出来。
  5. 撤回需要写自定义 flow。

建议范围

M1:审批引擎

  • 新对象 approval_request + approval_step(系统级)
  • 步骤定义:approver(user / role / formula)、mode(all / any / quorum:N)、escalateAfter(超时)、onReject(return-to / restart / fail)
  • 委派:approval_delegation 记录 + approver 解析时按链路

M2:流程节点

  • Flow 新增 request_approval 节点:携带 policypayloadsubject,返回 decision
  • State machine guard 能引用最新决策

M3:审批 UI

M4:审批轨迹可视化

  • 一条审批记录显示当前在哪一步 / 已完成 / 何人 / 何时 / 意见

验收

关联

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestpriority:p1High: required for production / M2

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions