# 项目业务(crm-project) ## Language **项目**: 商机的下游终态业务域实体,住 `crm_project` 独立主表(路线甲,ADR-0042 待归档于 spec §2.1;推翻商机域共表 + `opp_status=5` 切域旧模型)。管理项目从冲突处理到结项的全生命周期。上游 = 商机域(方案卡 owner 化后项目卡经 `SchemeCardProjectPort` 校验);下游 = 无。_Avoid_: 工程、工单、 opp_status=5 派生视图(旧共表口径已废)。 **双轴**: 项目状态模型 = 轴1 `project_stage`(业务阶段 0~6,非线性,stage5 赢/输分叉)+ 轴2 `project_status`(横切 1进行中/2已关闭/3已结项),对称商机双轴但**单轴线性、骨架固定、非模板驱动**(无可配阶段模板)。_Avoid_: 阶段模板、自定义节点(商机域概念,不适用于项目)。 **阶段(project_stage)**: 0 冲突处理(所有项目起点,冲突解除=报备审核通过)→ 1 方案设计 → 2 商务报价 → 3 招投标准备(唯一连跳:无需招投标 3→5)→ 4 商务跟进 → 5 赢单/输单(分叉点)→ 6 结项(仅输单进)。回退=弹窗多步选前序节点、下限 stage1、限管理员+销售总监。_Avoid_: 「报备中」当阶段值(原型混轴笔误,报备是独立轴)。 **报备(filing_status)**: 独立于双轴的第三轴:0未报备(本期不可达·预留)/1审核中/2通过/3驳回。**建项目即触发报备**(grill#12 拍板甲):落库即 1;报备专员审核**通过 = 冲突解除**,一次动作双写 `filing_status=2 + stage 0→1`。_Avoid_: 外部回调触发(本期无外部通道)、未报备态(预留)。 **冲突解除**: stage0 的出口动作 = 报备审核回填(通过→stage1;驳回停 stage0 可再审)。与看板 stage0 卡片「冲突解除」入口闭环。冲突**检测**本期留桩恒「无冲突」(spec §8 选甲:数据源+配置源两头缺,五维匹配+拉群 spin-out)。_Avoid_: 同客户多卡=冲突推断(方案卡唯一约束带归属,跨商机同客户多卡合法)。 **标底(bid_base_type)**: 招投标准备阶段认定的标底类型(字典 code,A+/A-/B+/B-/C/N/H/X/SQ 九值)。等级判定(A+~SQ)本期经 `ProjectRuleQueryPort.loadBidConfig` 消费;分成%计算 spin-out。_Avoid_: 标底金额(那是 bid_budget 投标预算)。 **方案卡归属**: 方案卡双归属 `owner_type + owner_id`(1=商机/2=项目,ADR-0041,票 01 落地)。项目关联方案卡必填且**卡客户必等于项目主档客户**(一项目一客户一卡);校验经票 01 端口 `SchemeCardProjectPort`(本模块 `@Primary` 真实现,覆盖 crm-opportunity 侧 Noop 桩)。_Avoid_: 无孤立项目卡(商机卡语义);孤立方案卡(项目卡必有项目主档锚点)。 **客户真源**: 一项目一客户,主表单 `customer_id` 列(乙,**无 project_customer 子表**,grill#6)。建档客户必填、走 `CustomerCatalogPort` 目录选、不可现场新建(4.1)。`/project/customer/list` 退化为查这一个客户 + 端口取详情。_Avoid_: 项目多客户(未来真需求再升子表)。 **项目动态(timeline)**: 域内 `project_oplog` 单表 + 统一写入器 `ProjectOplogWriter`(对称 opportunity_oplog;`/project/timeline/list` 投影读)。**拍板**:spec §4「crm-log 投影」原意指平台 crm-log,但 `sys_log_operation` 无 biz 维度无法按项目过滤 → 落域内单表;写端点另挂 `@OpLog` 落平台全局审计。已回写票仓 README Decisions。_Avoid_: 动态行更新/删除(append-only)。 **阶段专属扩展列**: 方案/报价/招投标/开标四组数据全落 `crm_project` 主表扩展列(乙,零阶段子表,grill#11):`scheme_budget/scheme_version/scheme_task_status`、`quote_total/quote_status`、招投标组(截止/预算/品牌控制/标底/比例/保证金/文件引用/投标主体一对一本期)、开标组(时间/地点/中标方式/中标金额 + `bid_result`)。**❗硬边界**:设备/报价清单明细行不落 CRM(只存外部平台文件引用 + 汇总标量)。_Avoid_: project_bidding/project_scheme 子表(一对多真需求出现再升)。 **移交/同步接缝**: 用户移交 `ProjectUserTransferPortImpl`(domain="project",查 `crm_project` 刷 owner 三列;crm-auth 注册表自动重挂,零改动);客户换负责人 `ProjectOwnerSyncPort` 真实现(替换 crm-customer Noop,批量刷 owner,返回影响行数)。原 crm-opportunity 侧共表实现删除(票 12)。 **视图/workspace**: 两平铺菜单——项目管理(`scope=manage`,@DataScope 部门天花板)/ 我的项目(`scope=mine`,owner=当前用户);无内置视图下拉、无自定义视图、不接 crm-preference(原型只画两平铺菜单,极简化)。展示形态 list/split/board 三态,列表与分屏共用 `GET /project/list`。