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.
5.9 KiB
5.9 KiB
A5 项目管理(crm-project)验收交付包(票 19)
单一入口:本文件是验收的唯一起点。交付范围 = 票仓
.scratch/crm-project/tickets/01–19 全部落地(16R 已修、17 已复测清零)。
1. 一键验收路径(约 10 分钟)
- 起服(如未起):
构建: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) - 种子:
py -X utf8 .scratch/crm-project/demo/seed_project_demo.py - 打开 demo:浏览器开
.scratch/crm-project/demo/index.html(默认 API=http://localhost:8080) - 照操作说明走全流程:
.scratch/crm-project/demo/README.md「全流程演示路径」——建项(客户 99021001 + 方案卡 99021008)→ 冲突解除(报备通过双写 0→1)→ 逐级推进 → 3→5 无需招投标连跳 → 多步回退(连跳后 stage4 不在列)→ 推回 5 → 标记赢单(快照落列、锁死)/ 另建一个标输单(stage6 终态)→ 关闭记因 → 8 页签全读 → 角色切换(总监 99021002 可回退 / 普通销售 99021003 被拒 68005/68010)。 - 机器冒烟(可选复核):
.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 节回环。