201 lines
7.2 KiB
Markdown
201 lines
7.2 KiB
Markdown
|
|
# Project List Reanalyze Confirm Refresh Backend Implementation Plan
|
|||
|
|
|
|||
|
|
> **For agentic workers:** REQUIRED: Use superpowers:subagent-driven-development (if subagents available) or superpowers:executing-plans to implement this plan. Steps use checkbox (`- [ ]`) syntax for tracking.
|
|||
|
|
|
|||
|
|
**Goal:** 确认“项目列表重新分析增加确认弹窗并成功后刷新列表”这一需求无需后端源码改造,只复用现有项目标签重算与风险人数刷新链路,并留下验证与实施记录。
|
|||
|
|
|
|||
|
|
**Architecture:** 本轮需求发生在前端页面交互层,后端只需要继续提供现有 `/ccdi/project/tags/rebuild` 提交能力,以及重算完成后的既有结果刷新链路。实施上不新增 controller、service、mapper 或 SQL,而是聚焦现有接口边界核对、关键单测回归和文档留痕,避免误把纯前端需求扩展成后端补丁工程。
|
|||
|
|
|
|||
|
|
**Tech Stack:** Java 21, Spring Boot 3, JUnit 5, Maven, ripgrep, Markdown 文档
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## 文件结构与职责
|
|||
|
|
|
|||
|
|
**新增文件**
|
|||
|
|
|
|||
|
|
- `docs/tests/records/2026-03-27-project-list-reanalyze-confirm-refresh-backend-verification.md`
|
|||
|
|
记录本次后端边界核对、执行命令与回归结果。
|
|||
|
|
- `docs/reports/implementation/2026-03-27-project-list-reanalyze-confirm-refresh-backend-record.md`
|
|||
|
|
沉淀“后端无需改造”的实施结论与影响范围。
|
|||
|
|
|
|||
|
|
**核对文件**
|
|||
|
|
|
|||
|
|
- `ccdi-project/src/main/java/com/ruoyi/ccdi/project/controller/CcdiBankTagController.java`
|
|||
|
|
确认 `/ccdi/project/tags/rebuild` 入口继续复用。
|
|||
|
|
- `ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/CcdiBankTagServiceImpl.java`
|
|||
|
|
确认手动重算后仍会触发结果刷新。
|
|||
|
|
- `ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/ProjectBankTagRebuildCoordinator.java`
|
|||
|
|
确认同一项目重复提交保护仍由后端承接。
|
|||
|
|
- `ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/ICcdiProjectOverviewService.java`
|
|||
|
|
确认风险人数刷新能力继续存在。
|
|||
|
|
|
|||
|
|
**回归测试**
|
|||
|
|
|
|||
|
|
- `ccdi-project/src/test/java/com/ruoyi/ccdi/project/service/impl/ProjectBankTagRebuildCoordinatorTest.java`
|
|||
|
|
- `ccdi-project/src/test/java/com/ruoyi/ccdi/project/service/impl/CcdiBankTagServiceRiskCountRefreshTest.java`
|
|||
|
|
|
|||
|
|
**参考文件**
|
|||
|
|
|
|||
|
|
- `docs/design/2026-03-27-project-list-reanalyze-confirm-refresh-design.md`
|
|||
|
|
- `ruoyi-ui/src/views/ccdiProject/index.vue`
|
|||
|
|
|
|||
|
|
## Task 1: 核对后端边界仍完全满足本轮需求
|
|||
|
|
|
|||
|
|
**Files:**
|
|||
|
|
- Review: `ccdi-project/src/main/java/com/ruoyi/ccdi/project/controller/CcdiBankTagController.java`
|
|||
|
|
- Review: `ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/CcdiBankTagServiceImpl.java`
|
|||
|
|
- Review: `ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/impl/ProjectBankTagRebuildCoordinator.java`
|
|||
|
|
- Review: `ccdi-project/src/main/java/com/ruoyi/ccdi/project/service/ICcdiProjectOverviewService.java`
|
|||
|
|
|
|||
|
|
- [ ] **Step 1: 用检索命令确认关键链路位置**
|
|||
|
|
|
|||
|
|
Run:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
rg -n "tags/rebuild|submitManual|rebuildProject|refreshOverviewEmployeeResults|当前项目标签正在重算中" ccdi-project/src/main/java
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Expected:
|
|||
|
|
|
|||
|
|
- 能看到 controller 入口、手动提交协调器、项目重算主链路和风险人数刷新调用
|
|||
|
|
|
|||
|
|
- [ ] **Step 2: 人工确认本轮不需要新增后端能力**
|
|||
|
|
|
|||
|
|
核对结论需要覆盖:
|
|||
|
|
|
|||
|
|
```text
|
|||
|
|
1. 重新分析的实际接口仍是 POST /ccdi/project/tags/rebuild
|
|||
|
|
2. 重复提交保护仍由后端协调器负责
|
|||
|
|
3. 重算完成后的风险人数刷新仍由现有服务链路负责
|
|||
|
|
4. 本轮只新增前端确认交互,不需要后端新增“确认”语义接口
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
- [ ] **Step 3: 若边界不满足则停止,不要补丁式扩后端**
|
|||
|
|
|
|||
|
|
若发现异常:
|
|||
|
|
|
|||
|
|
- 不要新增“重新分析确认”专用接口
|
|||
|
|
- 不要新增冗余的刷新人数接口
|
|||
|
|
- 先回到设计文档重新确认需求边界
|
|||
|
|
|
|||
|
|
## Task 2: 运行关键回归,证明现有后端链路仍可复用
|
|||
|
|
|
|||
|
|
**Files:**
|
|||
|
|
- Test: `ccdi-project/src/test/java/com/ruoyi/ccdi/project/service/impl/ProjectBankTagRebuildCoordinatorTest.java`
|
|||
|
|
- Test: `ccdi-project/src/test/java/com/ruoyi/ccdi/project/service/impl/CcdiBankTagServiceRiskCountRefreshTest.java`
|
|||
|
|
|
|||
|
|
- [ ] **Step 1: 运行聚焦回归测试**
|
|||
|
|
|
|||
|
|
Run:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
mvn test -pl ccdi-project -Dtest=ProjectBankTagRebuildCoordinatorTest,CcdiBankTagServiceRiskCountRefreshTest
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Expected:
|
|||
|
|
|
|||
|
|
- `PASS`
|
|||
|
|
|
|||
|
|
- [ ] **Step 2: 如果失败,先判断是否与本轮前端交互需求无关**
|
|||
|
|
|
|||
|
|
处理原则:
|
|||
|
|
|
|||
|
|
- 若失败与既有后端链路本身无关,先记录现象,不要顺手改后端
|
|||
|
|
- 若失败说明现有重算或刷新链路确有缺口,再回到设计阶段补后端方案
|
|||
|
|
|
|||
|
|
- [ ] **Step 3: 确认本轮无需后端源码改动**
|
|||
|
|
|
|||
|
|
Run:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
git diff --name-only -- ccdi-project ruoyi-admin ruoyi-common ruoyi-framework ruoyi-system
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Expected:
|
|||
|
|
|
|||
|
|
- 无输出
|
|||
|
|
- 或仅出现经确认必须修正文档引用时涉及的文档文件,不应出现后端源码改动
|
|||
|
|
|
|||
|
|
## Task 3: 补后端验证记录与实施记录
|
|||
|
|
|
|||
|
|
**Files:**
|
|||
|
|
- Create: `docs/tests/records/2026-03-27-project-list-reanalyze-confirm-refresh-backend-verification.md`
|
|||
|
|
- Create: `docs/reports/implementation/2026-03-27-project-list-reanalyze-confirm-refresh-backend-record.md`
|
|||
|
|
|
|||
|
|
- [ ] **Step 1: 新增后端验证记录**
|
|||
|
|
|
|||
|
|
在 `docs/tests/records/2026-03-27-project-list-reanalyze-confirm-refresh-backend-verification.md` 记录:
|
|||
|
|
|
|||
|
|
```markdown
|
|||
|
|
# 项目列表重新分析确认刷新后端验证记录
|
|||
|
|
|
|||
|
|
## 检查目标
|
|||
|
|
- 确认项目标签重算接口与结果刷新链路已满足本轮需求
|
|||
|
|
|
|||
|
|
## 执行命令
|
|||
|
|
- rg -n "tags/rebuild|submitManual|rebuildProject|refreshOverviewEmployeeResults|当前项目标签正在重算中" ccdi-project/src/main/java
|
|||
|
|
- mvn test -pl ccdi-project -Dtest=ProjectBankTagRebuildCoordinatorTest,CcdiBankTagServiceRiskCountRefreshTest
|
|||
|
|
|
|||
|
|
## 验证结论
|
|||
|
|
- 后端现有链路可直接复用
|
|||
|
|
- 本轮无需新增接口、服务、SQL
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
- [ ] **Step 2: 新增后端实施记录**
|
|||
|
|
|
|||
|
|
在 `docs/reports/implementation/2026-03-27-project-list-reanalyze-confirm-refresh-backend-record.md` 记录:
|
|||
|
|
|
|||
|
|
```markdown
|
|||
|
|
# 项目列表重新分析确认刷新后端实施记录
|
|||
|
|
|
|||
|
|
## 结论
|
|||
|
|
- 本次需求仅新增前端确认交互
|
|||
|
|
- 后端继续复用 /ccdi/project/tags/rebuild
|
|||
|
|
- 项目重算完成后的风险人数刷新链路保持不变
|
|||
|
|
- 后端源码与数据库均无需改动
|
|||
|
|
|
|||
|
|
## 核查范围
|
|||
|
|
- CcdiBankTagController
|
|||
|
|
- ProjectBankTagRebuildCoordinator
|
|||
|
|
- CcdiBankTagServiceImpl
|
|||
|
|
- ICcdiProjectOverviewService
|
|||
|
|
|
|||
|
|
## 验证
|
|||
|
|
- rg 检索关键链路
|
|||
|
|
- Maven 聚焦回归测试
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
- [ ] **Step 3: 暂存前确认仅新增记录文档**
|
|||
|
|
|
|||
|
|
Run:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
git status --short
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Expected:
|
|||
|
|
|
|||
|
|
- 仅出现本任务新增的后端验证记录和实施记录
|
|||
|
|
- 若发现无关文件已暂存,先移出暂存区
|
|||
|
|
|
|||
|
|
- [ ] **Step 4: 提交后端记录文档**
|
|||
|
|
|
|||
|
|
Run:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
git add docs/tests/records/2026-03-27-project-list-reanalyze-confirm-refresh-backend-verification.md docs/reports/implementation/2026-03-27-project-list-reanalyze-confirm-refresh-backend-record.md
|
|||
|
|
git commit -m "补充项目列表重新分析后端验证记录"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
Expected:
|
|||
|
|
|
|||
|
|
- 提交成功,且不包含无关源码文件
|
|||
|
|
|
|||
|
|
## Done When
|
|||
|
|
|
|||
|
|
- 已确认 `/ccdi/project/tags/rebuild` 与现有风险人数刷新链路足以支撑本轮需求
|
|||
|
|
- 已通过聚焦回归测试证明无需补后端旁路能力
|
|||
|
|
- 后端源码、SQL、数据库均未因本轮前端交互需求发生改动
|
|||
|
|
- 已补齐后端验证记录和实施记录
|