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

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 根因修复)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。