Files
yidaima/RuoYi-Vue/docs/superpowers/plans/2026-07-11-project-delivery-readiness-gate.md

2.5 KiB
Raw Permalink Blame History

项目交付验收摘要与下载门禁 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: 固定交付状态契约

  • 添加服务失败测试,覆盖认证通过、预览失败、数据库同步草稿和无源码拒绝。
  • 添加 Mapper、Controller 与前端契约失败测试。
  • 运行测试确认 RED。

Task 2: 后端交付摘要与门禁

  • 新增最近源码任务 Mapper 查询。
  • 新增 ProjectDeliveryReadiness DTO 与服务。
  • 新增交付摘要 API。
  • 下载接口增加 DRAFT / CERTIFIED 服务端门禁与响应头。

Task 3: 前端交付验收体验

  • 新增交付摘要 API 客户端和验收组件。
  • 一键生成工作台加载并刷新交付摘要。
  • 根据门禁状态请求草稿或认证产物。
  • 项目列表、个人中心和源码预览明确标记草稿下载。

Task 4: 文档与回归

  • 更新路线图 P1-K 完成记录。
  • 执行后端聚焦测试和管理端全量测试。
  • 执行 EasyCode 主流程测试和生产构建。
  • 解析 Mapper、检查差异与开发服务。

Implementation Result

  • 后端新增交付就绪度计算、四项检查摘要和 DRAFT / CERTIFIED 下载门禁;项目修改后的旧证据不会继续生效。
  • 阶段账本非空时只接受最新尝试的 RUN_PREVIEW,不会回退旧结果;一键任务本身也必须为 SUCCEEDED 才能认证。
  • 一键生成工作台根据服务端状态显示“下载验收源码”或“下载源码草稿”,旧下载入口统一显式请求草稿产物。
  • 单独重启运行预览不冒充持久化验收证据;预览失败后会提示重新执行一键生成并建立新的证据。
  • P1-J/P1-K 后端聚焦测试 32 项、ruoyi-admin 42 项、EasyCode 主流程 73 项全部通过EasyCode 生产构建和 Mapper XML 解析通过。