完善附件管理与生成任务跟踪

This commit is contained in:
zwt13703
2026-07-02 18:26:50 +08:00
parent d3530ab0b7
commit 401e8cf57b
16 changed files with 873 additions and 203 deletions
+52
View File
@@ -156,3 +156,55 @@
3. 优化上传接口错误提示,返回实际不支持的扩展名和当前支持列表。
4. 同步更新模板测试弹窗中的上传提示文案,并执行后端语法检查与前端类型检查。
- **执行结果**: 当前参考文件上传支持范围更完整,遇到不支持的文件类型时也会直接显示具体后缀和支持列表,便于快速判断问题。
## 会话 ID: local-20260702173843
- [2026-07-02 17:38:43]
- **执行原因**: 用户要求先提交当前代码,并继续修复参考文件原名称丢失问题,同时核实 `.doc`、Excel、PDF 的内容提取能力。
- **执行过程**:
1. 提交当前阶段代码,提交信息为“完善模型测试与参考文件历史能力”,保持工作区清晰。
2. 修正参考文件摘要逻辑,优先从 `reference_files` 历史记录中读取原始文件名,不再把 MinIO 中的 UUID 文件名传给 AI。
3.`.doc` 文件接入 macOS `textutil` 文本提取能力,补齐旧版 Word 文档正文解析。
4. 修正 Excel 提取分支,确保 `.xlsm``.xlsx` 走正确读取方式;保留现有 PDF 文本提取逻辑。
5. 执行后端语法检查与前端类型检查,确认本轮改动稳定。
- **执行结果**: 当前参考文件在提交给 AI 时会保留用户原始文件名;`.doc``.docx`、Excel、PDF 等常见文件均可进入提取链路,其中 Excel 和 PDF 原本已支持,本轮补强了 `.doc``.xlsm`
## 会话 ID: local-20260702175543
- [2026-07-02 17:55:43]
- **执行原因**: 用户提出系统缺少单独的附件历史菜单,希望可以直接查看已经上传过的文件。
- **执行过程**:
1. 新增前端附件历史页面,展示参考文件总数、当前页数量、文件名、对象路径、类型、大小和上传时间。
2. 将页面接入现有 `reference-files` 接口,支持按文件名搜索和分页查看。
3. 在顶部导航中新增“附件历史”菜单入口,并补充路由配置。
4. 执行前端类型检查,确认本轮改动稳定。
- **执行结果**: 当前系统已新增独立的“附件历史”菜单,用户可直接查看和检索已上传的参考文件记录。
## 会话 ID: local-20260702181456
- [2026-07-02 18:14:56]
- **执行原因**: 用户希望附件历史支持下载、改名、查看与删除,同时要求生成页面支持多文件和文件说明,并让生成任务脱离当前页面、在记录页可持续查看状态与附件映射。
- **执行过程**:
1. 扩展参考附件接口,新增附件下载、改名、删除能力,并在附件历史页补齐对应操作按钮。
2. 为生成任务数据模型新增请求快照字段,在提交任务时持久化保存模板名、段落文件说明以及每个段落选中的附件列表。
3. 调整正式生成运行时,让每个段落在后台生成时真正读取该段落绑定的多文件内容,并把原始文件名传给 AI。
4. 重写执行生成页,展示每个段落的文件说明,支持多文件上传与移除,并将页面改为“提交任务后立即转到任务详情”模式,不再绑死在提交页。
5. 重写任务详情页,支持查看任务状态、实时进度、段落与附件映射、已完成段落内容,以及在运行中取消任务。
6. 执行后端语法检查与前端类型检查,确认本轮改动稳定。
- **执行结果**: 当前附件历史已支持基础管理;生成任务提交后会在后台继续执行,用户可离开提交页并在任务详情中持续查看状态、段落附件映射与生成结果。
## 会话 ID: local-20260702182202
- [2026-07-02 18:22:02]
- **执行原因**: 用户反馈 MySQL 启动时报 `TEXT` 列不能设置默认值,需要修复 `request_payload_json` 字段的数据库兼容性。
- **执行过程**:
1. 调整 `documents.request_payload_json` 的模型定义,取消 `TEXT` 列默认值,改为允许空值并由代码层负责兜底。
2. 修正数据库初始化与自动补列逻辑,避免执行 `ALTER TABLE ... TEXT DEFAULT '{}'` 这一类 MySQL 非法 SQL。
3. 同步更新 `init.sql``documents` 表定义,去掉 `request_payload_json` 的默认值。
4. 执行后端语法检查,确认修复稳定。
- **执行结果**: 当前 `request_payload_json` 字段已兼容 MySQL,应用启动时不会再因为 `TEXT DEFAULT` 语句失败。
## 会话 ID: local-20260702182417
- [2026-07-02 18:24:17]
- **执行原因**: 用户反馈提交生成任务时报 `Object of type datetime is not JSON serializable`,需要修复任务快照里的附件时间字段序列化。
- **执行过程**:
1. 检查生成任务快照构建逻辑,确认报错来源于附件记录中的 `created_at``datetime` 对象。
2. 调整参考附件序列化方法,将 `created_at` 统一转为 ISO 字符串后再写入任务快照 JSON。
3. 执行后端语法检查,确认修复稳定。
- **执行结果**: 当前生成任务提交时不会再因为附件记录中的 `datetime` 字段导致 JSON 序列化失败。