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.9 KiB

项目业务(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→1Avoid: 外部回调触发(本期无外部通道)、未报备态(预留)。

冲突解除: 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_statusquote_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