# PRD：PDIA智能报价与审批平台

> 文档状态：目标版本产品基线（供后续开发任务使用）
>
> 版本：v1.0
>
> 更新日期：2026-07-16
>
> 当前实现与目标能力并不完全一致，差距见第 14 节。
>
> 报价业务规则来源：[PDIA报价应对梳理.md](PDIA报价应对梳理.md)。当源材料与本 PRD 的产品范围冲突时，以本 PRD 的角色收敛、页面范围和开发优先级为准；具体价格数据仍以经确认的数据表为准。

## 1. 产品定义

PDIA智能报价与审批平台是面向公司内部销售和价格审批人的一体化工作平台。

平台通过AI理解客户需求、解析项目资料、补充缺失信息并生成PDIA技术方案；确定性的报价引擎负责计算标准价格、折扣参考价、成本和毛利；当报价满足审批触发条件时，系统生成审批申请，由审批人处理并锁定最终价格。

产品核心闭环：

```text
需求录入 → AI需求分析 → 技术方案 → 报价计算 → 审批判断
                                              ├─ 无需审批 → 形成可用报价
                                              └─ 需要审批 → 审批人处理 → 锁定最终价格
```

## 2. 产品目标

1. 让销售在一个平台内完成需求整理、技术方案、报价测算和价格申请。
2. 用统一价目表和确定性公式替代当前硬编码固定价格，保证报价可解释、可追溯。
3. 将产品经理统一抽象为“审批人”，以最少角色完成特殊价格管控。
4. 销售不接触成本、毛利和内部批价逻辑；审批人获得完成价格判断所需的信息。
5. 每次报价和审批都保存规则版本、价格版本、汇率和操作记录，避免历史结果被配置变更污染。

## 3. 本期范围与非目标

### 3.1 本期范围

- 统一登录和角色鉴权。
- 申请人工作台、审批人工作台、配置管理入口。
- AI需求分析、资料解析、补充追问、方案与拓扑生成。
- 标准报价、25折参考价、20折参考价计算。
- 销售目标价录入、成本与毛利反算。
- 自动判断是否需要审批。
- 审批通过、调整后通过、驳回和重新提交。
- 报价版本、审批事件和配置版本留痕。
- 销售仅查看自身数据；审批人查看审批所需内部数据。

### 3.2 暂不纳入

- SSD独立工作台。
- 观察者角色和经营报表大屏。
- 多级、会签、加签、转签审批。
- 飞书、企业微信等外部审批系统集成。
- 自动发送正式报价给客户。
- 自动抓取外汇行情。
- 允许审批人突破公司10%硬性毛利底线。
- 复杂合同、订单、开票和回款管理。

## 4. 角色与权限

业务角色只保留“申请人”和“审批人”；“配置管理员”是平台运维角色，不参与报价业务判断。

| 权限 | 申请人（销售） | 审批人（产品经理等） | 配置管理员 |
| --- | --- | --- | --- |
| 创建询价、上传资料、生成方案 | 允许 | 可选 | 不允许 |
| 查看项目和报价 | 仅本人创建 | 全部待审批及已处理 | 按运维需要 |
| 计算标准报价 | 允许 | 允许查看 | 可测试配置 |
| 提交价格审批 | 允许 | 不允许 | 不允许 |
| 查看成本、毛利、固定审批阈值和批价依据 | 不允许 | 允许 | 按配置需要 |
| 通过、调整后通过、驳回 | 不允许 | 允许 | 不允许 |
| 维护价格、成本、汇率、渠道和账号 | 不允许 | 不允许 | 允许 |

权限原则：

- 同一账号可拥有多个角色，并在登录后切换工作台。
- 服务端必须执行字段级和记录级鉴权，不能只依靠前端隐藏。
- 返回给申请人的接口响应不得包含成本、毛利、内部审批阈值或判断明细。
- 审批人的业务称谓可以是产品经理，但系统权限统一使用 `approver`。

## 5. PDIA报价对象与口径

### 5.1 标准报价对象

标准PDIA报价包含：

- 海外互联网出口承诺带宽。
- 默认1个固定IP。
- 默认1台OneWAN1200-H1 CPE，按月租/摊销口径计入。
- 标准首次交付，默认包含一次派工。

默认不包含：

- 突发带宽。
- 额外固定IP。
- 额外CPE。
- 非标准CPE。
- 超出默认一次派工范围的非标准现场服务。

### 5.2 地域分类

| 地域类别 | 国家或地区 |
| --- | --- |
| 1类 | 香港（HK） |
| 2类 | 日本（JP）、新加坡（SG）、美国（US）、英国（UK）、德国（DE）、马来西亚（MY）、台湾（中国）（TW） |

系统保存具体国家或地区代码，同时使用地域类别匹配标准价格表。

### 5.3 计价单位

页面同时展示：

- 月租总价，单位为“元/月”。
- 折算单价，单位为“元/M/月”。
- 承诺带宽，单位为Mbps。

不得用“单M价格”替代月租总价，也不得将二者混为同一字段。

## 6. 标准报价引擎

### 6.1 标准价公式

```text
目录价（USD/月） = 固定月租（USD/月） + 每M单价（USD/M/月） × 承诺带宽（M）
目录价（CNY/月） = 目录价（USD/月） × 报价时生效汇率
折算单价（CNY/M/月） = 目录价（CNY/月） ÷ 承诺带宽（M）
```

标准报价表按地域类别和带宽区间匹配，当前业务源材料定义的区间为：

- 1M–10M。
- 10M–50M。
- 50M–100M。
- 100M–500M。

区间遵循左闭右开。500M及以上不使用标准报价表，进入特殊报价路径。

### 6.2 标准折扣档

系统计算并保存：

- 目录价：`list_price`。
- 25折参考价：`list_price × 0.25`。
- 20折参考价：`list_price × 0.20`。

标准折扣档是确定性计算结果，不由AI生成。

经业务确认，标准折扣档调整为目录价、25折和20折。20折是最低标准报价档；系统使用地域每M成本和实际CPE月摊销成本核验其10%毛利安全边界，固定IP不计入毛利成本。低于20折时按固定毛利区间判断是否审批；成本待补或无法核验时不得自动直通。

### 6.3 CPE计算

- 默认套餐包含1台H1。
- 额外CPE按型号、数量和合同期限增加月度成本或报价。
- 合同期限只支持12、24、36个月，分别取1年、2年、3年CPE摊销档；不提供60个月选项。
- CPE采用性能替换口径：需求带宽不超过300M时使用默认H1；超过H1性能时依次替换为S1、S2或X2。替换时从整包价中剥离默认H1月摊销，再计入实际替换型号费用，不重复保留H1成本。
- 性能阶梯为：`≤300M → H1`、`>300M～1.2G → S1`、`>1.2G～2G → S2`、`>2G～5G → X2`；超过5G转专项报价。

### 6.4 汇率和版本快照

- 汇率由配置管理员人工维护。
- 每次报价保存实际使用的汇率、标准报价表版本、成本版本和规则版本。
- 后续配置变化不得回写或改变历史报价结果。

### 6.5 价格输出

报价结果至少包含：

- 地域及地域类别。
- 承诺带宽和可选突发带宽。
- 月租目录价和折算单价。
- 25折、20折参考价。
- CPE型号、数量和合同期限。
- 固定IP数量。
- 包含项和不包含项。
- 价格版本、汇率和计算时间。
- 当前结果是“参考价”“待审批价”还是“已批准价”。

## 7. AI与报价边界

AI负责：

- 从录入字段、Word、Excel、CSV、文本、图片和标书中提取报价参数。
- 判断缺失信息并生成追问。
- 生成接入方案、客户机房拓扑、风险和客户沟通话术。
- 根据项目上下文解释报价包含项。

AI不得：

- 生成、修改或猜测价格。
- 自行确定成本或毛利。
- 绕过报价服务和审批判断。
- 把审批人可见的内部数据写进销售话术。

AI提取的地域、带宽、CPE、合同期限、目标价等参数必须由申请人确认后，才能进入报价计算。

## 8. 报价阶段与场景

### 8.1 报价场景

申请人创建项目时选择：

- 新客户首询。
- 老客户扩容/续约。
- 招投标/应标。
- 竞品比价/防守。
- 中标后折扣。

场景用于决定追问和审批材料，不直接修改确定性报价公式。

### 8.2 客户来源

- 直客。
- 渠道。

渠道继续记录渠道名称，以及“我方定价”或“渠道指定目标价”。渠道指定价复用销售目标价测算，不建设独立价格引擎。

### 8.3 自动阶段判断

系统按已确认信息自动判断：

| 阶段 | 最小信息 | 输出 |
| --- | --- | --- |
| 初步询价 | 地域、带宽、预算或竞品价 | 非承诺指导信息或标准价参考 |
| 方案确认 | 初询信息、站点/拓扑、CPE型号和数量 | 技术方案和标准报价建议 |
| 决定性报价 | 最终配置、合同期限、目标价、竞争信息 | 待确认的最终商务报价 |

申请人不手动选择阶段；系统判断后允许申请人查看和纠正识别结果。

## 9. 审批规则

### 9.1 审批触发条件

命中任意条件即创建审批申请：

- 申请价按完整成本反算后的毛利率处于10%（含）至20%（不含）区间。
- 决定性报价。
- 中标后折扣。
- 合同期限低于12个月。
- 价格引擎无法匹配的非标准配置。
- 承诺带宽达到或超过500M。
- 配置管理员定义的其他特殊报价规则。

标准目录价、25折和经成本核验安全的20折均可作为无需审批的标准报价动作；规则必须可配置并带版本。

### 9.2 毛利路由

```text
申请价 >= 20折标准价，且20折安全边界已核验
  → 若未命中阶段或特殊配置审批条件，可直接使用

申请价 < 20折标准价，且申请价毛利率 >= 20%
  → 若未命中阶段或特殊配置审批条件，可直接使用

10% <= 申请价毛利率 < 20%
  → 直接创建审批申请

申请价毛利率 < 10%
  → 系统拒绝，不允许提交为可批准价格
```

阶段审批条件优先于毛利直通条件：决定性报价和中标后折扣即使毛利较高，仍需审批人确认。

毛利路由采用固定阈值，不由AI分析或动态生成百分比：20%是直接使用阈值，10%是公司硬性底线。历史报价和竞品价格仅用于P2的初步询价指导，不改变该路由。

### 9.3 审批动作

审批人只有三个业务动作：

1. **通过**：接受申请人提交的价格。
2. **调整后通过**：审批人输入批准价格，系统重新计算毛利；低于10%时禁止通过。
3. **驳回**：必须填写具体原因，可补充建议价格或配置调整建议。

审批人不能修改客户原始需求和技术方案。若报价配置需要变化，应由申请人复制原申请、修改配置并重新提交。

### 9.4 审批状态

| 状态 | 含义 |
| --- | --- |
| `draft` | 申请人尚未完成报价参数确认 |
| `calculated` | 已完成报价计算，尚未提交审批 |
| `pending_approval` | 等待审批人处理 |
| `approved` | 按申请价通过 |
| `approved_with_adjustment` | 审批人调整价格后通过 |
| `rejected` | 审批人驳回 |
| `system_rejected` | 低于10%等硬性规则导致系统拒绝 |
| `cancelled` | 申请人主动取消 |

终态记录不得覆盖。可直接使用、已通过、调整后通过、已驳回、系统拒绝或取消后，申请人均可继续发起下一轮价格申请；每轮生成新的报价版本，并通过 `previous_quote_id` 关联原记录。等待审批期间禁止并行发起下一轮。方案页按轮次展示申请价、申请理由、状态、批准价、审批意见和完成时间。

## 10. 功能模块与页面

### 10.1 公共入口

- `/login`：企业账号登录。
- 登录后根据角色进入默认工作台。
- 多角色账号可切换工作台。

### 10.2 申请人工作台

建议路由：

- `/sales`：我的项目、待审批、已驳回、最近完成。
- `/sales/projects/new`：新建询价。
- `/sales/projects/[projectId]/analysis`：AI分析和补充信息。
- `/sales/projects/[projectId]/proposal`：方案、拓扑、报价和问答。
- `/sales/quick-quote`：不创建完整方案的快速标准报价。
- `/sales/quotes/[quoteId]`：报价版本、审批状态和审批意见。

申请人方案页应展示：

- 客户需求和报价参数确认区。
- 技术方案和客户机房拓扑。
- 目录价、25折、20折和申请价。
- 价格包含项、不包含项和版本信息。
- 是否需要审批及原因，但不展示成本、毛利和内部红线。
- 当前审批状态、审批意见和最终批准价格。
- 客户沟通话术和方案AI助手。

报价明细采用固定三行结构：①带宽（出口）、②设备（实际CPE型号）、③合计。申请人视图中的设备行只展示客户报价口径或“已包含”，不得展示CPE内部月摊销成本；成本、毛利和内部路由明细仅在审批人视图展示。

### 10.3 审批人工作台

建议路由：

- `/approvals`：待审批、即将超时、今日已处理。
- `/approvals/[approvalId]`：审批详情。
- `/approvals/history`：本人已处理和全部历史记录。

审批详情应展示：

- 客户、场景、渠道和申请人。
- 原始需求、资料摘要和技术方案。
- 报价配置、目录价、申请价和折扣率。
- 成本构成、毛利率、10%/20%固定审批阈值和规则判断。
- 历史同类报价、竞品参考及数据可信度。
- 销售申请理由。
- 通过、调整后通过和驳回操作。
- 审批摘要和价格参考卡沿用销售端金额规范：大号金额仅显示整数和“元”，周期单位放在左上角灰色标签中；毛利率保持百分比格式。

### 10.4 配置管理入口

建议路由：

- `/admin/users`：账号和角色。
- `/admin/rates`：标准报价表。
- `/admin/costs`：地域出口每M成本、CPE成本和其他参与毛利计算的成本；固定IP报价配置单独维护，不进入毛利成本。
- `/admin/cpe`：CPE目录和摊销。
- `/admin/exchange-rates`：汇率。
- `/admin/channels`：渠道枚举。
- `/admin/rules`：审批和折扣规则。
- `/admin/audit-logs`：配置操作日志。

## 11. 核心数据对象

### 11.1 项目 `projects`

保存客户、场景、渠道、需求、报价参数确认状态、创建人和当前方案状态。

### 11.2 报价 `quotes`

每次计算或重新提交生成独立版本，至少保存：

- 项目、创建人和上一版本ID。
- 地域、带宽、突发带宽、合同期限。
- CPE性能评估、实际替换型号和数量、固定IP数量。
- 目录价、25折、20折、申请价和批准价。
- 月租总价和单M价格。
- 成本总额和毛利率。
- 报价阶段、报价场景和客户来源。
- 报价表、成本表、汇率和规则版本快照。
- 是否需要审批及触发原因。
- 状态和时间戳。

### 11.3 审批 `approvals`

每个需要审批的报价对应一条当前审批记录，保存审批人、状态、申请理由、申请价格、批准价格、审批意见和完成时间。

### 11.4 审批事件 `approval_events`

以追加写方式保存提交、通过、调整后通过、驳回、取消和重新提交事件。事件日志不得修改或删除。

### 11.5 配置数据

- `pdia_standard_rates`：标准报价表。
- `exchange_rate_configs`：汇率版本。
- `region_costs`：地域出口每M月成本，毛利计算时乘以承诺带宽。
- `fixed_ip_configs`：固定IP报价及数量配置，不参与毛利成本计算。
- `cpe_catalog`：CPE规格和摊销。
- `competitor_prices`：竞品价格与可信度。
- `quote_history`：历史报价参考。
- `pricing_rules`：折扣、红线和审批规则版本。
- `users`、`roles`、`user_roles`：账号和权限。

## 12. 安全、审计与非功能要求

### 12.1 鉴权与数据隔离

- 所有业务页面必须登录。
- 申请人查询必须按 `created_by` 过滤。
- 审批接口必须校验 `approver` 角色。
- 配置接口必须校验 `admin` 角色。
- 成本、毛利和内部规则字段使用独立审批人接口返回。

### 12.2 审计

- 报价计算、提交审批和审批动作记录操作人、时间、前后状态和版本。
- 配置变更保存旧值、新值、操作人和生效时间。
- 不记录模型思维过程、API Key或客户资料原文到普通应用日志。

### 12.3 一致性

- 金额使用定点小数或最小货币单位存储，不使用浮点数直接结算。
- 报价计算、毛利计算和审批判断在同一服务端事务或一致性边界内完成。
- 已批准报价不可被后续配置变更影响。
- AI不可修改报价对象中的金额和版本字段。

### 12.4 可用性

- AI失败时，标准报价和审批流程仍可使用。
- 价格配置无法匹配时，不返回猜测价格，改为“需特殊报价”。
- 审批提交和处理接口必须防重复提交。

## 13. 关键流程验收标准

### 13.1 标准报价

- 输入地域、任意有效带宽和合同期限后，系统匹配正确地域类别和带宽区间。
- 目录价严格按 `固定月租 + 每M单价 × 带宽` 计算，再使用报价时汇率折算。
- 页面同时展示月租总价、单M价格、25折和20折。
- 报价保存价格表和汇率版本，修改配置后历史结果不变。

### 13.2 资料与AI

- Word、Excel、CSV、文本和图片解析内容进入同一项目上下文。
- AI能预填地域、带宽、CPE和合同期限，但未经申请人确认不能计算正式报价。
- AI修改方案或拓扑时，报价金额保持不变。

### 13.3 审批

- 命中审批条件的报价不能绕过审批成为最终批准价。
- 申请人看不到成本、毛利和内部红线。
- 审批人能看到完整批价依据并执行三个审批动作。
- 调整后通过时重新计算毛利，低于10%无法提交。
- 驳回必须填写原因；重新提交生成新版本，原记录保持不变。
- 已批准报价包含批准人、批准时间、批准价格和完整版本快照。

### 13.4 权限

- 申请人无法访问其他销售的项目和报价。
- 非审批人不能调用审批接口。
- 非管理员不能修改价格、成本、汇率和规则。
- 多角色账号可以切换工作台，但每次请求仍按对应权限校验。

## 14. 当前实现与目标差距

当前可复用能力：

- Next.js页面和服务端API基础。
- 多格式资料上传、解析和本机持久化。
- AI需求分析、缺失信息追问、方案生成和方案问答。
- 动态客户机房拓扑及确定性校验。
- AI不能修改服务端报价的安全边界。
- 已落地连续带宽两段式正式报价、人民币分计价、目录价/25%/20%计算和专项报价分流。
- 已建立费率、汇率、地域每M成本、固定IP配置、CPE、规则、报价版本、报价项和配置快照结构化表。
- 方案生成引用已持久化的同一报价版本，AI调整方案时继续锁定完整报价对象。

当前尚未达到本 PRD 的部分：

- 当前为本地账号和服务端会话，尚未对接公司统一身份服务和组织范围。
- 标准折扣档已调整为25折和20折；20折仅在地域与CPE成本完整、核验后毛利不低于10%时作为标准动作直接使用。
- 地域成本按“每M月成本 × 承诺带宽”计入毛利，固定IP不计入毛利成本。
- CPE已调整为性能替换：H1性能不足时替换为S1/S2/X2，整包价剥离H1后计入实际替换型号；突发带宽和额外固定IP的计价规则仍按专项报价处理。
- 当前管理页面是只读开发占位，不是可用配置中心。
- 项目、分析、方案和聊天仍保存在单一应用状态中；报价与审批领域已结构化。

当前正式报价以报价快照记录的费率、汇率、成本和规则版本为准；管理占位页不得作为配置修改入口。

## 15. 开发优先级

### P0：价格可信

1. 建立结构化标准报价、汇率、地域每M成本、固定IP配置和CPE数据。
2. 实现连续带宽的确定性报价引擎。
3. 实现报价版本和配置快照。
4. 用真实权威数据验证目录价、25折和20折，并验证20折的10%毛利安全边界。

实施状态（2026-07-16）：P0规则已按最新决策修订。目录价和25%/20%算术使用确定性报价引擎；地域成本按每M月成本乘以带宽，固定IP退出毛利成本，CPE按性能替换。每个报价版本已固化地域成本、实际CPE摊销、总成本和固定阈值快照，报价项落为“带宽＋设备＋合计”三行；20折能否直通以该版本地域和CPE成本核验结果为准。

### P1：业务闭环

1. 登录、申请人和审批人权限。
2. 报价参数确认和目标价测算。
3. 审批触发规则和状态机。
4. 申请人工作台、审批人工作台和审批动作。
5. 报价版本、审批事件和重新提交。

实施状态（2026-07-16）：P1已完成首版并按最新规则修订。已提供申请人、审批人、管理员和多角色账号，销售记录按创建人隔离；已实现目标价、阶段和理由录入，目录价/25折/经成本核验安全的20折直接使用，低于标准档时毛利达到20%可直接使用、10%至20%转审批、低于10%系统拒绝，以及通过、调整后通过、驳回和驳回后新版本重提。审批事件只追加，写操作具备幂等和乐观锁。审批人读取报价版本快照中的地域成本、实际CPE成本、总成本和毛利，销售报价与工作流DTO不返回这些字段；非标准目标价及成本待补地域的毛利路由要求完整成本数据可用。

### P2：配置与增强

1. 配置管理员界面和配置审计。
2. 历史报价、竞品价格参考和初步询价指导区间。
3. 审批提醒、超时提示和筛选。
4. 报价单导出和客户沟通材料。

实施状态（2026-07-16）：P2已完成首版。`/admin` 已改为版本化配置中心，可维护标准费率、汇率、地域每M成本、CPE摊销、账号角色、历史价和竞品价；每次配置变更创建新生效版本并追加不可变操作日志，历史报价继续引用原快照。系统按同地域、相近带宽样本生成低位/中位/高位初询指导，销售仅获得聚合区间，审批人可查看具体依据，指导结果不参与成本、毛利和固定审批路由。审批待办新增24小时SLA、到期提醒及场景/地域/关键词筛选。可直接使用或已批准报价可导出脱敏HTML报价单和文本沟通材料，待审批、拒绝及专项核价禁止导出。方案与报价长页面在宽屏提供极简悬浮章节导航，支持当前章节高亮、悬停显示全称、平滑定位和返回顶部；窄屏自动隐藏以避免遮挡正文。

## 16. 已确认实施决策与剩余开放项

2026-07-16确认：

1. 标准折扣档改为25折和20折；目录价、25折、经成本核验安全的20折无需审批，低于20折进入固定毛利区间路由。
2. 标准首次交付默认包含一次派工，删除“派工费200元/2小时”独立模块和报价项。
3. 非默认CPE改为性能替换：H1性能不足时按带宽替换为S1/S2/X2，剥离默认H1后计入实际型号。
4. 合同期限最多3年，只提供12、24、36个月选项。
5. 固定IP不计入毛利成本；毛利率按`（对外报价－地域每M成本×带宽－实际CPE成本）÷对外报价`计算。
6. 毛利率不使用AI动态红线：毛利达到20%可直接使用，10%（含）至20%（不含）直接转审批，低于10%系统拒绝；阶段和特殊配置审批条件优先。
7. 初步询价指导区间、历史价和竞品价在P2实现，仅作为价格参考，不改变固定毛利路由。

剩余开放项：

- 暂无与P0/P1报价和审批规则相关的实施前待确认事项。
