# 审批中心 - 数据模型文档

> **版本**: v1.0  
> **最后更新**: 2026-01-21  
> **维护者**: 后端团队

---

## ✅ 机器读取区（必填）

### Schema 摘要

| 字段 | 内容 |
|------|------|
| Schema 名称 | `platform_form`, `corp_approval` |
| 业务域 | 审批中心管理数据中心（统计/筛选/明细/导出） |
| 核心实体 | FormInstance, ApprovalInstance, ApprovalNodeInstance |

### 实体字段清单（最小）

| 实体 | 字段 | 类型 | 必填 | 说明 |
|------|------|------|------|------|
| FormInstance | id | UUID | ✅ | 表单实例 ID |
| FormInstance | formDefinitionId | UUID | ✅ | 表单定义 ID |
| FormInstance | formKey | String | ✅ | 表单 Key |
| FormInstance | status | Enum | ✅ | 实例状态（DRAFT/SUBMITTED/PENDING_APPROVAL/APPROVED/REJECTED/WITHDRAWN/CANCELLED） |
| FormInstance | approvalStatus | String | ❌ | 审批状态（**schema 上是 String 而非 enum**；合法值：`RUNNING` / `APPROVED` / `REJECTED` / `CANCELLED` / `WITHDRAWN`，由 approval-engine 回调写入；前端按白名单匹配，遇到非法值视为未知态） |
| FormInstance | approvalInstanceId | UUID | ❌ | 审批实例 ID |
| FormInstance | submittedBy | UUID | ❌ | 提交人 ID |
| FormInstance | submittedAt | DateTime | ❌ | 提交时间 |
| FormInstance | createdAt | DateTime | ✅ | 创建时间 |
| ApprovalInstance | id | UUID | ✅ | 审批实例 ID |
| ApprovalInstance | businessType | String | ✅ | 业务类型（FORM_INSTANCE） |
| ApprovalInstance | businessId | UUID | ✅ | 业务实例 ID（对应 FormInstance.id） |
| ApprovalInstance | status | Enum | ✅ | 审批实例状态（RUNNING/APPROVED/REJECTED 等） |
| ApprovalInstance | currentNodeId | String | ❌ | 当前节点 ID |
| ApprovalInstance | startTime | DateTime | ✅ | 审批开始时间 |
| ApprovalInstance | endTime | DateTime | ❌ | 审批结束时间 |
| ApprovalNodeInstance | instanceId | UUID | ✅ | 审批实例 ID |
| ApprovalNodeInstance | nodeName | String | ✅ | 节点名称 |
| ApprovalNodeInstance | status | Enum | ✅ | 节点状态（ACTIVE/PENDING 等） |
| ApprovalNodeInstance | startTime | DateTime | ✅ | 节点开始时间 |

### 关系与约束

| 关系/约束 | 说明 |
|-----------|------|
| FormInstance.approvalInstanceId -> ApprovalInstance.id | 表单实例关联审批实例 |
| ApprovalInstance.id -> ApprovalNodeInstance.instanceId | 审批实例关联当前节点 |
| FormInstance.formDefinitionId -> FormDefinition.id | 表单实例关联表单定义 |
| FormInstance.submittedBy -> User.id | 表单提交人 |

---

## 🧭 人类阅读区（可选）

### 说明
- 管理员数据中心主要读取 `platform_form.form_instances` 与 `corp_approval.approval_instances`。
- 当前节点信息来源于 `corp_approval.approval_node_instances` 的 ACTIVE/PENDING 节点。
- `approvalRequired` 口径：基于表单定义的 `requiresApproval` 配置（区分需要审批/自动完成表单）。
