ソースを参照

docs: 更新进度报告(模板系统 v2.0 数据模型重构完成)

何文松 1 ヶ月 前
コミット
2a61728f08
1 ファイル変更122 行追加59 行削除
  1. 122 59
      进度报告.md

+ 122 - 59
进度报告.md

@@ -1,6 +1,6 @@
 # 📊 灵越智报 2.0 - 当前进度总结
 
-**整体进度:80%**  |  **报告日期:2026-01-22**
+**整体进度:82%**  |  **报告日期:2026-01-23**
 
 ---
 
@@ -21,22 +21,43 @@
 - 📦 **数据源管理** → ✅ 已完成(CRUD + 取值 + 聚合)
 - ⏱️ **任务中心** → ✅ 已完成(多阶段进度跟踪)
 
-### 新增功能(2026-01-22 晚)✅ 数据提取规则系统 - 阶段一、二
+### 新增功能(2026-01-23)✅ 模板系统 v2.0 数据模型重构
+
+- ✅ **设计理念升级**
+  - 从「规则配置驱动」改为「示例文档驱动」
+  - 用户上传完整报告 → 标记变量 → 保存为模板 → 生成新报告
+  
+- ✅ **数据库重构**
+  - 新增 `all_tables.sql` 完整数据库表结构(21张表)
+  - 新增 `template_tables.sql` 模板系统专用表
+  - `rebuild_all.sh` 增加 `--simple` 模式(单文件初始化)
+  
+- ✅ **新实体类(4个)**
+  - `Template` - 报告模板(替代 Project)
+  - `SourceFile` - 来源文件定义(用别名标识)
+  - `Variable` - 模板变量(绑定到文档位置)
+  - `Generation` - 生成任务
+  
+- ✅ **新 Repository(4个)**
+  - `TemplateRepository`, `SourceFileRepository`, `VariableRepository`, `GenerationRepository`
+  
+- ✅ **新 DTO 类**
+  - `VariableLocation` - 变量在文档中的位置
+  - `ReferenceSourceConfig` - 引用来源配置
+
+### 新增功能(2026-01-22 晚)✅ 数据提取规则系统 - 阶段一、二(已重构)
 
 - ✅ **第一阶段:基础设施搭建**
   - Maven 模块 `extract-service` 框架搭建完成
   - 启动类 `ExtractServiceApplication.java`
   - 配置文件 `application.properties`(端口 8086)
   - 健康检查接口 `/api/v1/extract/health`
-  - 数据库表(5张核心表):`extract_projects`, `extract_source_documents`, `extract_rules`, `extract_results`, `extract_rule_templates`
+  - ~~数据库表(5张核心表)~~ → 已重构为模板系统 v2.0
   - 集成配置:父 pom.xml、lingyue-starter 依赖
 
-- ✅ **第二阶段:核心实体与 Repository 层**
-  - 实体类(5个):`Project`, `SourceDocument`, `ExtractRule`, `ExtractResult`, `RuleTemplate`
-  - Repository 接口(5个):完整 CRUD + 自定义查询方法
-  - 配置 DTO 类(10个):
-    - 来源配置:`LocationConfig`, `TransformConfig`, `DocumentSourceConfig`, `SelfReferenceSourceConfig`, `FixedSourceConfig`, `ManualSourceConfig`
-    - 提取配置:`DirectExtractConfig`, `AIExtractConfig`, `AISummarizeConfig`, `OcrExtractConfig`
+- ✅ **第二阶段:核心实体与 Repository 层**(已重构为 v2.0)
+  - ~~实体类(5个):Project, SourceDocument, ExtractRule...~~ 
+  - → 新实体:Template, SourceFile, Variable, Generation
 
 ### 新增功能(2026-01-22 下午)✅ 补充缺失接口
 
@@ -187,54 +208,67 @@
 
 ---
 
-## 📋 下一步计划:模板系统(Week 4)
+## 📋 下一步计划:模板系统 v2.0(Week 4-5
 
-**计划周期:2026-01-23 ~ 2026-01-27**
+**计划周期:2026-01-23 ~ 2026-01-31**
 
-**目标:实现模板系统基础功能**(设计文档 2.6)
+**目标:完成「示例文档驱动」的模板生成系统**
 
-### 1. 数据源管理 ✅ 已完成
+### 1. 数据模型重构 ✅ 已完成
 
-- [x] 数据源创建接口
-- [x] 数据源绑定节点(支持 GraphNode + DocumentElement
-- [x] 数据源查询接口(按ID/文档/用户/类型
-- [x] 数据源取值接口(支持聚合:first/last/concat/sum/avg/list)
-- [x] 数据源批量取值(用于模板渲染)
+- [x] 数据库表重构(templates, source_files, variables, generations)
+- [x] 实体类创建(Template, SourceFile, Variable, Generation
+- [x] Repository 接口(4个
+- [x] all_tables.sql 完整表结构
+- [x] rebuild_all.sh --simple 模式
 
-### 2. 模板系统基础(下一步重点)
+### 2. 模板管理(下一步重点)
+
+**核心用户流程:**
+1. 用户上传示例报告(Word 文档)
+2. 在报告中选中文本,标记为"变量"
+3. 为每个变量配置数据来源(从哪个来源文件提取)
+4. 保存为模板
+
+**待实现 API:**
+
+| 接口 | 方法 | 说明 | 状态 |
+|------|------|------|------|
+| `/api/v1/templates` | POST | 创建模板 | ⏳ |
+| `/api/v1/templates/{id}` | GET | 获取模板详情 | ⏳ |
+| `/api/v1/templates` | GET | 模板列表 | ⏳ |
+| `/api/v1/templates/{id}` | PUT | 更新模板 | ⏳ |
+| `/api/v1/templates/{id}/publish` | POST | 发布模板 | ⏳ |
+| `/api/v1/templates/{id}/source-files` | POST | 添加来源文件定义 | ⏳ |
+| `/api/v1/templates/{id}/variables` | POST | 添加变量 | ⏳ |
 
-根据设计文档 2.6.1:
-> 模板是对应输出的占位符结构,占位符绑定到数据源编号
+### 3. 报告生成
 
-**实施任务:**
-- [ ] 模板创建接口(Template 实体,占位符解析)
-- [ ] 占位符绑定数据源(placeholder_mapping JSONB 存储)
-- [ ] 模板渲染接口(占位符替换,调用数据源批量取值)
-- [ ] 模板复制功能(基于已有模板复制)
+**核心用户流程:**
+1. 选择模板
+2. 上传新的来源文件(按模板定义的别名)
+3. 系统自动提取变量值
+4. 用户确认/修改提取结果
+5. 生成新报告
 
-### 3. 已实现的数据源 API
+**待实现 API:**
 
 | 接口 | 方法 | 说明 | 状态 |
 |------|------|------|------|
-| `/api/v1/datasource` | POST | 创建数据源 | ✅ |
-| `/api/v1/datasource/{id}` | GET | 获取数据源 | ✅ |
-| `/api/v1/datasource/document/{documentId}` | GET | 按文档查询 | ✅ |
-| `/api/v1/datasource/user/{userId}` | GET | 按用户查询 | ✅ |
-| `/api/v1/datasource/{id}` | PUT | 更新数据源 | ✅ |
-| `/api/v1/datasource/{id}/refs` | PUT | 更新绑定节点 | ✅ |
-| `/api/v1/datasource/{id}` | DELETE | 删除数据源 | ✅ |
-| `/api/v1/datasource/{id}/value` | GET | 获取数据源值 | ✅ |
-| `/api/v1/datasource/batch-value` | POST | 批量获取值 | ✅ |
+| `/api/v1/generations` | POST | 创建生成任务 | ⏳ |
+| `/api/v1/generations/{id}` | GET | 获取生成任务详情 | ⏳ |
+| `/api/v1/generations/{id}/extract` | POST | 执行变量提取 | ⏳ |
+| `/api/v1/generations/{id}/confirm` | POST | 确认提取结果 | ⏳ |
+| `/api/v1/generations/{id}/generate` | POST | 生成最终报告 | ⏳ |
 
-### 4. 待实现的模板 API
+### 4. 已实现的数据源 API(保留)
 
 | 接口 | 方法 | 说明 | 状态 |
 |------|------|------|------|
-| `/api/v1/template` | POST | 创建模板 | ⏳ |
-| `/api/v1/template/{id}` | GET | 获取模板 | ⏳ |
-| `/api/v1/template/{id}/mapping` | PUT | 更新占位符映射 | ⏳ |
-| `/api/v1/template/{id}/render` | POST | 渲染模板 | ⏳ |
-| `/api/v1/template/{id}/copy` | POST | 复制模板 | ⏳ |
+| `/api/v1/datasource` | POST | 创建数据源 | ✅ |
+| `/api/v1/datasource/{id}` | GET | 获取数据源 | ✅ |
+| `/api/v1/datasource/{id}/value` | GET | 获取数据源值 | ✅ |
+| `/api/v1/datasource/batch-value` | POST | 批量获取值 | ✅ |
 
 ---
 
@@ -264,11 +298,17 @@ backend/
 ├── ai-service/             # AI服务
 ├── graph-service/          # 图谱服务(RAG、NER、图数据库)
 │   └── neo4j/              # Neo4j 集成服务
+├── extract-service/        # 模板系统服务(v2.0)
+│   ├── entity/             # Template, SourceFile, Variable, Generation
+│   ├── repository/         # 4个 Repository
+│   └── dto/config/         # VariableLocation, ReferenceSourceConfig
 ├── notification-service/   # 通知服务
 ├── gateway-service/        # 网关服务
 ├── lingyue-starter/        # 单体应用启动器
 └── sql/                    # 数据库脚本
-    ├── rebuild_all.sh      # 完整重建脚本
+    ├── rebuild_all.sh      # 完整重建脚本(支持 --simple)
+    ├── all_tables.sql      # 完整表结构(21张表)
+    ├── template_tables.sql # 模板系统表(v2.0)
     ├── init.sql            # 基础表
     ├── graph_tables.sql    # 图谱表
     ├── supplement_tables.sql # 补充表
@@ -412,26 +452,49 @@ database/
 
 ---
 
-## 🗄️ 数据库表清单
+## 🗄️ 数据库表清单(21张)
 
+### 基础模块
 | 表名 | 说明 | 状态 |
 |------|------|------|
 | `users` | 用户表 | ✅ |
 | `documents` | 文档表 | ✅ |
-| `document_elements` | 文档结构化元素 | ✅ |
-| `document_blocks` | 文档块(TextElement)| ✅ |
-| `document_entities` | 文档实体 | ✅ |
-| `graph_nodes` | 图节点 | ✅ |
+| `elements` | 要素表 | ✅ |
+| `annotations` | 批注表 | ✅ |
+| `graphs` | 关系网络表 | ✅ |
+| `parse_tasks` | 解析任务(多阶段进度)| ✅ |
+| `sessions` | 会话表 | ✅ |
+
+### 图谱模块
+| 表名 | 说明 | 状态 |
+|------|------|------|
+| `graph_nodes` | 图节点(NER实体)| ✅ |
 | `graph_relations` | 图关系 | ✅ |
-| `text_chunks` | 文本分块 | ✅ |
-| `vector_embeddings` | 向量嵌入 | ✅ |
+
+### 补充模块
+| 表名 | 说明 | 状态 |
+|------|------|------|
+| `rules` | 规则表 | ✅ |
+| `data_sources` | 数据源表 | ✅ |
 | `text_storage` | 文本存储 | ✅ |
-| `parse_tasks` | 解析任务 | ✅ |
-| `rules` | 规则表 | ✅(结构)|
-| `templates` | 模板表 | ✅(结构)|
-| `data_sources` | 数据源表 | ✅(结构)|
-| `extract_projects` | 提取项目表 | ✅ |
-| `extract_source_documents` | 来源文档表 | ✅ |
-| `extract_rules` | 提取规则表 | ✅ |
-| `extract_results` | 提取结果表 | ✅ |
-| `extract_rule_templates` | 规则模板表 | ✅ |
+
+### RAG 模块
+| 表名 | 说明 | 状态 |
+|------|------|------|
+| `text_chunks` | 文本分块 | ✅ |
+| `vector_embeddings` | 向量嵌入(pgvector)| ✅ |
+
+### 文档结构化模块
+| 表名 | 说明 | 状态 |
+|------|------|------|
+| `document_blocks` | 文档块(TextElement)| ✅ |
+| `document_entities` | 文档实体标注 | ✅ |
+| `document_elements` | 文档结构化元素 | ✅ |
+
+### 模板系统 v2.0(新增)
+| 表名 | 说明 | 状态 |
+|------|------|------|
+| `templates` | 报告模板 | ✅ |
+| `source_files` | 来源文件定义 | ✅ |
+| `variables` | 模板变量 | ✅ |
+| `generations` | 生成任务 | ✅ |