feat: add document versioning and list API
This commit is contained in:
@@ -4,6 +4,10 @@
|
||||
|
||||
## 一、目标架构
|
||||
|
||||
补充文档:
|
||||
|
||||
- 并发与重试参数:`docs/leaudit/并发与重试参数说明.md`
|
||||
|
||||
```
|
||||
┌─ API ───────────────────────────────────────────────────────────┐
|
||||
│ AuditController (/audit) RuleController (/rule-sets) │
|
||||
@@ -166,11 +170,11 @@ finalize_run() ← 唯一写 result_status / finished_at / rescue_
|
||||
POST /upload (multipart/form-data)
|
||||
file
|
||||
typeId / typeCode
|
||||
bizDocumentId?
|
||||
region=default
|
||||
fileRole=primary
|
||||
createdBy?
|
||||
autoRun=false
|
||||
speed=normal|urgent
|
||||
```
|
||||
|
||||
执行链:
|
||||
@@ -178,7 +182,7 @@ POST /upload (multipart/form-data)
|
||||
```text
|
||||
Upload
|
||||
-> DocumentServiceImpl.Upload()
|
||||
-> upsert leaudit_documents
|
||||
-> create leaudit_documents
|
||||
-> 旧 active 文件失效
|
||||
-> 上传原始文件到 OSS:
|
||||
bdocs/{region}/{type_code}/{document_id}/v{n}/{file_role}.{ext}
|
||||
@@ -186,6 +190,14 @@ Upload
|
||||
-> autoRun=true 时直接调用 AuditServiceImpl.Run()
|
||||
```
|
||||
|
||||
说明:
|
||||
|
||||
- `leaudit_documents` 现阶段是平台内部文档主表,不再依赖旧系统 `documents.id`
|
||||
- 每次前端上传都会新建一条 `leaudit_documents`
|
||||
- `speed`
|
||||
- `normal` -> `leaudit.normal`
|
||||
- `urgent` -> `leaudit.urgent`
|
||||
|
||||
## 四点六、最新补充:结果查询视图
|
||||
|
||||
当前 `GetRunStatus()` / `GetResult()` 已不再只返回 run 主表摘要。
|
||||
@@ -204,6 +216,14 @@ Upload
|
||||
- `leaudit_run_metrics`
|
||||
- `leaudit_artifacts`
|
||||
|
||||
建议联调方式:
|
||||
|
||||
- 上传后从 `run.runId` 轮询 `GET /audit/run/{runId}`
|
||||
- 完成后调用 `GET /audit/result/{runId}`
|
||||
- worker 日志里会明确打印:
|
||||
- 已投递到哪个队列
|
||||
- worker 实际消费的是 `urgent` 还是 `normal`
|
||||
|
||||
## 四点七、关键关系图:DocumentType -> Binding -> RuleSet -> RuleVersion
|
||||
|
||||
这一段是当前规则执行链里最关键的一层路由关系。
|
||||
|
||||
@@ -52,7 +52,7 @@ LeAudit 有一套自己的 SQLAlchemy ORM 表(`storage/models/`)。**leaudit
|
||||
|
||||
| # | 表名 | 用途 | 状态 |
|
||||
|---|------|------|------|
|
||||
| 1 | `leaudit_documents` | LeAudit 域文档镜像,关联业务文档 | ✅ 已创建 |
|
||||
| 1 | `leaudit_documents` | LeAudit 平台内部文档主表 | ✅ 已创建 |
|
||||
| 2 | `leaudit_document_files` | 文档文件版本管理 | ✅ 已创建 |
|
||||
| 3 | `leaudit_audit_runs` | 每次处理执行的主索引记录 | ✅ 已创建 |
|
||||
| 4 | `leaudit_artifacts` | OCR/normalize/manifest/markdown/图片等文件产物索引 | ✅ 已创建 |
|
||||
@@ -79,12 +79,12 @@ LeAudit 有一套自己的 SQLAlchemy ORM 表(`storage/models/`)。**leaudit
|
||||
|
||||
### 4.1 `leaudit_documents`
|
||||
|
||||
LeAudit 域文档镜像表。通过 `biz_document_id` 关联老系统 `documents.id`。
|
||||
LeAudit 平台内部文档主表。当前不再依赖旧系统文档表。
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
| --- | --- | --- |
|
||||
| `id` | bigint PK | 主键,自增 |
|
||||
| `biz_document_id` | bigint UNIQUE | 关联老业务 `documents.id` |
|
||||
| `biz_document_id` | bigint UNIQUE | 内部追踪号,沿用旧字段名以兼容历史库 |
|
||||
| `type_id` | bigint | 文档类型 ID → `leaudit_document_types.id` |
|
||||
| `processing_status` | varchar(64) | waiting / running / completed / failed |
|
||||
| `current_run_id` | bigint | 最新有效 `leaudit_audit_runs.id` |
|
||||
@@ -179,7 +179,7 @@ LeAudit 域文档镜像表。通过 `biz_document_id` 关联老系统 `documents
|
||||
```text
|
||||
leaudit_entry_modules
|
||||
└── leaudit_document_types
|
||||
├── leaudit_documents ── biz_document_id → 老系统 documents
|
||||
├── leaudit_documents
|
||||
│ ├── leaudit_document_files
|
||||
│ └── leaudit_audit_runs
|
||||
│ ├── leaudit_artifacts (N)
|
||||
@@ -214,6 +214,7 @@ artifacts/{region}/{run_id}/{artifact_type}/{detail}.{ext}
|
||||
## 9. 最终结论
|
||||
|
||||
- 所有表 `leaudit_*` 前缀,与老系统完全隔离
|
||||
- `leaudit_documents` 现阶段是平台内部文档主表,不再要求外部 `documents.id`
|
||||
- `leaudit_audit_runs` 是每次处理的唯一追踪单位
|
||||
- `leaudit_artifacts` 统一管理所有文件产物,数据库只存索引
|
||||
- `leaudit_rule_results` 粒度到逐条规则,结构与 LeAudit `RuleResult` 对齐
|
||||
|
||||
Reference in New Issue
Block a user