# 项目交付验收摘要与下载门禁 Implementation Plan **Goal:** 区分源码草稿和基础验收产物,让认证下载只能来自可追溯且运行预览通过的生成结果。 **Architecture:** 新增只读 `ProjectDeliveryReadinessService`,从项目、最近源码任务、阶段账本和 Generation Run 计算状态;公开下载控制器按产物类型执行门禁,底层生成和运行预览打包保持不变。 **Tech Stack:** Java 8、Spring MVC、MyBatis、JUnit 4、Vue 3、Element Plus、Node test runner、Vite。 ## Constraints - 不新增数据库表或迁移。 - 不把 BASELINE 描述为完整生产质量认证。 - 草稿与认证产物必须使用不同请求类型。 - 不触碰明文开发凭据和 TLS 配置。 ### Task 1: 固定交付状态契约 - [x] 添加服务失败测试,覆盖认证通过、预览失败、数据库同步草稿和无源码拒绝。 - [x] 添加 Mapper、Controller 与前端契约失败测试。 - [x] 运行测试确认 RED。 ### Task 2: 后端交付摘要与门禁 - [x] 新增最近源码任务 Mapper 查询。 - [x] 新增 `ProjectDeliveryReadiness` DTO 与服务。 - [x] 新增交付摘要 API。 - [x] 下载接口增加 `DRAFT` / `CERTIFIED` 服务端门禁与响应头。 ### Task 3: 前端交付验收体验 - [x] 新增交付摘要 API 客户端和验收组件。 - [x] 一键生成工作台加载并刷新交付摘要。 - [x] 根据门禁状态请求草稿或认证产物。 - [x] 项目列表、个人中心和源码预览明确标记草稿下载。 ### Task 4: 文档与回归 - [x] 更新路线图 P1-K 完成记录。 - [x] 执行后端聚焦测试和管理端全量测试。 - [x] 执行 EasyCode 主流程测试和生产构建。 - [x] 解析 Mapper、检查差异与开发服务。 ## Implementation Result - 后端新增交付就绪度计算、四项检查摘要和 `DRAFT` / `CERTIFIED` 下载门禁;项目修改后的旧证据不会继续生效。 - 阶段账本非空时只接受最新尝试的 `RUN_PREVIEW`,不会回退旧结果;一键任务本身也必须为 `SUCCEEDED` 才能认证。 - 一键生成工作台根据服务端状态显示“下载验收源码”或“下载源码草稿”,旧下载入口统一显式请求草稿产物。 - 单独重启运行预览不冒充持久化验收证据;预览失败后会提示重新执行一键生成并建立新的证据。 - P1-J/P1-K 后端聚焦测试 32 项、`ruoyi-admin` 42 项、EasyCode 主流程 73 项全部通过,EasyCode 生产构建和 Mapper XML 解析通过。