From 4ca6128652c506c1e79705382800b7e5bc9a29f0 Mon Sep 17 00:00:00 2001 From: luoweijian <1329394916@qq.com> Date: Fri, 11 Sep 2026 02:21:01 +0800 Subject: [PATCH] =?UTF-8?q?ticket19:=20=E9=AA=8C=E6=94=B6=E4=BA=A4?= =?UTF-8?q?=E4=BB=98=E5=8C=85=20ACCEPTANCE.md=EF=BC=88=E5=8D=95=E5=85=A5?= =?UTF-8?q?=E5=8F=A3/=E4=B8=80=E9=94=AE=E9=AA=8C=E6=94=B6=E8=B7=AF?= =?UTF-8?q?=E5=BE=84/=E4=BA=A4=E4=BB=98=E7=89=A9=E7=B4=A2=E5=BC=95/P2P3=20?= =?UTF-8?q?=E7=BF=BB=E6=A1=88=E5=9B=9E=E7=8E=AF/=E5=8F=91=E7=89=88?= =?UTF-8?q?=E8=81=94=E8=B0=83=E7=A7=BB=E4=BA=A4=E6=B8=85=E5=8D=95/spin-out?= =?UTF-8?q?=20=E6=B8=85=E5=8D=95=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .scratch/crm-project/ACCEPTANCE.md | 65 +++++++++++++++++++ .../tickets/19-acceptance-handoff.md | 6 +- 2 files changed, 68 insertions(+), 3 deletions(-) create mode 100644 .scratch/crm-project/ACCEPTANCE.md diff --git a/.scratch/crm-project/ACCEPTANCE.md b/.scratch/crm-project/ACCEPTANCE.md new file mode 100644 index 0000000..67874ef --- /dev/null +++ b/.scratch/crm-project/ACCEPTANCE.md @@ -0,0 +1,65 @@ +# A5 项目管理(crm-project)验收交付包(票 19) + +> **单一入口**:本文件是验收的唯一起点。交付范围 = 票仓 `.scratch/crm-project/tickets/` 01–19 全部落地(16R 已修、17 已复测清零)。 + +## 1. 一键验收路径(约 10 分钟) + +1. **起服**(如未起): + ``` + 构建:set JAVA_HOME=C:\Users\Administrator\.jdks\corretto-17.0.13 && D:\INTELL~1.3\plugins\maven\lib\maven3\bin\mvn.cmd -s settings.xml clean package -DskipTests + 起服:SPRING_PROFILES_ACTIVE=verify CRM_MINIO_AK=admin CRM_MINIO_SK=Itc@123456 → java -jar crm-app\target\crm-app-1.0.0-SNAPSHOT.jar + (DB=远程共享库 8.129.84.155,凭据在 crm-app application.yml 默认值;8080 被占先杀 java) + ``` +2. **种子**:`py -X utf8 .scratch/crm-project/demo/seed_project_demo.py` +3. **打开 demo**:浏览器开 `.scratch/crm-project/demo/index.html`(默认 API=http://localhost:8080) +4. **照操作说明走全流程**:`.scratch/crm-project/demo/README.md`「全流程演示路径」——建项(客户 99021001 + 方案卡 99021008)→ 冲突解除(报备通过双写 0→1)→ 逐级推进 → 3→5 无需招投标连跳 → 多步回退(连跳后 stage4 不在列)→ 推回 5 → 标记赢单(快照落列、锁死)/ 另建一个标输单(stage6 终态)→ 关闭记因 → 8 页签全读 → 角色切换(总监 99021002 可回退 / 普通销售 99021003 被拒 68005/68010)。 +5. **机器冒烟**(可选复核):`.scratch/customer-e2e/.venv10/Scripts/python.exe .scratch/crm-project/demo/smoke_a5.py` → 预期 **35/35 PASS**。 + +## 2. 交付物索引 + +| 交付物 | 位置 | 说明 | +| --- | --- | --- | +| demo 单页(验收前端参考实现) | `.scratch/crm-project/demo/index.html` | 看板/列表/详情 8 页签/状态机全动作/角色切换 | +| demo 操作说明 | `.scratch/crm-project/demo/README.md` | 入口/环境/种子/演示路径/已知演示性简化 | +| 种子 + 冒烟 | 同目录 `seed_project_demo.py` / `smoke_a5.py` | 幂等;35 步含 16R 回归三断言 | +| **缺陷台账(终版)** | `.scratch/crm-project/audit/audit-defects.md` | P0=0 / P1=3(已修,票 17 复测 FIXED)/ **P2=12、P3=10 维持记档·可翻案** / 观察项 1 | +| 逐页对照台账 | `.scratch/crm-project/audit/audit-ledger.md` | 原型 17 页 × 142 对照点矩阵 | +| 复测结论 | `.scratch/crm-project/audit/retest-result.json` | FIXED 3 / KEPT 23 / REPRODUCED 0 | +| 接口文档(Bruno) | `E:\code\crm-api-docs\A5 项目管理\`(6 子目录 24 .bru) | agent 未提交 git,留人工审查提交 | +| API-SUMMARY(终版) | `.scratch/crm-project/API-SUMMARY.md` | 21 端点 + 错误码 68001~68010 + 值域附录 | +| 端点↔原型对齐核查表 | `.scratch/crm-project/endpoint-page-alignment.md` | 21 端点 × 17 页双向勾对(票 18) | +| 模块域语言 | `crm-project/CONTEXT.md` + 根 `CONTEXT-MAP.md` | 已挂载 | +| ADR | `docs/adr/0041`(方案卡 owner 化解耦)、`0042`(项目双轴状态机) | spec §8 留痕已核销(回写标记在 deliverable-spec §8) | + +## 3. 翻案回环(P2/P3 处置) + +- 台账中 **P2/P3 共 22 条全部标注「维持记档·可翻案」**(含分屏视图未实现、列表列裁剪、回退弹窗原因类型联动、终态可加跟进、closeType 原始码显示等)。 +- 翻案方式:按 `audit-defects.md` 对应条目的复现步骤开 **16R 形态返工票**(一张票一条/一组相关缺陷,`ready-for-agent`,动代码后照票 17 口径复测并在台账追加轮次)。 +- 观察项(非缺陷):赢单态(stage5/status=1)可被主动关闭——系 spec §3「任意 stage 可主动关闭」既有口径,复测已留痕,供产品复核(若改:`ProjectStageMachine.ensureCloseable` 一处)。 + +## 4. 发版 / 联调移交清单 + +- **构建**:发版必须 `clean package`(禁 -pl/-rf 中段 resume);测试 `-pl crm-project -am test -DargLine=-Djdk.attach.allowAttachSelf=true -Xmx1024m`(corretto-17)。 +- **环境事实指针**:`.scratch/customer-frontend-handover/map.md`「环境事实」节(DB/MinIO/起服/单测通道,本机 mvn=IDEA 捆绑 3.9.9)。 +- **DB 迁移**:`SchemeCardOwnerMigrationRunner` 启动期幂等(老库补列/回填/换唯一约束/放宽 opp_id 可空);新装库直达新形态。共享库已实测迁移通过。 +- **bruno-sync**:配置已加(sourceRoots + A5 menuBindings);重跑 `/bruno-sync` 以源码 tag 为准幂等归位(本机未装该 skill,.bru 为按 generated 形态手写)。 +- **真实前端**:Vue 仓由前端团队按 Bruno 文档另做(沿 customer 先例);demo 为参考实现。 +- **测试基线**:crm-project 45 用例 + 全仓约 1100 用例绿(commit 时点);`mvn -s settings.xml test` 全量复跑通过。 + +## 5. spin-out 清单(契约预留、本期不做) + +| 项 | 预留 | 前置 | +| --- | --- | --- | +| 冲突检测五维匹配 + 多方/异地拉群 | `ProjectConflictDetector`(桩恒无冲突)、`ConflictPullDTO` 维度集/阈值签名形态 | conflictPullJson 补「匹配维度选择+命中阈值」配置列 | +| 商机推送方案卡 → 自动转项目 | `OpportunityConvertPort`/`ConvertToProjectCmd`(crm-opportunity 声明实现,本期零调用) | 推送规则票 | +| 群聊详情页签 | — | 企微群能力 | +| 阶段提醒推送 | `StageRemindDTO` 签名 | 通知推送 | +| 标底分成计算 | `BidConfigDTO` 分成字段 | 薪酬/绩效模块 | +| 输单复盘字段(原因/竞品/失败分析) | stage6 落位已有 | 产品定义字段集后一票加列 | +| 赢单后履约(合同/订单/发货/回款) | 赢单 stage5 闭环即终点 | 独立票 | + +## 6. 验收判定口径(与票 17 一致) + +- 主链 11 步(建项→报备→推进→连跳→回退→赢单锁死→动态留痕)全通 = 通过基线; +- P0/P1 清零 = 已达成(复测 FIXED 3 / REPRODUCED 0); +- P2/P3 记档项不阻塞验收,翻案走第 3 节回环。 diff --git a/.scratch/crm-project/tickets/19-acceptance-handoff.md b/.scratch/crm-project/tickets/19-acceptance-handoff.md index 4c303fe..3871673 100644 --- a/.scratch/crm-project/tickets/19-acceptance-handoff.md +++ b/.scratch/crm-project/tickets/19-acceptance-handoff.md @@ -6,6 +6,6 @@ **Status:** ready-for-agent -- [ ] demo 单入口可按操作说明完整走通全流程 -- [ ] 台账/文档索引/移交清单齐备,验收路径单一入口 -- [ ] 用户翻案项有明确回环入口(16R 形态) +- [x] demo 单入口可按操作说明完整走通全流程 +- [x] 台账/文档索引/移交清单齐备,验收路径单一入口 +- [x] 用户翻案项有明确回环入口(16R 形态)