You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
8.1 KiB
81 lines
8.1 KiB
|
6 days ago
|
# Map: 商机模块 E2E 验收专项(缺陷修复验收 → 全量回归 → Demo 修正 → Agent 自测交付)
|
||
|
|
|
||
|
|
`wayfinder:map`
|
||
|
|
|
||
|
|
## Destination
|
||
|
|
|
||
|
|
**商机模块整改交付包通过 Agent 自验收,移交用户人工验收**:三个前置 effort 的修复全部可信——
|
||
|
|
|
||
|
|
1. 缺陷修复经白盒复核(重点 D-01 新建商机 500 根因修复无回归);
|
||
|
|
2. 全链路 E2E 重跑全绿(核心域 + 规则族三族 + 工作计划,0❌,P0/P1 全关);
|
||
|
|
3. demo/index.html 反映修复后行为(工作计划 Tab 接入 + 新建/错误反馈交互完善);
|
||
|
|
4. 浏览器自动化截图自测通过,产出最新测试报告与人工验收清单。
|
||
|
|
|
||
|
|
用户介入前:后端修复可信、测试全绿、Demo 可演示。
|
||
|
|
|
||
|
|
## Notes
|
||
|
|
|
||
|
|
### 执行型 effort(用户指令为闭环交付)
|
||
|
|
|
||
|
|
本图 task 票直接执行交付,不停在纯决策。20260831 建图拍板(用户三项):
|
||
|
|
- **Demo 范围** = 接入工作计划 Tab + 修新建/错误交互 + 排查已知 UI 问题;
|
||
|
|
- **报告落点** = 更新既有 `.scratch/opportunity-e2e/e2e-report.md` 至最新一轮(历史靠 `-t09-final` 快照与 .bak 保留);
|
||
|
|
- **建图 session 只建图**,四票逐次 `/wayfinder` 推进。
|
||
|
|
|
||
|
|
### D-01 口径澄清(建图勘察实证)
|
||
|
|
|
||
|
|
用户所指「D-01 新建商机 500」是 **opportunity-fix** 的 D-01(`POST /api/opportunity` 必 500):根因 = `current_stage_id` 等 DB NOT NULL 无默认值 + `OpportunityIntakeImpl.applyInitialStage` 无模板兜底;终版方案 = fail-fast(无发布中模板 → code 60001 友好错,非 500)+ 预设模板 `OPP_STAGE_TPL_01` 不可删/不可停(64018)。**opportunity-bugfix 的 D-01 是关联客户添加 404(票 04 已修)——两个 D-01 都要验收,报告中写清区分。**
|
||
|
|
|
||
|
|
### 前置 effort 索引(验收输入,勿重新侦察)
|
||
|
|
|
||
|
|
| Effort | 状态 | 关键交付 |
|
||
|
|
|---|---|---|
|
||
|
|
| `.scratch/opportunity-fix/` | 已关闭(20260827) | D-01 fail-fast + 64018 预设保护;改动 3 文件(OpportunityIntakeImpl / OpportunityRuleConstants / OpportunityStageTemplateServiceImpl) |
|
||
|
|
| `.scratch/opportunity-bugfix/` | 12 票全 resolved(20260831) | D-01~D-22 闭环(19 修 + 3 翻案);票 09 终版 ✅146/⚠2/❌0;票 12 工作计划四端点(代码在工作区**未 commit**,git log 已有 commit 938aed9 及之后的 5ac7aba/9233a5b/1b1e4ef) |
|
||
|
|
| `.scratch/opportunity-e2e/` | 12 票全 resolved | seed-opportunity.py / e2e-core.py / e2e-rules.py / e2e-report.md / demo/index.html / demo-subapi-test.py |
|
||
|
|
|
||
|
|
### 已知缺口锚点(建图 grep 实证)
|
||
|
|
|
||
|
|
- demo/index.html **无工作计划 Tab**(grep `workplan|工作计划` 零命中),票 12 四端点 `workplan/list|add|update|delete` 已交付待接入;
|
||
|
|
- demo 有「+ 新建商机」入口(`dlgCreate()` → `POST /api/opportunity` flat create);
|
||
|
|
- e2e-core.py **无 workplan 断言**(grep 零命中),工作计划运行时仅 t12-verify.py(17/17)覆盖。
|
||
|
|
|
||
|
|
### 环境与工程纪律(继承,勿重学)
|
||
|
|
|
||
|
|
- 起服:仓库根 `$env:SPRING_PROFILES_ACTIVE='verify'; $env:CRM_MINIO_AK='admin'; $env:CRM_MINIO_SK='Itc@123456'; java -jar crm-app\target\crm-app-1.0.0-SNAPSHOT.jar`(连远程 DB 8.129.84.155,库 crm);手册 `.scratch/opportunity-e2e/boot-verify.md`。
|
||
|
|
- debug token:`GET /api/auth/debug/token?userId=`(verify profile);分页参数 `current`/`size`。
|
||
|
|
- 基线重置:`python .scratch/opportunity-e2e/seed-opportunity.py`(先清后造,幂等,ID 会变);**`--skip-db-clean` 会全量翻倍再造,恢复基线必须跑全量 seed**。
|
||
|
|
- fat jar 三坑:①增量 package 静默 up-to-date 跳过、repackage 拿旧 jar 仍 BUILD SUCCESS → **起服前 clean package**(可抽 BOOT-INF/lib 嵌套 jar 验新类);②运行中服务进程锁 jar,clean 前 Stop-Process;③业务表主键非自增(雪花),DB 直插必须显式给 id。
|
||
|
|
- 判定纪律:禁止按 RESTful 推断接口路径(flat 风格);中文 body 一律 Python requests(PS5.1 会写坏远程库);孤立 401 先重试一次再判缺陷。
|
||
|
|
- 账号矩阵:管理员罗伟健 + 跨部门 A赖永利/B肖琴/C曾偲青(`env-inventory.md`)。
|
||
|
|
- ~~crm-auth `ResourceServiceImplTest.save_editCatalog_noButtonFields` 既有红灯~~ **豁免失效(票 01 实测 20260831)**:auth-perms 票 02 已改写该用例语义(perms 只读保留原值),crm-auth 210/0/0 全绿,无需再豁免。
|
||
|
|
- 无 commit 流程,直接改工作区(沿用本 repo 惯例)。
|
||
|
|
- 票 04 用 `webapp-testing` skill(Playwright)做浏览器自动化自测。
|
||
|
|
|
||
|
|
## Decisions so far
|
||
|
|
|
||
|
|
- [01 — 缺陷修复白盒验收(重点 D-01 根因修复)](issues/01-defect-fix-audit.md) — **23/23 锚点在位 0❌,单测 873/0/0 全绿**;D-01 fail-fast/64018/赋值链五点全绿,翻案三项形态正确;次要瑕疵 3 处不阻塞(javadoc 残留 ×2 + 重复 import → 票 03 顺手修;64018 两族同值 = 既有债务);豁免红灯已被 auth-perms 票 02 修复(crm-auth 210/0/0);票 12 未 commit 增量在位,**auth-perms 改动混入工作区将随票 02 打包进 fat jar**;清单 = `defect-fix-audit.md`。
|
||
|
|
- [02 — 全链路 E2E 重跑 + e2e-report.md 刷新](issues/02-e2e-rerun.md) — **177 用例 ✅176/⚠1/❌0 · 新增缺陷 0**(core 105/1/0 + rules 47/0/0 + t12 17/17 + D-01 专项 7/7);两处偏差均为 seed v2/旧断言演进非后端回归(4 处脚本就地修并入 Answer);D-01(opportunity-fix 口径)fail-fast 60001/64018/首阶段/5 节点运行时全绿;workplan 归属拍板 = t12 独立脚本 + 报告 §三b 收录;快照 `*-acceptance.*`;P0/P1 全关结论成立。
|
||
|
|
- [03 — Demo 修正:接入工作计划 Tab + 新建/错误交互完善](issues/03-demo-revise.md) — **四项全落地,demo-subapi-test.py v3 全绿**(wp 三形态/闭环写操作 + 新建双路径 + 20260829 四修复点无回归,page errors 0);**关键缺口发现并修复:demo 新建表单缺省市字段,D-14 六必填下新建从未走通**——补 region 联动 + 六必填 errbox + 成功直达详情;subapi 扩展拍板=扩展(前端渲染路径只有 demo 侧可验),顺手修 v2 负路径硬编码 id 缺陷;票 01 三瑕疵(javadoc ×2 + 重复 import)同批修复,crm-opportunity compile 通过。
|
||
|
|
- [04 — Agent 浏览器自测 + 截图存档 + 移交人工验收](issues/04-agent-selftest.md) — **31/31 全绿(0 页面异常/0 console error),三结论成立,移交就绪**;本轮核心价值 = 暴露并修复 3 个 UI 集成面缺陷(demo-B1 切视图 total 残留空页 / demo-B2 高危 19 处无返回值写端点静默失败→okApi / demo-B3 工作计划 deadline 补秒),均为 demo 前端改动不触碰已验收后端;截图 29 张(accept-01~30)索引于 selftest-report.md;清单落点拍板=独立文件 acceptance-checklist.md(七幕演示脚本 + D-01 双口径验证点 + 🟡 已知边界),未并入 e2e-report.md;**等待用户人工验收,本图走完**。
|
||
|
|
|
||
|
|
## Ticket 依赖图
|
||
|
|
|
||
|
|
```
|
||
|
|
01 (task: 缺陷修复白盒验收,重点 D-01) → 02 (task: 全链路 E2E 重跑 + 报告刷新) → 03 (task: Demo 修正,接入工作计划 Tab) → 04 (task: 浏览器自测 + 截图 + 移交)
|
||
|
|
```
|
||
|
|
|
||
|
|
纯串行链:01 白盒发现问题须先修再跑 E2E;03 要在 02 确认后端行为后改 demo 才「真实反映修复后行为」;04 在 demo 修好后自测。
|
||
|
|
|
||
|
|
## Not yet specified
|
||
|
|
|
||
|
|
(空——**全图走完(20260831)**:fog 随票 03 落定,frontier 票 04 已 resolved。下一动作 = 用户按 `acceptance-checklist.md` 人工验收(七幕演示脚本,约 15 分钟);发现不符 → 截图留证回 `opportunity-bugfix` 补票或新开 effort,不在本图内修。)
|
||
|
|
|
||
|
|
## Out of scope
|
||
|
|
|
||
|
|
- **A1X 全量工作计划模块 / A4 客户管理模块** — 前置拍板已挂起 P2 后续迭代,本图不 graduate。
|
||
|
|
- **crm-auth 既有红灯** — ResourceServiceImplTest 非商机域,票 12 已记录留裁决。
|
||
|
|
- **Bruno collection 变更** — 票 10/12 已同步;除非 E2E 重跑暴露契约问题才回补。
|
||
|
|
- **git commit / 提交** — 沿用直接改工作区惯例,除非用户要求。
|
||
|
|
- **推送方案 / 督办 / 一键拉群 / 转项目** 等外部集成 — 继承 opportunity-bugfix out-of-scope。
|