客户关系管理系统
本子应用用于企业客户关系与销售全过程管理,以客户为中心统一归集客户资源,覆盖市场活动获客、线索与客户公海池、商机推进、报价、洽谈、订单、合同、退货与售后服务,实现销售过程可追溯、交易与回款数据可沉淀。
- 市场活动:活动登记(类型、起止时间、预算与投入成本)、活动总结与附件,支撑活动获客
- 线索管理:线索录入、线索池(无负责人公开池)、领取与分配、跟进、退回(退回原因)、转换为客户
- 客户管理:客户档案与客户公海池、联系人、地址、客户项目、客户地图与项目地图
- 商机管理:商机登记、阶段推进(需求发现→需求确认→方案报价→商务谈判→赢单/输单)、关键决策人与意向产品
- 报价管理:报价单与报价明细、报价状态、转订单
- 洽谈管理:洽谈计划(预约)、洽谈记录(内容纪要与处理结果)
- 订单管理:销售订单与订单明细、支付/开票/回款/到货跟踪
- 合同管理:销售合同、开票资料、客户账户
- 退货管理:销售退货申请、审批与退货明细
- 产品管理:产品目录、规格型号、参考单价
- 代理商管理:代理商档案、等级、授权地域与授权周期
- 售后服务:售后反馈登记、处理与跟踪
- 基础设置:数据字典、业务类型、计量单位、合同分类、我方主体、成本利润中心
- 暂不实现:销售工作台
- 暂不实现:统计分析
- 暂不实现:AI 智能拓客与外呼
- 暂不实现:营销自动投放与群发
- 暂不实现:移动端外勤定位与打卡
- 公海池机制:线索池 / 客户公海池 —— 负责人为空即自动入池并对全员公开;支持「领取」「分配」「退回(清空负责人)」,退回须选择退回原因。
- 全生命周期链路:市场活动 → 线索 → 客户 → 商机 → 报价单 → 销售订单 → 销售合同 → 售后反馈,销售退货可回冲订单与合同金额。
- 多类审批:销售合同、销售退货单与退货明细、成本利润中心、我方主体均走审批流(
approvalStatus)。 - 资金视图:订单直接沉淀未税金额、税金、总金额、待支付金额、已开票/未开票、已回款/未回款与回款比例。
- 地理视图:客户地图、项目地图基于客户与客户项目的位置点位(
poi)展示。 - 代理与直销并行:线索、客户、商机、订单、合同均含「是否直销」与代理商归属两个维度。
解决方案: EIM 应用域: 营销管理 - CRM 应用名称: 客户关系管理系统 - CRM 估算定价: 4800 元/年
| 名词 | 释义 |
|---|---|
| 线索 | 潜在销售对象,尚未转为正式客户;负责人为空归入线索池,有负责人为私有线索 |
| 线索池 | 负责人为空的线索集合,全员公开可领取或由主管分配 |
| 客户 | 正式业务客户主体;负责人为空归入客户公海池,有负责人为私有客户 |
| 客户公海池 | 负责人为空的客户集合,全员公开可领取、分配或退回 |
| 合作伙伴 | 客户/合作方主档(企业或个人),是报价、订单、合同、售后的交易主体 |
| 洽谈计划 | 待执行的跟进、拜访、沟通计划,属预约规划类数据 |
| 洽谈记录 | 实际完成沟通后的跟进记录,记录沟通内容与沟通结果 |
| 商机 | 销售机会,客户产生明确采购意向后建立,贯穿销售阶段推进 |
| 报价单 | 向客户出具的产品/服务报价,可关联商机,可转为订单 |
| 订单 | 销售业务订单,记录客户、订货商品、数量、金额与资金状态 |
| 合同 | 正式签署的销售合同,关联订单与客户 |
| 退货 | 已成交订单的退货申请,经审批后回冲订单金额 |
| 客户项目 | 客户名下的具体项目(如工程/园区),承载项目状态与造价 |
| 代理商 | 经授权代理销售的合作方,含授权地域与授权周期 |
| 成本利润中心 | 用于归集成本的「成本中心」或核算利润的「利润中心」 |
| 回款 | 客户依据订单/合同支付的款项,对应订单的已回款与未回款 |
1. 功能设计
Section titled “1. 功能设计”treeView-beta
营销管理/
客户关系管理系统
市场营销
市场活动 ##活动登记、起止时间、预算与投入成本、活动总结
活动类型 ##市场活动类型基础资料
线索管理
线索池 ##负责人为空的线索公开池,领取或分配
线索 ##线索录入、跟进、退回、转换为客户
客户管理
公海池 ##负责人为空的客户公开池,领取、分配或退回
客户 ##客户档案、来源、退回原因、归属
联系人 ##联系人档案、职级与任职经历
地址 ##联系人多个地址与收件信息
客户项目 ##客户名下项目、项目状态、造价与位置
客户地图 ##客户地理分布
项目地图 ##客户项目地理分布
商机管理
商机 ##商机登记、阶段推进、关键决策人、意向产品
报价单 ##报价单与报价明细、报价状态、转订单
洽谈管理
洽谈计划 ##待执行的跟进/拜访预约
洽谈记录 ##洽谈内容纪要、方式与处理结果
订单合同
销售订单 ##订单与明细、支付/开票/回款/到货跟踪
销售合同 ##合同签订、金额与审批
开票资料 ##客户开票抬头与账户
客户账户 ##客户收付款账户
退货管理
销售退货 ##退货申请、审批与退货明细
产品管理
产品 ##产品目录、规格型号、参考单价与指导价
代理商管理
代理商信息 ##代理商等级、授权地域与授权周期
售后管理
售后反馈 ##售后问题登记、处理与跟踪
基础设置
数据字典 ##字典分类与字典项维护
业务类型 ##业务类型基础资料
计量单位 ##计量单位基础资料
合同分类 ##合同分类基础资料
我方主体 ##我方签约主体
成本利润中心 ##成本中心/利润中心
销售工作台 :::postpone icon(ph:empty) ##暂不实现
统计分析 :::postpone icon(ph:empty) ##暂不实现
2. 业务流程
Section titled “2. 业务流程”客户全生命周期流程
flowchart LR;
A(市场活动) -.-> B(线索) --> C(客户) --> D(商机) --> E(报价单) --> F(销售订单) --> G(销售合同) -.-> I(售后反馈)
D -.-> H(洽谈记录) -.-> F;
F -.-> J(销售退货) -.-> F;
classDef key fill:#fef9c3,stroke:#ca8a04,color:#111
classDef branch fill:#E5F6DA,stroke:#569230,color:#111;
class A,J branch;
class F key;
线索—客户公海池流转
swimlane-beta
subgraph 系统
A[线索池 / 客户公海池]
end
subgraph 销售员
B[领取并跟进]
C[转换为客户]
D[无效或废弃]
end
subgraph 销售主管
E{分配或退回}
end
A -->|领取| B
A -->|分配| B
B -->|退回| A
E -.->|退回| A
B --> C
B -.->|无效/废弃| D
classDef branch fill:#E5F6DA,stroke:#569230,color:#111;
class D branch;
订单到回款流程
flowchart LR;
A(报价单) --> B(销售订单) --> C{合同审批} --> D(开票) --> E(回款)
C -.->|驳回| B
classDef key fill:#fef9c3,stroke:#ca8a04,color:#111
classDef branch fill:#E5F6DA,stroke:#569230,color:#111;
class C key;
3. 业务逻辑及设计
Section titled “3. 业务逻辑及设计”需求编号
RQ-CRM-{MMNN}:{MM} 为模块序号(按「功能设计」菜单树顺序,两位补零),{NN} 为模块内需求序号(两位补零)。编号一经分配即锁定,不复用、不回收。
01. 市场营销
Section titled “01. 市场营销”| 编号 | 需求描述 | 优先级 | 验收标准 | 关联对象 |
|---|---|---|---|---|
| RQ-CRM-0101 | 市场活动登记时名称、类型、开始时间、结束时间为必填项 | P0 | 名称 / 类型 / 开始时间 / 结束时间任一为空时「提交」不可用并提示 | tabCRMMarketActivity.name、tabCRMMarketActivity.type、tabCRMMarketActivity.startTime、tabCRMMarketActivity.endTime |
| RQ-CRM-0102 | 活动结束时间不得早于开始时间 | P0 | 结束时间早于开始时间时保存被阻止并提示 | tabCRMMarketActivity.startTime、tabCRMMarketActivity.endTime |
| RQ-CRM-0103 | 活动类型取值来自「市场活动类型」字典,可按需扩展 | P1 | 新建活动时类型下拉展示字典 ActivitiesType 的全部启用项 | tabCRMMarketActivity.type |
| RQ-CRM-0104 | 活动可登记预算与投入成本,金额须为非负数 | P1 | 预算或投入成本录入负数时保存被阻止并提示 | tabCRMMarketActivity.budget、tabCRMMarketActivity.cost |
| RQ-CRM-0105 | 活动可指定负责人,用于活动获客归属 | P2 | 负责人保存后可在活动详情展示,并可据此筛选活动 | tabCRMMarketActivity.director |
| RQ-CRM-0106 | 活动结束后可填写活动总结,并上传活动方案、现场照片等附件 | P2 | 活动总结保存后可在活动详情查看;附件存入 营销管理/市场活动 目录 | tabCRMMarketActivity.summary、tabCRMMarketActivity.files |
02. 线索管理
Section titled “02. 线索管理”| 编号 | 需求描述 | 优先级 | 验收标准 | 关联对象 |
|---|---|---|---|---|
| RQ-CRM-0201 | 线索录入时名称、来源为必填项 | P0 | 名称 / 来源任一为空时「提交」不可用并提示 | tabCRMLead.name、tabCRMLead.source |
| RQ-CRM-0202 | 新建线索的状态默认为「待分配」,负责人为空 | P0 | 保存后 satus = 待分配 且负责人字段为空 | tabCRMLead.satus |
| RQ-CRM-0203 | 负责人为空的线索自动进入线索池,线索池对全员公开可见 | P0 | 进入线索池页可查到负责人为空的线索,且不受「仅本人」数据范围限制 | tabCRMLead.satus |
| RQ-CRM-0204 | 在线索池中领取线索后,负责人置为当前用户,状态置为「未转换」 | P0 | 领取成功后负责人 = 当前登录用户,satus = 未转换,该线索不再出现在线索池 | tabCRMLead.satus |
| RQ-CRM-0205 | 销售主管可将线索池中的线索直接指派负责人,无需被指派人领取 | P1 | 指派成功后负责人为目标人员,线索状态置为「未转换」 | tabCRMLead.satus |
| RQ-CRM-0206 | 线索退回线索池时须选择退回原因,退回后清空负责人 | P0 | 未选择退回原因时「退回」不可用;退回成功后负责人为空、reason 有值并回到线索池 | tabCRMLead.reason |
| RQ-CRM-0207 | 状态为「未转换」的线索可转换为客户,转换后线索状态置为「已转换为客户」 | P0 | 转换成功后生成一条客户记录且 satus = 已转换为客户 | tabCRMLead.satus、tabCRMCustomer.lead |
| RQ-CRM-0208 | 线索可标记为「无效线索」或「废弃线索」,标记后不再出现在线索池 | P1 | 标记后 satus 分别为无效线索 / 废弃线索,线索池过滤条件不再命中该记录 | tabCRMLead.satus |
| RQ-CRM-0209 | 线索可关联市场活动,用于活动获客统计 | P1 | 选择活动后 markertActivity 指向该活动,可按活动反查线索 | tabCRMLead.markertActivity |
| RQ-CRM-0210 | 线索需记录「是否直销」与所属代理商两个归属维度 | P1 | isDirect = 否时代理商为必填;isDirect = 是时代理商可空 | tabCRMLead.isDirect、tabCRMLead.agent |
| RQ-CRM-0211 | 线索列表支持按状态、来源、意向等级、负责人、所属代理商组合筛选 | P1 | 设置筛选条件后列表仅展示命中的记录,清空条件后恢复全量 | tabCRMLead.satus、tabCRMLead.source、tabCRMLead.level |
03. 客户管理
Section titled “03. 客户管理”| 编号 | 需求描述 | 优先级 | 验收标准 | 关联对象 |
|---|---|---|---|---|
| RQ-CRM-0301 | 客户档案的名称、所属行业、客户来源为必填项 | P0 | 名称 / 所属行业 / 来源任一为空时「提交」不可用并提示 | tabCRMCustomer.name、tabCRMCustomer.trade、tabCRMCustomer.source |
| RQ-CRM-0302 | 客户负责人为空时自动进入客户公海池,公海池对全员公开 | P0 | 保存无负责人的客户后,该客户可在公海池页查到 | tabCRMCustomer.cooperator |
| RQ-CRM-0303 | 客户公海池支持「领取」,领取后负责人置为当前用户 | P0 | 领取成功后负责人 = 当前登录用户,该客户不再出现在公海池 | tabCRMCustomer.cooperator |
| RQ-CRM-0304 | 销售主管可将公海池客户直接分配负责人,也可将私有客户重新指派 | P1 | 分配/指派成功后负责人变更为目标人员 | tabCRMCustomer.cooperator |
| RQ-CRM-0305 | 客户退回公海池时须选择客户退回原因,退回后清空负责人 | P0 | 未选择退回原因时「退回」不可用;退回成功后负责人为空、reason 有值 | tabCRMCustomer.reason |
| RQ-CRM-0306 | 客户保存时按名称或统一社会信用代码查重,命中重复时阻止保存 | P0 | 存在同名或同统一社会信用代码的有效客户时保存被阻止,并列出重复记录 | tabCRMCustomer.name、tabCRMCustomer.credit |
| RQ-CRM-0307 | 联系人维护时姓名、常用电话为必填项,且可记录性别、职级、民族 | P1 | 姓名 / 常用电话任一为空时不可保存;性别、职级、民族取自对应字典 | tabCRMContact.name、tabCRMContact.phone |
| RQ-CRM-0308 | 一个联系人可维护多个地址,地址类型取自「地址类型」字典 | P1 | 同一联系人下可新增多条地址,地址类型下拉展示字典 AddressType 启用项 | tabCRMAddress.type、tabCRMAddress.contact |
| RQ-CRM-0309 | 客户项目维护时名称、所属客户、项目状态为必填项 | P0 | 名称 / 客户 / 项目状态任一为空时不可保存 | tabCRMCustomerProject.name、tabCRMCustomerProject.customer、tabCRMCustomerProject.status |
| RQ-CRM-0310 | 客户地图按客户的位置点位展示客户地理分布 | P1 | 已维护位置点位的客户在地图上按点位渲染,未维护点位的客户不参与渲染 | tabCRMCustomer.poi |
| RQ-CRM-0311 | 项目地图按客户项目的位置点位展示项目地理分布 | P1 | 已维护位置点位的客户项目在地图上按点位渲染,可按项目状态过滤 | tabCRMCustomerProject.poi、tabCRMCustomerProject.status |
| RQ-CRM-0312 | 客户需记录「是否直销」与所属代理商 | P1 | isDirect = 否时代理商为必填;isDirect = 是时代理商可空 | tabCRMCustomer.isDirect、tabCRMCustomer.agent |
| RQ-CRM-0313 | 合作伙伴作为交易主体维护,性质分为企业与个人 | P0 | 性质为「企业」时统一社会信用代码必填;为「个人」时可空 | tabCRMCooperator.attribute、tabCRMCooperator.credit |
| RQ-CRM-0314 | 合作伙伴记录合作状态与合作等级,用于客户分级管理 | P1 | 合作状态、合作等级分别取自字典 CooperationStatus、CooperationLevel | tabCRMCooperator.status、tabCRMCooperator.cooperationLevel |
04. 商机管理
Section titled “04. 商机管理”| 编号 | 需求描述 | 优先级 | 验收标准 | 关联对象 |
|---|---|---|---|---|
| RQ-CRM-0401 | 商机登记时名称、所属客户、商机阶段为必填项,编号自动生成 | P0 | 名称 / 客户 / 商机阶段任一为空时不可保存;保存后 code 非空且唯一 | tabCRMOpportunity.name、tabCRMOpportunity.customer、tabCRMOpportunity.stage |
| RQ-CRM-0402 | 商机阶段按「需求发现 → 需求确认 → 方案报价 → 商务谈判 → 赢单 / 输单」顺序推进 | P0 | 阶段下拉按上述顺序展示;置为赢单或输单后不再出现在「进行中」列表 | tabCRMOpportunity.stage |
| RQ-CRM-0403 | 商机可标注关键决策人,并维护一个或多个意向产品 | P1 | keyPerson 勾选状态可保存;意向产品可增删且保存后可回查 | tabCRMOpportunity.keyPerson、tabCRMOpportunity.product |
| RQ-CRM-0404 | 商机可关联客户项目与代理商,并记录是否直销 | P1 | isDirect = 否时代理商为必填;关联的客户项目须属于所选客户 | tabCRMOpportunity.customerProject、tabCRMOpportunity.agent |
| RQ-CRM-0405 | 报价单登记时报价日期、客户(合作伙伴)、负责人为必填项,编号自动生成 | P0 | 任一必填项为空时不可保存;保存后 number 非空且唯一 | tabCRMQuotation.date、tabCRMQuotation.cooperator、tabCRMQuotation.person |
| RQ-CRM-0406 | 报价明细按「数量 × 单价」计算未税金额,并按税率计算税金与含税金额 | P0 | 未税金额 = 数量 × 单价;税金 = 未税金额 × 税率;含税金额 = 未税金额 + 税金 | tabCRMQuotationDetail.quantity、tabCRMQuotationDetail.price、tabCRMQuotationDetail.taxRate |
| RQ-CRM-0407 | 报价明细支持折扣率与惠后金额,惠后金额 = 含税金额 − 优惠金额 | P1 | 录入折扣率后自动折算优惠金额;惠后金额 = 含税金额 − 优惠金额 | tabCRMQuotationDetail.discountRate、tabCRMQuotationDetail.discountedPrice |
| RQ-CRM-0408 | 报价单的三项汇总金额均取自明细合计 | P0 | 未税金额 / 税金 / 总金额分别等于全部明细对应字段之和;修改明细后汇总同步刷新 | tabCRMQuotation.money、tabCRMQuotation.tax、tabCRMQuotation.amount |
| RQ-CRM-0409 | 报价状态按「未报价 → 已报价 → 已采纳」流转 | P1 | 新建默认未报价;提交后置为已报价;客户采纳后置为已采纳 | tabCRMQuotation.status |
| RQ-CRM-0410 | 报价单可设置报价截止日期,超过截止日期后报价明细不可再编辑 | P0 | 当前日期晚于 deadline 时明细编辑入口不可用 | tabCRMQuotation.deadline |
| RQ-CRM-0411 | 报价单勾选「已下单」后可据此生成销售订单,订单关联该报价单 | P1 | 仅 status = 已采纳 的报价单显示「生成订单」入口;生成后报价状态标记为已下单 | tabCRMQuotation.isOrder、tabCRMQuotation.opportunity |
05. 洽谈管理
Section titled “05. 洽谈管理”| 编号 | 需求描述 | 优先级 | 验收标准 | 关联对象 |
|---|---|---|---|---|
| RQ-CRM-0501 | 洽谈计划登记待执行的跟进/拜访计划,须填写计划内容、负责人与计划时间 | P0 | 计划内容 / 负责人 / 计划时间任一为空时不可保存 | tabTasks |
| RQ-CRM-0502 | 洽谈记录须记录时间、洽谈方式、洽谈类型与处理结果 | P0 | 时间 / 方式 / 类型 / 处理结果任一为空时不可保存 | tabCRMNegotiation.time、tabCRMNegotiation.way、tabCRMNegotiation.type、tabCRMNegotiation.result |
| RQ-CRM-0503 | 洽谈方式与洽谈类型分别取自「洽谈方式」「洽谈类型」字典 | P1 | 下拉分别展示字典 NegotiationWay、NegotiationType 的启用项 | tabCRMNegotiation.way、tabCRMNegotiation.type |
| RQ-CRM-0504 | 洽谈记录须填写预计签单日期,用于销售预测 | P1 | 预计签单日期为空时不可保存;可按时间区间汇总预测签单金额 | tabCRMNegotiation.date |
| RQ-CRM-0505 | 洽谈记录可关联商机、客户项目、联系人、报价单、订单、合同与售后反馈 | P1 | 各关联字段保存后可反查对应记录,且被关联记录详情可查看洽谈记录列表 | tabCRMNegotiation.opportunity、tabCRMNegotiation.order、tabCRMNegotiation.contractSP |
| RQ-CRM-0506 | 洽谈计划完成后可生成对应的洽谈记录,两者一对一关联 | P2 | 由计划生成记录后,计划状态为已完成,且两者可互相跳转 | tabCRMNegotiation.tasks |
06. 订单合同
Section titled “06. 订单合同”| 编号 | 需求描述 | 优先级 | 验收标准 | 关联对象 |
|---|---|---|---|---|
| RQ-CRM-0601 | 销售订单登记时下单日期、客户(合作伙伴)、负责人为必填项,订单号自动生成 | P0 | 任一必填项为空时不可保存;保存后 number 非空且唯一 | tabCRMOrder.date、tabCRMOrder.cooperatorNew、tabCRMOrder.person |
| RQ-CRM-0602 | 订单明细按「数量 × 单价」计算未税金额,并按税率计算税金与含税金额,支持折扣率 | P0 | 未税金额 / 税金 / 含税金额按公式自动计算;录入折扣率后惠后金额同步刷新 | tabCRMOrderDetail.quantity、tabCRMOrderDetail.price、tabCRMOrderDetail.taxRate、tabCRMOrderDetail.discountedPrice |
| RQ-CRM-0603 | 订单汇总金额与待支付金额由明细与回款自动计算 | P0 | 未税金额 / 税金 / 总金额 / 合计 = Σ 明细对应字段;待支付金额 = 总金额 − 已回款 | tabCRMOrder.money、tabCRMOrder.tax、tabCRMOrder.amount、tabCRMOrder.receivable |
| RQ-CRM-0604 | 订单支付状态按「待支付 / 部分支付 / 全额支付 / 支付失败」维护,并据此计算回款比例 | P0 | 已回款 = 0 时状态为待支付;0 < 已回款 < 总金额 时为部分支付;已回款 ≥ 总金额 时为全额支付;回款比例 = 已回款 ÷ 总金额 | tabCRMOrder.payStatus、tabCRMOrder.received、tabCRMOrder.rate |
| RQ-CRM-0605 | 订单开票状态按「未开票 / 部分开票 / 全部开票 / 不需要开票」维护 | P1 | 已开票金额为 0 时状态为未开票;已开票 < 总金额 时为部分开票;否则为全部开票 | tabCRMOrder.billingStatus、tabCRMOrder.invoiced、tabCRMOrder.unInvoice |
| RQ-CRM-0606 | 订单到货状态按「未到货 / 部分到货 / 已到货」维护 | P1 | 状态取值来自字典 ReceiveStatus,且与订单明细的到货情况一致 | tabCRMOrder.receiveStatus |
| RQ-CRM-0607 | 订单记录已计价/未计价、已开票/未开票、已回款/未回款三组对账字段 | P1 | 已计价 + 未计价 = 总金额;已开票 + 未开票 = 总金额;已回款 + 未回款 = 总金额 | tabCRMOrder.priced、tabCRMOrder.unPriced、tabCRMOrder.received、tabCRMOrder.unReceived |
| RQ-CRM-0608 | 订单可关联商机、客户项目、成本利润中心、我方主体与代理商 | P1 | 关联的客户项目须属于订单客户;isDirect = 否时代理商为必填 | tabCRMOrder.opportunity、tabCRMOrder.customerProject、tabCRMOrder.CPC、tabCRMOrder.contractSubject |
| RQ-CRM-0609 | 销售合同须关联客户(合作伙伴)与订单,并记录不含税金额、税金、优惠金额、抹零与总金额 | P0 | 客户或订单为空时不可保存;总金额 = 不含税金额 + 税金 − 优惠金额 − 抹零 | tabCRMContractSP.cooperator、tabCRMContractSP.order、tabCRMContractSP.inCome、tabCRMContractSP.tax、tabCRMContractSP.total |
| RQ-CRM-0610 | 销售合同须经审批,审批通过后方可生效 | P0 | 提交后 approvalStatus = 审批中;驳回后可修改并重新提交;通过后合同状态置为生效 | tabCRMContractSP.approvalStatus |
| RQ-CRM-0611 | 开票资料须记录公司名称、税号、开户行与账号 | P1 | 公司名称或税号为空时不可保存;开票资料可被订单引用 | tabCRMInvoice.company、tabCRMInvoice.tax、tabCRMInvoice.bank、tabCRMInvoice.account |
| RQ-CRM-0612 | 客户账户须记录账户名称、开户行与账号,并标记是否有效 | P1 | 账户名称或账号为空时不可保存;停用账户不被新订单引用 | tabCRMAccount.name、tabCRMAccount.bank、tabCRMAccount.account、tabCRMAccount.isValid |
07. 退货管理
Section titled “07. 退货管理”| 编号 | 需求描述 | 优先级 | 验收标准 | 关联对象 |
|---|---|---|---|---|
| RQ-CRM-0701 | 退货申请须关联订单、填写退货原因与退货日期,单号自动生成 | P0 | 订单 / 原因 / 日期任一为空时不可保存;保存后 number 非空且唯一 | tabCRMReturn.order、tabCRMReturn.reason、tabCRMReturn.date |
| RQ-CRM-0702 | 退货明细可引用原订单明细,并记录退货数量与退货金额 | P0 | 选择订单明细后自动带入名称、规格、单位、数量与含税金额 | tabCRMReturnDetail.orderDetail、tabCRMReturnDetail.returnQuantity、tabCRMReturnDetail.returnMoney |
| RQ-CRM-0703 | 退货数量不得超过对应订单明细的订单数量 | P0 | 退货数量大于订单数量时保存被阻止并提示 | tabCRMReturnDetail.returnQuantity、tabCRMReturnDetail.quantity |
| RQ-CRM-0704 | 退货单须经审批,审批通过后回写退款金额 | P0 | 提交后 approvalStatus = 审批中;通过后退货单状态置为已通过并按明细回写 refundAmount | tabCRMReturn.approvalStatus、tabCRMReturn.refundAmount |
| RQ-CRM-0705 | 退货明细须同步记录未税金额、税金与含税金额 | P1 | 退货明细的未税金额 / 税金 / 含税金额按其数量与单价按公式计算 | tabCRMReturnDetail.money、tabCRMReturnDetail.tax、tabCRMReturnDetail.amount |
| RQ-CRM-0706 | 退货单须记录申请人,并支持上传退货凭证附件 | P2 | 申请人默认取当前用户且可修改;附件存入 营销管理/退货 目录 | tabCRMReturn.applicant、tabCRMReturn.files |
08. 产品管理
Section titled “08. 产品管理”| 编号 | 需求描述 | 优先级 | 验收标准 | 关联对象 |
|---|---|---|---|---|
| RQ-CRM-0801 | 产品登记时名称、单位为必填项,编码自动生成且唯一 | P0 | 名称或单位为空时不可保存;保存后 code 非空且唯一 | tabCRMProduct.name、tabCRMProduct.unit、tabCRMProduct.code |
| RQ-CRM-0802 | 产品可维护规格型号、参考单价、税率与采购指导价 | P1 | 参考单价与采购指导价须为非负数;税率取自字典 TaxRate | tabCRMProduct.specification、tabCRMProduct.price、tabCRMProduct.taxRate、tabCRMProduct.guidePrice |
| RQ-CRM-0803 | 产品按业务类型分类,业务类型支持树形层级 | P1 | 业务类型下拉按字典 BizType 的父子层级展示 | tabCRMProduct.bizType |
| RQ-CRM-0804 | 产品支持树形分类,可维护上级产品 | P2 | 选择上级产品后形成树形结构;上级产品不可选择自身或其后代 | tabCRMProduct.parent |
| RQ-CRM-0805 | 停用的产品不可被新报价单明细或订单明细选用 | P0 | isValid = 否 的产品不出现在明细行的产品选择列表中,历史明细不受影响 | tabCRMProduct.isValid |
09. 代理商管理
Section titled “09. 代理商管理”| 编号 | 需求描述 | 优先级 | 验收标准 | 关联对象 |
|---|---|---|---|---|
| RQ-CRM-0901 | 代理商登记时名称与等级为必填项,编码自动生成且唯一 | P0 | 名称或等级为空时不可保存;保存后 code 非空且唯一 | tabCRMAgent.name、tabCRMAgent.level、tabCRMAgent.code |
| RQ-CRM-0902 | 代理商须记录授权开始时间、授权到期时间、授权地域、授权范围与结算周期 | P1 | 授权到期时间早于授权开始时间时保存被阻止;授权地域与范围可自由填写 | tabCRMAgent.startTime、tabCRMAgent.expireTime、tabCRMAgent.agentArea、tabCRMAgent.scope、tabCRMAgent.settleCycle |
| RQ-CRM-0903 | 授权到期后代理商自动置为无效 | P0 | 当前日期晚于 expireTime 时 isValid 自动为否,且不再被新的线索/客户/商机选用 | tabCRMAgent.isValid、tabCRMAgent.expireTime |
| RQ-CRM-0904 | 代理商可关联线索、客户、商机、洽谈记录与订单,形成代理商业绩视图 | P2 | 被关联记录可在代理商详情下按类型查看 | tabCRMAgent.lead、tabCRMAgent.customer、tabCRMAgent.opportunity |
10. 售后管理
Section titled “10. 售后管理”| 编号 | 需求描述 | 优先级 | 验收标准 | 关联对象 |
|---|---|---|---|---|
| RQ-CRM-1001 | 售后反馈登记时问题描述、关联订单、提交人为必填项 | P0 | 问题描述 / 订单 / 提交人任一为空时不可保存 | tabCRMSupport.note、tabCRMSupport.order、tabCRMSupport.submitter |
| RQ-CRM-1002 | 售后状态按「未开始 / 进行中 / 已完成」维护 | P0 | 状态取值来自字典 SupportStatus;新建默认为未开始 | tabCRMSupport.status |
| RQ-CRM-1003 | 售后反馈须指定处理人,处理完成后置为已完成 | P1 | 未指定处理人时状态不可置为进行中;置为已完成后记录处理完成时间 | tabCRMSupport.status、tabCRMSupport.person |
| RQ-CRM-1004 | 售后反馈可关联客户(合作伙伴)与联系人,并支持上传附件 | P1 | 选择订单后自动带出客户与联系人;附件存入 营销管理/售后 目录 | tabCRMSupport.cooperator、tabCRMSupport.contact、tabCRMSupport.files |
| RQ-CRM-1005 | 售后处理过程可生成洽谈记录,用于记录沟通与处理结果 | P2 | 由售后反馈生成的洽谈记录 type = 售后,且可互相跳转 | tabCRMSupport.negotiation、tabCRMNegotiation.type |
11. 基础设置
Section titled “11. 基础设置”| 编号 | 需求描述 | 优先级 | 验收标准 | 关联对象 |
|---|---|---|---|---|
| RQ-CRM-1101 | 数据字典支持按分类维护字典项,字典项含名称、编码、启用、颜色、图标与父级编码 | P0 | 同一字典内编码唯一;同一字典内图标要么全有、要么全无且不重复;停用项(启用 = 0)不再出现在业务下拉中 | dictItems |
| RQ-CRM-1102 | 业务类型基础资料取自字典 BizType,支持树形层级 | P1 | 新增业务类型时可指定父级;父子层级按编码前缀体现 | tabCRMProduct.bizType |
| RQ-CRM-1103 | 计量单位基础资料取自字典 Unit | P1 | 新增计量单位后可被产品、报价明细、订单明细选用 | tabCRMProduct.unit、tabCRMOrderDetail.unit |
| RQ-CRM-1104 | 合同分类支持树形维护,含合同类型与是否启用 | P1 | 停用的合同分类不出现在合同维护的下拉中 | tabOAContractCategory(外部) |
| RQ-CRM-1105 | 我方主体须维护名称、简称、机构代码与营业范围 | P1 | 名称或机构代码为空时不可保存;停用主体不被新合同选用 | tabOAContractSubject(外部) |
| RQ-CRM-1106 | 成本利润中心须维护名称、代码与类型,类型分为成本中心与利润中心 | P1 | 类型取自字典 CostProfitCenterType;同一公司下代码唯一 | tabCRMFinaceCostProfitCenter.type、tabCRMFinaceCostProfitCenter.code |
| RQ-CRM-1107 | 基础资料停用后不影响历史单据已引用的数据 | P0 | 停用产品/代理商/成本利润中心后,历史报价、订单、合同仍可正常打开并展示原值 | tabCRMProduct.isValid、tabCRMAgent.isValid、tabCRMFinaceCostProfitCenter.isValid |
4. 实体关系
Section titled “4. 实体关系”erDiagram
direction LR
subgraph **营销管理**
subgraph **营销获客**
MA[tabCRMMarketActivity市场活动] {
long id "ID"
string name "名称"
kv type "类型"
date startTime "开始时间"
date endTime "结束时间"
decimal budget "预算"
decimal cost "投入成本"
string director "负责人"
md summary "活动总结"
file files "附件"
date createdAt "创建日期"
ref createdBy "创建人"
date updatedAt "最后修改日期"
ref updatedBy "最后修改人"
ref createdOrg "所属机构"
ref createdDept "所属部门"
}
LD[tabCRMLead线索] {
long id "ID"
string name "名称"
string code "编码"
kv source "来源"
kv satus "状态"
kv level "意向等级"
kv reason "退回原因"
ref marketActivity "市场活动"
ref agent "代理商"
bool isDirect "是否直销"
md note "线索描述"
file files "附件"
date createdAt "创建日期"
ref createdBy "创建人"
date updatedAt "最后修改日期"
ref updatedBy "最后修改人"
}
AG[tabCRMAgent代理商] {
long id "ID"
string name "名称"
string code "编码"
kv level "等级"
date startTime "授权开始时间"
date expireTime "授权到期时间"
string agentArea "授权地域"
md scope "授权范围"
string settleCycle "结算周期"
bool isValid "是否有效"
file files "附件"
date createdAt "创建日期"
ref createdBy "创建人"
date updatedAt "最后修改日期"
ref updatedBy "最后修改人"
ref createdOrg "所属机构"
ref createdDept "所属部门"
}
end
subgraph **客户关系**
CU[tabCRMCustomer客户] {
long id "ID"
string name "名称"
string code "编码"
kv source "来源"
kv reason "客户退回原因"
bool isDirect "是否直销"
ref lead "线索"
ref cooperator "合作伙伴"
ref agent "代理商"
point poi "位置"
date createdAt "创建日期"
ref createdBy "创建人"
date updatedAt "最后修改日期"
ref updatedBy "最后修改人"
}
CO[tabCRMCooperator合作伙伴] {
long id "ID"
string name "客户名称"
string code "编码"
kv attribute "性质"
kv trade "所属行业"
kv creditRating "信誉等级"
kv status "合作状态"
kv cooperationLevel "合作等级"
string credit "统一社会信用代码"
point poi "位置"
ref person "负责人"
ref collaborator "协作人"
file files "附件"
date createdAt "创建日期"
ref createdBy "创建人"
date updatedAt "最后修改日期"
ref updatedBy "最后修改人"
ref createdOrg "所属机构"
ref createdDept "所属部门"
}
CT[tabCRMContact联系人] {
long id "ID"
string name "姓名"
string phone "常用电话"
string department "部门"
string position "职务"
kv gender "性别"
kv rank "职级"
kv nation "民族"
string weChat "微信号"
string email "邮箱"
date birthday "出生日期"
file files "附件"
date createdAt "创建日期"
ref createdBy "创建人"
date updatedAt "最后修改日期"
ref updatedBy "最后修改人"
}
AD[tabCRMAddress地址] {
long id "ID"
kv type "类型"
string add "地址"
string addressee "收件人"
string phone "电话"
bool isValid "是否有效"
ref contact "联系人"
date createdAt "创建日期"
ref createdBy "创建人"
date updatedAt "最后修改日期"
ref updatedBy "最后修改人"
}
CP[tabCRMCustomerProject客户项目] {
long id "ID"
string name "名称"
string fullName "全称"
kv status "项目状态"
string price "造价"
string address "地址"
point poi "位置"
ref customer "客户"
file files "附件"
date createdAt "创建日期"
ref createdBy "创建人"
date updatedAt "最后修改日期"
ref updatedBy "最后修改人"
ref createdOrg "所属机构"
ref createdDept "所属部门"
}
CC[tabCRMCoopContacts联系人任职] {
long id "ID"
string department "部门"
string job "职务"
date startDate "起始时间"
date endDate "结束日期"
bool onJob "在职"
kv rank "职级"
ref contact "联系人"
ref cooperator "合作伙伴"
ref customerProject "客户项目"
date createdAt "创建日期"
ref createdBy "创建人"
date updatedAt "最后修改日期"
ref updatedBy "最后修改人"
}
end
subgraph **销售过程**
OP[tabCRMOpportunity商机] {
long id "ID"
string name "名称"
string code "编号"
kv stage "商机阶段"
bool keyPerson "关键决策人"
ref customer "客户"
ref customerProject "客户项目"
ref contact "联系人"
ref agent "代理商"
bool isDirect "是否直销"
file files "附件"
date createdAt "创建日期"
ref createdBy "创建人"
date updatedAt "最后修改日期"
ref updatedBy "最后修改人"
ref createdOrg "所属机构"
ref createdDept "所属部门"
}
QU[tabCRMQuotation报价单] {
long id "ID"
string number "编号"
date date "报价日期"
date deadline "报价截止日期"
kv status "报价状态"
decimal money "未税金额"
decimal tax "税金"
decimal amount "总金额"
decimal discountAmount "优惠金额"
decimal roundDownAmount "抹零"
bool isOrder "是否下单"
ref opportunity "商机"
ref cooperator "合作伙伴"
ref contact "联系人"
ref person "负责人"
ref agent "代理商"
file files "附件"
date createdAt "创建日期"
ref createdBy "创建人"
date updatedAt "最后修改日期"
ref updatedBy "最后修改人"
ref createdOrg "所属机构"
ref createdDept "所属部门"
}
QD[tabCRMQuotationDetail报价单明细] {
long id "ID"
ref quotation "报价单"
ref product "产品"
string specification "规格型号"
decimal quantity "数量"
decimal price "单价"
decimal money "未税金额"
kv taxRate "税率"
decimal tax "税金"
decimal amount "含税金额"
float discountRate "折扣率"
decimal discountAmount "优惠"
decimal discountedPrice "惠后金额"
}
NG[tabCRMNegotiation洽谈记录] {
long id "ID"
date time "时间"
kv way "方式"
kv type "类型"
kv result "处理结果"
md content "内容纪要"
date planSignDate "预计签单日期"
ref person "负责人"
ref collaborator "协作人"
file files "附件"
date createdAt "创建日期"
ref createdBy "创建人"
date updatedAt "最后修改日期"
ref updatedBy "最后修改人"
ref createdOrg "所属机构"
ref createdDept "所属部门"
}
TK[tabTasks洽谈计划] {
long id "ID"
string title "标题"
kv status "状态"
kv priority "优先级"
date planTime "计划时间"
ref person "负责人"
date createdAt "创建日期"
ref createdBy "创建人"
date updatedAt "最后修改日期"
ref updatedBy "最后修改人"
}
end
subgraph **交易与售后**
OD[tabCRMOrder销售订单] {
long id "ID"
string number "订单号"
date date "下单日期"
kv type "订单类型"
kv ways "采销方式"
decimal money "未税金额"
decimal tax "税金"
decimal amount "总金额"
decimal total "合计"
decimal receivable "待支付金额"
decimal received "已回款"
decimal unReceived "未回款"
float rate "回款比例"
kv payStatus "支付状态"
kv billingStatus "开票状态"
kv receiveStatus "到货状态"
ref cooperator "合作伙伴"
ref contact "联系人"
ref person "负责人"
ref collaborator "协作人"
ref opportunity "商机"
ref customerProject "客户项目"
ref costProfit "成本利润中心"
ref contractSubject "我方主体"
ref agent "代理商"
bool isDirect "是否直销"
file files "附件"
date createdAt "创建日期"
ref createdBy "创建人"
date updatedAt "最后修改日期"
ref updatedBy "最后修改人"
ref createdOrg "所属机构"
ref createdDept "所属部门"
}
ODD[tabCRMOrderDetail订单明细] {
long id "ID"
ref order "订单"
ref product "产品"
kv bizType "业务类型"
string specification "规格型号"
kv unit "单位"
decimal quantity "数量"
decimal price "单价"
decimal money "未税金额"
kv taxRate "税率"
decimal tax "税金"
decimal amount "含税金额"
float discountRate "折扣率"
decimal discountedPrice "惠后金额"
}
CS[tabCRMContractSP销售合同] {
long id "ID"
string number "合同编号"
decimal inCome "不含税金额"
decimal tax "税金"
decimal total "合计"
decimal discountAmount "优惠金额"
decimal roundDownAmount "抹零"
decimal amount "总金额"
kv approvalStatus "审批状态"
bool isDirect "是否直销"
ref cooperator "合作伙伴"
ref order "订单"
ref contact "联系人"
ref customerProject "客户项目"
ref costProfit "成本利润中心"
ref agent "代理商"
file files "附件"
date createdAt "创建日期"
ref createdBy "创建人"
date updatedAt "最后修改日期"
ref updatedBy "最后修改人"
ref createdOrg "所属机构"
ref createdDept "所属部门"
}
IV[tabCRMInvoice开票资料] {
long id "ID"
string company "公司名称"
string tax "税号"
string address "地址"
string phone "电话"
string bank "开户行"
string account "账号"
kv ourOwnType "类型"
bool isValid "是否有效"
ref cooperator "合作伙伴"
date createdAt "创建日期"
ref createdBy "创建人"
date updatedAt "最后修改日期"
ref updatedBy "最后修改人"
ref createdOrg "所属机构"
ref createdDept "所属部门"
}
AC[tabCRMAccount客户账户] {
long id "ID"
string name "名称"
string bank "开户行"
string account "账号"
string key "联行号"
kv ourOwnType "类型"
bool isValid "是否有效"
ref cooperator "合作伙伴"
date createdAt "创建日期"
ref createdBy "创建人"
date updatedAt "最后修改日期"
ref updatedBy "最后修改人"
ref createdOrg "所属机构"
ref createdDept "所属部门"
}
RT[tabCRMReturn销售退货] {
long id "ID"
string number "单号"
date date "日期"
string reason "原因"
decimal refundAmount "退款金额"
kv approvalStatus "审批状态"
ref order "订单"
ref cooperator "合作伙伴"
ref contact "联系人"
ref applicant "申请人"
file files "附件"
date createdAt "创建日期"
ref createdBy "创建人"
date updatedAt "最后修改日期"
ref updatedBy "最后修改人"
ref createdOrg "所属机构"
ref createdDept "所属部门"
}
RTD[tabCRMReturnDetail退货明细] {
long id "ID"
ref returnOrder "退货单"
ref orderDetail "订单明细"
string name "名称"
string specification "规格型号"
string unit "单位"
decimal quantity "订单数量"
decimal returnQuantity "退货数量"
decimal returnMoney "退货金额"
decimal money "未税金额"
decimal tax "税金"
decimal amount "含税金额"
kv approvalStatus "审批状态"
}
SP[tabCRMSupport售后反馈] {
long id "ID"
md note "问题描述"
kv status "状态"
ref person "处理人"
ref submitter "提交人"
ref order "订单"
ref cooperator "合作伙伴"
ref contact "联系人"
file files "附件"
date createdAt "创建日期"
ref createdBy "创建人"
date updatedAt "最后修改日期"
ref updatedBy "最后修改人"
ref createdOrg "所属机构"
ref createdDept "所属部门"
}
end
subgraph **基础资料**
PD[tabCRMProduct产品] {
long id "ID"
string code "编码"
string name "名称"
string specification "规格型号"
kv unit "单位"
decimal price "参考单价"
kv taxRate "税率"
kv bizType "业务类型"
string guidePrice "采购指导价"
bool isValid "是否有效"
ref parent "上级产品"
file files "附件"
date createdAt "创建日期"
ref createdBy "创建人"
date updatedAt "最后修改日期"
ref updatedBy "最后修改人"
}
CPC[tabCRMFinaceCostProfitCenter成本利润中心] {
long id "ID"
string name "名称"
string code "代码"
kv type "类型"
bool isValid "是否有效"
kv approvalStatus "审批状态"
ref cooperator "关联公司"
date createdAt "创建日期"
ref createdBy "创建人"
date updatedAt "最后修改日期"
ref updatedBy "最后修改人"
ref createdOrg "所属机构"
ref createdDept "所属部门"
}
end
end
OS[tabOAContractSubject我方主体] {
long id "ID"
string name "名称"
string shortName "简称"
string code "机构代码"
}
OC[tabOAContractCategory合同分类] {
long id "ID"
string name "名称"
string code "编码"
kv contractType "合同类型"
bool isDone "是否启用"
}
MA ||--o{ LD : "活动获客"
AG ||--o{ LD : "代理归属"
LD ||--o| CU : "转换为客户"
CO ||--o{ CU : "所属主体"
CU ||--o{ CP : "拥有项目"
CU ||--o{ OP : "产生商机"
CP ||--o{ OP : "项目商机"
CT ||--o{ AD : "联系地址"
CO }o--o{ CT : "联系人"
CO ||--o{ CC : "任职"
CT ||--o{ CC : "任职"
CP ||--o{ CC : "项目任职"
OP ||--o{ QU : "商机报价"
QU ||--|{ QD : "报价明细"
CO ||--o{ QU : "报价对象"
PD ||--o{ QD : "报价产品"
TK ||--o| NG : "计划转记录"
CO ||--o{ NG : "洽谈对象"
OP ||--o{ NG : "商机洽谈"
CO ||--o{ OD : "下达订单"
OD ||--|{ ODD : "订单明细"
PD ||--o{ ODD : "订购产品"
OP ||--o{ OD : "商机成交"
CP ||--o{ OD : "项目订单"
CPC ||--o{ OD : "成本归集"
OD ||--o{ CS : "订单转合同"
CO ||--o{ CS : "合同主体"
CS ||--o{ IV : "开票信息"
CO ||--o{ IV : "开票抬头"
CO ||--o{ AC : "收付账户"
OD ||--o{ RT : "订单退货"
RT ||--|{ RTD : "退货明细"
ODD ||--o{ RTD : "明细退货"
OD ||--o{ SP : "售后订单"
CO ||--o{ SP : "售后对象"
SP ||--o{ NG : "售后洽谈"
CO ||--o{ CPC : "所属公司"
OC ||--o{ CS : "合同分类"
OS ||--o{ CS : "签约主体"
5. 角色定义与权限矩阵
Section titled “5. 角色定义与权限矩阵”- 销售员、销售主管、市场专员、售后专员、财务为角色,由本业务维护
- 销售部、管理层为群组,由本业务维护
| 功能 | 销售员 | 销售主管 | 市场专员 | 售后专员 | 财务 | 销售部 | 管理层 |
|---|---|---|---|---|---|---|---|
| 市场活动 | 查看 | 查看 | ✓ | — | 查看 | 查看 | ✓ |
| 活动类型 | — | — | 管理 | — | — | — | 查看 |
| 线索池 | 查看、领取 | 查看、分配、退回 | 查看 | — | — | 查看 | ✓ |
| 线索 | 查看、添加、编辑(限本人)、退回 | ✓(限所在部门) | — | — | — | 查看 | ✓ |
| 公海池 | 查看、领取 | 查看、分配、退回 | — | — | — | 查看 | ✓ |
| 客户 | 查看、添加、编辑(限本人) | ✓(限所在部门) | — | — | 查看(限资金字段) | 查看 | ✓ |
| 联系人 | 查看、添加、编辑 | ✓ | — | — | — | 查看 | ✓ |
| 地址 | 查看、添加、编辑 | ✓ | — | — | — | 查看 | ✓ |
| 客户项目 | 查看、添加、编辑 | ✓ | — | — | — | 查看 | ✓ |
| 客户地图 / 项目地图 | 查看 | 查看 | — | — | — | 查看 | ✓ |
| 商机 | 查看、添加、编辑(限本人) | ✓(限所在部门) | — | — | — | 查看 | ✓ |
| 报价单 | 查看、添加、编辑 | ✓ | — | — | 查看 | — | ✓ |
| 洽谈计划 / 洽谈记录 | 查看、添加、编辑(限本人) | ✓(限所在部门) | — | 添加(限售后) | 查看 | — | ✓ |
| 销售订单 | 查看、添加、编辑(限本人) | ✓(限所在部门) | 查看 | 查看 | 查看、编辑(限资金字段) | 查看 | ✓ |
| 销售合同 | 查看、添加、提交审批 | 审批、查看 | 查看 | 查看 | 审批、查看 | 查看 | ✓ |
| 开票资料 / 客户账户 | 查看、添加、编辑 | ✓ | — | — | ✓ | — | ✓ |
| 销售退货 | 查看、添加、提交审批 | 审批、查看 | 查看 | 查看 | 审批、查看 | — | ✓ |
| 产品 | 查看 | 查看 | — | 查看 | — | 查看 | ✓ |
| 代理商 | 查看 | 查看、添加、编辑 | — | 查看 | — | 查看 | ✓ |
| 售后反馈 | 查看、添加 | 查看、编辑 | 查看 | ✓ | — | 查看 | ✓ |
| 基础设置 | 查看 | 查看 | 查看 | 查看 | 查看 | 查看 | ✓ |
6. 审批流程
Section titled “6. 审批流程”- 销售合同审批:销售员提交后由销售主管审批,金额超过 50 万时继续流转至管理层(角色 GM)审批;财务在合同生效前确认金额与开票信息
- 销售员填写合同并提交,流转至销售主管
- 销售主管通过后判断合同总金额:≤ 50 万流程结束;> 50 万继续流转至角色 GM
- 任一节点驳回则退回销售员修改后重新提交
swimlane-beta
subgraph 销售员
A[填写销售合同并提交]
end
subgraph 销售主管
B{审批是否通过?}
end
subgraph 财务
C[确认金额与开票信息]
end
subgraph 角色 GM
D{审批是否通过?}
end
subgraph 系统
A --> B
B -- 否 --> E[驳回,退回修改]
B -- 是 --> F{判断合同金额}
F -- "≤ 50 万" --> C
F -- "> 50 万" --> D
D -- 否 --> E
D -- 是 --> C
C --> G[合同生效]
end
classDef branch fill:#E5F6DA,stroke:#569230,color:#111;
class E branch;
- 销售退货审批:申请人提交退货单后由销售主管审批,涉及退款金额超过 5 万时继续流转至财务负责人审批
flowchart LR;
A(申请人提交退货单) --> B{销售主管审批}
B -->|通过,金额 ≤ 5 万| D(退款并回冲订单)
B -->|通过,金额 > 5 万| C{财务审批}
B -.->|驳回| E(退回修改)
C -->|通过| D
C -.->|驳回| E
classDef key fill:#fef9c3,stroke:#ca8a04,color:#111
classDef branch fill:#E5F6DA,stroke:#569230,color:#111;
class D key;
class E branch;
7. 提醒/通知规则
Section titled “7. 提醒/通知规则”- 通用约定:
- 区分两类动作:提醒 = 发送至指定个人的系统消息;通知 = 发送至群聊的消息
- 事件触发(实时):
- 线索被领取或分配时,提醒线索负责人:线索名称、来源与建议首次跟进时间
- 线索被退回线索池时,提醒原负责人:退回原因
- 客户被分配或退回公海池时,提醒对应负责人:客户名称与退回原因
- 商机阶段发生变更时,通知到销售群:商机名称、客户、原阶段与新阶段
- 销售合同提交审批时,提醒审批人:合同编号、客户与合同金额
- 销售合同审批通过后,提醒销售员与财务:合同编号与生效日期
- 订单支付状态变更为「全额支付」时,提醒订单负责人:订单号与回款金额
- 售后反馈提交时,提醒处理人:订单号、问题描述与提交人
- 到期预警(按提前量触发):
- 报价单报价截止日期前 1d,提醒报价单负责人
- 代理商授权到期前 30d,提醒代理商负责人
- 销售合同到期前 30d/15d/7d,提醒合同负责人
- 客户超过 30d 无任何洽谈记录时,提醒客户负责人
- 周期报表(定时发送):
- 每周一 9:00,发送通知到销售群:上周新增线索数、新增商机数、成交订单数与回款金额
- 每月 1 日 9:00,发送通知到管理层群:上月新增客户数、客户公海池存量、商机漏斗与逾期未回款订单清单
8. 编码规则
Section titled “8. 编码规则”- 线索: tabCRMLead.code :
LD-{createdAt(yyyyMM)}-{seq} - 客户: tabCRMCustomer.code :
CU-{createdAt(yyyyMM)}-{seq} - 合作伙伴: tabCRMCooperator.code :
CO-{createdAt(yyyyMM)}-{seq} - 商机: tabCRMOpportunity.code :
OP-{createdAt(yyyy)}-{seq} - 报价单: tabCRMQuotation.number :
QT-{date(yyyyMMdd)}-{seq} - 销售订单: tabCRMOrder.number :
SO-{date(yyyyMMdd)}-{seq} - 销售合同: tabCRMContractSP.number :
CT-{createdAt(yyyyMM)}-{seq} - 销售退货: tabCRMReturn.number :
RT-{date(yyyyMMdd)}-{seq} - 产品: tabCRMProduct.code :
PD-{seq} - 代理商: tabCRMAgent.code :
AG-{seq} - 成本利润中心: tabCRMFinaceCostProfitCenter.code :
CP-{seq}
9. 文件存储目录
Section titled “9. 文件存储目录”- 市场活动:tabCRMMarketActivity.files :
营销管理/市场活动/{startTime(yyyy)}/{name} - 线索:tabCRMLead.files :
营销管理/线索/{createdAt(yyyy)}/{code} - 客户项目:tabCRMCustomerProject.files :
营销管理/客户项目/{customer.name} - 商机:tabCRMOpportunity.files :
营销管理/商机/{createdAt(yyyy)}/{code} - 报价单:tabCRMQuotation.files :
营销管理/报价单/{date(yyyy)}/{number} - 洽谈记录:tabCRMNegotiation.files :
营销管理/洽谈记录/{time(yyyy)}/{cooperator.name} - 销售订单:tabCRMOrder.files :
营销管理/订单/{date(yyyy)}/{number} - 销售合同:tabCRMContractSP.files :
营销管理/合同/{createdAt(yyyy)}/{number} - 销售退货:tabCRMReturn.files :
营销管理/退货/{date(yyyy)}/{number} - 产品:tabCRMProduct.files :
营销管理/产品/{bizType} - 代理商:tabCRMAgent.files :
营销管理/代理商/{code} - 售后反馈:tabCRMSupport.files :
营销管理/售后/{createdAt(yyyy)}/{order.number}
- 应用:
- 强依赖:有巢脚手架(v0.5.2.20260825)
- 弱依赖:行政管理-OA(合同分类、我方主体)
- 插件:
2. 可提炼插件
Section titled “2. 可提炼插件”- 公海池:线索池 / 客户公海池共用的「数据池」能力,支持负责人为空自动入池、领取、分配、退回与退回原因,可提炼为通用插件供其他应用复用
- 业务对象地图:基于对象位置点位展示地理分布的地图视图,可提炼为通用插件
3. 数据字典
Section titled “3. 数据字典”线索状态 #LeadStatus | 分类:营销管理/CRM
商机阶段 #Stage | 分类:营销管理/CRM
报价状态 #QuoteStatus | 分类:营销管理/CRM
订单状态 #OrderStatus | 分类:营销管理/CRM
支付状态 #PayStatus | 分类:营销管理/CRM
开票状态 #BillingStatus | 分类:营销管理/CRM
到货状态 #ReceiveStatus | 分类:营销管理/CRM
售后状态 #SupportStatus | 分类:营销管理/CRM
合作状态 #CooperationStatus | 分类:营销管理/CRM
项目状态CRM #ProjectStatus | 分类:营销管理/CRM
合同状态 #ContractStatus | 分类:行政管理/OA
审批状态 #ApprovalStatus | 分类:系统/System
洽谈类型 #NegotiationType | 分类:营销管理/CRM
洽谈方式 #NegotiationWay | 分类:营销管理/CRM
处理结果 #NegotiationResult | 分类:营销管理/CRM
市场活动类型 #ActivitiesType | 分类:营销管理/CRM
线索/客户来源 #Source | 分类:营销管理/CRM
退回原因 #Reason | 分类:营销管理/CRM
意向等级 #IntentionLevel | 分类:营销管理/CRM
业务类型 #BizType | 分类:营销管理/CRM
单位 #Unit | 分类:营销管理/CRM
税率 #TaxRate | 分类:营销管理/CRM
所属行业 #Trade | 分类:营销管理/CRM
采销方式 #ProcurementSalesWay | 分类:营销管理/CRM
采销类型 #OrderType | 分类:营销管理/CRM
我方对方 #OurOwnType | 分类:营销管理/CRM
合作伙伴性质 #Attribute | 分类:营销管理/CRM
伙伴类型 #PartnerType | 分类:营销管理/CRM
合作等级 #CooperationLevel | 分类:营销管理/CRM
信誉等级 #CreditRating | 分类:营销管理/CRM
代理商等级 #AgentLevel | 分类:营销管理/CRM
成本利润中心类型 #CostProfitCenterType | 分类:营销管理/CRM
地址类型 #AddressType | 分类:营销管理/CRM
职级 #Rank | 分类:营销管理/CRM
民族 #Nation | 分类:营销管理/CRM
性别 #Sex | 分类:系统/System
学历 #Degree | 分类:系统/System
专业 #EduMajor | 分类:系统/System
机构类型 #OrganizationType | 分类:系统/System
人员类型 #PersonType | 分类:系统/System
文件版本记录
Section titled “文件版本记录”20261010-V1.0.0
Section titled “20261010-V1.0.0”初始版本