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.
8.1 KiB
8.1 KiB
Map: 商机模块 E2E 验收专项(缺陷修复验收 → 全量回归 → Demo 修正 → Agent 自测交付)
wayfinder:map
Destination
商机模块整改交付包通过 Agent 自验收,移交用户人工验收:三个前置 effort 的修复全部可信——
- 缺陷修复经白盒复核(重点 D-01 新建商机 500 根因修复无回归);
- 全链路 E2E 重跑全绿(核心域 + 规则族三族 + 工作计划,0❌,P0/P1 全关);
- demo/index.html 反映修复后行为(工作计划 Tab 接入 + 新建/错误反馈交互完善);
- 浏览器自动化截图自测通过,产出最新测试报告与人工验收清单。
用户介入前:后端修复可信、测试全绿、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/opportunityflat 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豁免失效(票 01 实测 20260831):auth-perms 票 02 已改写该用例语义(perms 只读保留原值),crm-auth 210/0/0 全绿,无需再豁免。ResourceServiceImplTest.save_editCatalog_noButtonFields既有红灯- 无 commit 流程,直接改工作区(沿用本 repo 惯例)。
- 票 04 用
webapp-testingskill(Playwright)做浏览器自动化自测。
Decisions so far
- 01 — 缺陷修复白盒验收(重点 D-01 根因修复) — 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 刷新 — 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 + 新建/错误交互完善 — 四项全落地,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 浏览器自测 + 截图存档 + 移交人工验收 — 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。