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

124 lines
3.5 KiB
Markdown

# 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`: 风险等级
## 验证结果
后端测试:
```powershell
python -m pytest yuqei-contract-platform/services/contract-api/tests -q
```
结果:25 passed
前端构建:
```powershell
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. **审批人指定**: 不同规则指定不同审批人。