Files
ai-contract-platform/project-docs/V2-conditional-approval-rules-2026-06-25.md
T
yuqei a3bb78e06b
Security Quality Gate / npm audit, Bandit, pip-audit, detect-secrets (pull_request) Failing after 16m35s
release: freeze V2 release candidate
2026-07-12 15:32:24 +08:00

3.5 KiB

AI 合同平台 V2 - 条件审批规则闭环记录

日期:2026-06-25

背景

对照《AI 合同平台 V2 重构版开发方案》Phase 5 企业协作闭环,本轮实现条件审批规则。目标是让系统能够根据合同属性自动判断是否需要审批,而不是每次都手动触发。

目标

  • 审批规则模型和 CRUD API。
  • 创建合同时自动检查审批规则。
  • 触发规则时自动进入审批流程。
  • 管理区审批规则配置页面。

已完成内容

后端模型和 API

文件:

  • yuqei-contract-platform/services/contract-api/src/yuqei_contract_api/contracts.py
  • yuqei-contract-platform/services/contract-api/src/yuqei_contract_api/main.py

新增模型:

  • ApprovalRuleType: contract_type, amount, risk_level
  • ApprovalRule: id, rule_type, rule_label, operator, value, action, enabled
  • ApprovalRulePage: items, page, page_size, total
  • ApprovalRuleCreateRequest / ApprovalRuleUpdateRequest

新增接口:

  • GET /api/v1/approval-rules: 规则列表
  • POST /api/v1/approval-rules: 创建规则
  • PATCH /api/v1/approval-rules/{id}: 更新规则
  • DELETE /api/v1/approval-rules/{id}: 删除规则

规则匹配逻辑:

  • match_approval_rule(): 根据规则类型和操作符匹配合同属性
  • check_approval_required(): 检查所有启用的规则,返回是否需要审批和触发原因
  • parse_amount(): 解析金额字符串,支持万、亿单位

自动触发审批:

  • create_contract() 中集成规则检查
  • 触发规则时自动设置状态为 approval_pending
  • 写入审计事件记录触发原因
  • 创建通知告知相关人员

默认规则:

  1. 合同金额超过50万需要审批
  2. 高风险合同需要审批

前端页面

文件:

  • yuqei-contract-platform/apps/contract-web/src/app/admin/approval-rules/page.tsx
  • yuqei-contract-platform/apps/contract-web/src/app/api/contract-platform/approval-rules/route.ts
  • yuqei-contract-platform/apps/contract-web/src/app/api/contract-platform/approval-rules/[ruleId]/route.ts
  • yuqei-contract-platform/apps/contract-web/src/app/globals.css

新增路由:

  • /admin/approval-rules: 审批规则配置页面

功能点:

  • 规则列表展示
  • 添加新规则(类型、名称、条件、值)
  • 启用/禁用规则切换
  • 删除规则
  • 管理区入口

ContractDetail 模型增强

新增字段:

  • contract_type: 合同类型
  • risk_level: 风险等级

验证结果

后端测试:

python -m pytest yuqei-contract-platform/services/contract-api/tests -q

结果:25 passed

前端构建:

npm --prefix yuqei-contract-platform/apps/contract-web run typecheck
npm --prefix yuqei-contract-platform/apps/contract-web run build

结果:通过,新增 /admin/approval-rules 路由

当前闭环

现在审批流程为:

  1. 管理员配置审批规则(金额阈值、风险等级等)。
  2. 业务用户创建合同。
  3. 系统自动检查规则,若匹配则:
    • 状态自动设为"待审批"
    • 审计记录触发原因
    • 发送通知给审批人
  4. 审批人在通知中心或工作台看到待审批合同。
  5. 审批处理完成后通知业务用户。

这符合 V2 方案中"触发条件时审批自动出现"的目标。

后续建议

  1. 规则优先级: 多条规则匹配时的优先级处理。
  2. 规则组合: 支持多条件组合(如:金额>50万 AND 风险=高)。
  3. 审批人指定: 不同规则指定不同审批人。