更新日期:2026-07-30
当前契约基线:DMS_FUNCTION_CONTRACT.md1.2、DMS_API_CONTRACT.md1.2
当前 OpenAPI 版本:1.2.0
文档用途:统一记录当前完成范围、未完成事项、风险、验收条件和建议执行顺序。
项目已经完成第一阶段核心业务系统的前后端框架、MySQL 持久化、文件存储、认证鉴权、审计、统计、回收站和大部分真实业务闭环。
从代码和自动化测试角度看,第一阶段核心功能已经基本完成;从正式交付角度看,仍有以下关键事项需要关闭:
dms 主库从迁移 0001_initial_schema 升级至 0002_add_restore_audit_action,验证三类文档恢复;因此,当前状态可概括为:
/api/v1 基础路径;requestId 解析;sessionStorage 与 localStorage 两种登录保持策略;AbortController、防抖和请求版本号避免旧响应覆盖;/api/v1 业务接口框架;X-Request-Id;auth_version 旧 Token 失效机制;backend/dms-storage/;backend/dms-test-storage/;已实现:
allowedModules,前端据此展示导航。当前角色边界:
| 角色 | 当前入口和能力 |
|---|---|
ADMIN |
文档浏览、后台管理;管理分类、方案、附件、挂载和权限 |
AUDITOR |
日志审计和审计统计;默认不能管理文档 |
USER |
浏览有权访问的已发布方案;查看、下载共享附件 |
已实现:
当前系统只提供组织和人员只读查询,用户、组织的完整增删改管理不在第一阶段范围内。
已实现:
rowVersion 乐观锁;前端已实现分类层级下拉展示:
categoryId,不提交路径和中文标签。已实现:
已实现:
共享附件当前固定规则:
documentType = ATTACHMENTsecurityLevel = PUBLICvisibilityType = ALL_AUTHENTICATED已实现:
挂载只建立引用,不复制文件;解除挂载也不会删除附件或影响其他主案。
已实现:
ALL_AUTHENTICATED、ORGANIZATION、CUSTOM 三种可见范围;VIEW、DOWNLOAD、EDIT、DELETE、CONFIG_PERMISSION 五类动作;rowVersion 乐观锁;当前为固定三角色加文档 ACL 的最小权限模型,不是完整动态 RBAC 平台。
已实现:
415 PREVIEW_UNAVAILABLE;Content-Disposition filename* 中文文件名;Content-Disposition 和 X-Request-Id;当前出现“当前文件类型暂不支持在线预览”是已定义行为,不是接口故障。若要在线预览 Office 文件,需要新增服务端 Office 转 PDF 能力。
已实现:
已实现:
RESTORE_DOCUMENT 审计;rowVersion 乐观锁;对应数据库迁移为:
0002_add_restore_audit_action
该迁移扩展恢复审计动作约束,并增加回收站查询索引。
后端 Q1-B 已完成:
GET /api/v1/config/ui-dictionaries;前端 Q1-F 已完成:
Q1-R1 已恢复三个标准测试账号密码,Q1-F-R1 已使用真实账号完成登录、刷新恢复、退出、旧 Token 失效、字典加载、分类层级和英文 code 提交验证。Q1-V 独立验收结论为通过,未使用人工签发 JWT。
正式 OpenAPI 当前共定义 31 条 /api/v1 路径,覆盖:
契约优先级为:
DMS_FUNCTION_CONTRACT.md;DMS_API_CONTRACT.md;FUNCTION_AND_API_SPECIFICATION.md;CODEX_BACKEND_PERSISTENCE_GUIDE.md;后续功能如果改变正式业务语义,应先升级契约,再修改 OpenAPI 和代码。
各阶段已经持续执行:
最近阶段报告结果:
| 验证项 | 最近报告结果 |
|---|---|
| Q1-B 后端完整回归 | 337 passed |
| Q1-B 无测试环境变量 | 79 passed, 258 skipped |
| Q1-F 前端测试 | 40 个测试文件,226 项通过 |
| Q1-F 类型检查 | 通过 |
| Q1-F 构建 | 通过 |
| Python compileall | 通过 |
注意:
Q1 验收时使用的前端 9346 和后端 8755 均已完成真实浏览器验证。2026-07-30 工程整理时未发现上述端口仍有监听进程,后续点测应按部署或开发启动说明重新启动服务。
不得把当前临时启动参数直接作为生产部署配置。
执行顺序:
dms_test 中恢复已存在的 admin、auditor、user 测试密码;完成标准:
完成结果:Q1-R1-A、Q1-F-R1 和 Q1-V 均已通过,本项不再阻塞后续工作。
集成审查已经发现 dms 主库仍为 0001_initial_schema。这会导致正式主库不能写入 RESTORE_DOCUMENT 审计,并缺少回收站索引。
执行要求:
dms;0002_add_restore_audit_action;RESTORE_DOCUMENT;该工作涉及正式主库写操作,必须在备份和明确授权后执行。
需要形成可重复部署配置,至少包括:
DMS_DATABASE_URLDMS_JWT_SECRETDMS_STORAGE_ROOTDMS_UI_DICTIONARY_CONFIG_PATHDMS_MAX_FILE_SIZEDMS_MAX_UPLOAD_SIZEDMS_BATCH_MAX_FILESDMS_BUSINESS_TIMEZONEVITE_API_BASE_URL要求:
当前前后端、契约、迁移和测试存在大量未提交或未跟踪文件。
需要:
.gitignore;当前只有 PDF 可以在线预览。DOC、DOCX、XLS、XLSX 返回 415 是正式契约规定的当前行为。
如需要在线预览,建议采用:
原始 Office 文件
→ 服务端转换服务
→ 生成受控 PDF 派生文件
→ 浏览器使用现有 PDF 预览器展示
建议要求:
requestId;该功能会改变正式预览语义,建议:
当前系统的固定三角色和文档 ACL 可以支持现阶段业务,但不是最终统一身份权限平台。
建议在接入外部系统前明确:
ADMIN、AUDITOR、USER 的映射;allowedModules 的来源;建议保留当前英文 code 作为稳定协议值,中文仅作为展示字典。这样可以降低外部系统接入和项目迁移成本。
完成 P0 项后,由会话4执行一次固定基线验收:
当前 App.tsx 仍有较多历史模拟数据和旧页面实现,构建存在大包警告。
建议在核心验收稳定后:
工业部门实际使用前建议补充:
建议在固定测试环境补充:
| 顺序 | 工作 | 建议负责会话 | 是否阻塞正式交付 |
|---|---|---|---|
| 1 | 备份并升级 dms 主库至 0002 |
会话3,统领授权 | 是 |
| 2 | 三类文档正式恢复冒烟 | 会话3 + 会话4 | 是 |
| 3 | 固化安全运行配置和部署说明 | 会话3 | 是 |
| 4 | 建立 Git 稳定基线 | 统领会话协调 | 是 |
| 5 | Office 预览契约 1.3 设计 | 统领 + 会话3 | 否,当前暂缓 |
| 6 | Office 预览前端接入 | 会话2 | 否,当前暂缓 |
| 7 | 清理模拟代码和前端分包 | 会话2 | 否 |
| 8 | 外部身份权限系统对接设计 | 统领会话 | 否,需外部条件 |
| 9 | 国产化适配验证 | 专项阶段 | 否,当前暂缓 |
只有同时满足以下条件,才建议宣布第一阶段正式交付:
dms_test 全量测试通过;dms 正式主库升级至 0002;Office 文档在线预览、Milvus、审批、电子签章和国产化适配不属于当前第一阶段最终验收的必选条件,除非统领会话后续正式调整范围。
综合判断:
建议先关闭第 8 节的 P0 工作,再决定是否立即进入 Office 在线预览或外部统一身份权限系统对接。