a3bb78e06b
Security Quality Gate / npm audit, Bandit, pip-audit, detect-secrets (pull_request) Failing after 16m35s
124 lines
3.5 KiB
Markdown
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. **审批人指定**: 不同规则指定不同审批人。
|