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.
 
 
 
 
 

4.2 KiB

crm-project(A5 项目管理)实现票仓

父文档(契约权威):.scratch/crm-project-wayfinding/deliverable-spec.md(12 项承重决策见其 §0)。 拆票会话:2026-09-10,to-tickets。原型权威树:.scratch/api-docs-reorg/lanhu-tree-v29.md

通用纪律(每张票开工前必读,逐条适用)

  1. 开工前置:前置票已沉淀文档并清理上下文。本票以全新会话起步,只凭本票票面 + 下列沉淀文档(spec / API-SUMMARY / 审计台账 / map Decisions),不依赖任何前票会话记忆
  2. 收工沉淀(代码之外必须落的,按票适用)
    • 新端点 → bruno-sync 生成 .bru(Bruno 仓 E:\code\crm-api-docs,agent 不提交 git,留用户审查提交)+ .scratch/customer-module/API-SUMMARY.md 同款形态的 crm-project API-SUMMARY 增量登记;
    • 拍板/发现/口径 → 回写 spec 对应节或本 README 的 Decisions;
    • 模块级决策 → CONTEXT.md / ADR(spec §8 留痕清单)。
  3. 收工检查:AGENTS.md「新模块接口接入 checklist」出票/收工各跑一遍;全量 BOM 扫描;mvn compile + 模块测试绿。
  4. e2e loop 三段式(测/修/验各自全新会话):16 审计(只测不修,产出 P0–P3 台账)→ 16R-* 返工(从台账动态开票,只修台账所指)→ 17 复测(台账全项复跑,P0/P1 清零才过,不过回环再开 16R)。P2/P3 记档,用户验收时可翻案。
  5. 环境事实(起服 verify profile / mvn 路径 / py -X utf8 / Playwright venv .scratch/customer-e2e/.venv10 / 远程共享 DB):见 .scratch/customer-frontend-handover/map.md「环境事实」节,以彼处为准维护。

依赖图

01 → 02 ─┬→ 03 ─┬→ 14
         ├→ 04 ─┘
         ├→ 04 + 11 → 13 ──→ 16
         ├→ 05 → 06 ┐
         │      07 ─┼→ 15 ──→ 16
         │      08 ─┘
         ├→ 09 ─┐
         ├→ 10 ─┼→ 15
         ├→ 11 ─┘
         └→ 12 ──────────────────────→ 18
16 → 16R-*(动态)→ 17 → 18 → 19

Frontier 推进:01(无阻塞可立即开);02 之后 03/04/05/09/10/11/12 七张并行;13 等 04+11;14 等 03+04;15 等 05–11;16 等 13+14+15;17 等 16R 全清;18 等 12+17;19 等 18。

Decisions

  • 2026-09-10 拆票拍板:存量无 opp_status=5 数据,票 12 仅类级迁移、不加数据搬迁票(用户确认)。
  • 2026-09-10 前端形态:demo 单页 = e2e 载体 + 验收前端参考实现,真实 Vue 仓由前端团队按 Bruno 文档另做(沿 customer 先例)。
  • 2026-09-10 票 02 拍板:项目动态落域内 project_oplog 单表 + ProjectOplogWriter 统一写入器(spec §4「crm-log 投影」落地口径)——crm-log 平台审计表 sys_log_operation 无 biz 维度、无法按项目过滤投影;域内单表对称 opportunity_oplog 先例,写端点另挂 @OpLog 落平台全局审计 crm-log。票 10 读侧按此投影。
  • 2026-09-10 票 02 拍板:深 tag 页面目录 = 项目管理(看板视图)/项目管理(分屏视图)/项目管理(列表视图)/我的项目/项目详情/项目建档。原型树 v29 一行索引未展开详情页;详情/建档 tag 对应原型 a5-1-2-1 页签详情与看板/列表页新建入口。
  • 2026-09-10 票 02 拍板:错误码段 68xxx(auth 61/file 62/dict 63/rule 64/lead 65/opp 66/customer 67 之后顺延);商机侧 66008(卡不存在)在建档入口翻译为 68007(异常不跨 seam)。
  • 2026-09-10 票 13 拍板:ProjectRuleQueryPort 包位置 = com.crm.rule.port.inbound(crm-rule 声明并自实现,对称 CustomerCatalogPort 的 inbound 形态;与 port.outbound「消费方 adapter 实现」方向相反),DTO 随包 record(StageAliasDTO/BidConfigDTO/PoolMemberDTO/ConflictPullDTO/StageRemindDTO),不暴露内部 ProjectRuleDTO。ConflictPullDTO 含「启用维度集+命中阈值+触发条件」签名形态——维度集/阈值为签名预留(conflictPullJson 无该配置层,解析恒空集/占位 1,spin-out 前置补列)。stageCode 取 project_stage 值字符串("0"~"6",容错 "STAGE_0" 形态取尾段)。
  • (后续各票拍板追加于此)