a3bb78e06b
Security Quality Gate / npm audit, Bandit, pip-audit, detect-secrets (pull_request) Failing after 16m35s
3.5 KiB
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.pyyuqei-contract-platform/services/contract-api/src/yuqei_contract_api/main.py
新增模型:
ApprovalRuleType: contract_type, amount, risk_levelApprovalRule: id, rule_type, rule_label, operator, value, action, enabledApprovalRulePage: items, page, page_size, totalApprovalRuleCreateRequest/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 - 写入审计事件记录触发原因
- 创建通知告知相关人员
默认规则:
- 合同金额超过50万需要审批
- 高风险合同需要审批
前端页面
文件:
yuqei-contract-platform/apps/contract-web/src/app/admin/approval-rules/page.tsxyuqei-contract-platform/apps/contract-web/src/app/api/contract-platform/approval-rules/route.tsyuqei-contract-platform/apps/contract-web/src/app/api/contract-platform/approval-rules/[ruleId]/route.tsyuqei-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 路由
当前闭环
现在审批流程为:
- 管理员配置审批规则(金额阈值、风险等级等)。
- 业务用户创建合同。
- 系统自动检查规则,若匹配则:
- 状态自动设为"待审批"
- 审计记录触发原因
- 发送通知给审批人
- 审批人在通知中心或工作台看到待审批合同。
- 审批处理完成后通知业务用户。
这符合 V2 方案中"触发条件时审批自动出现"的目标。
后续建议
- 规则优先级: 多条规则匹配时的优先级处理。
- 规则组合: 支持多条件组合(如:金额>50万 AND 风险=高)。
- 审批人指定: 不同规则指定不同审批人。