销售报价模块支持多Sheet模板导入,模板结构参考销售台账:
1. 报价单数据Sheet:包含报价单基本信息
2. 报价产品数据Sheet:包含产品明细信息
| 字段 | 说明 | 是否必填 |
|---|---|---|
| 报价单号 | 报价单编号(不填自动生成) | 否 |
| 客户名称 | 客户名称 | 是 |
| 业务员 | 销售人员姓名 | 否 |
| 报价日期 | 格式yyyy-MM-dd | 否 |
| 有效期至 | 格式yyyy-MM-dd | 否 |
| 付款方式 | 如"月结30天" | 否 |
| 交货周期 | 如"7天" | 否 |
| 备注 | 其他说明 | 否 |
| 字段 | 说明 | 是否必填 |
|---|---|---|
| 报价单号 | 关联报价单数据Sheet的报价单号 | 是 |
| 产品大类 | 产品分类名称 | 是 |
| 规格型号 | 产品规格型号 | 是 |
| 单位 | 计量单位 | 否 |
| 数量 | 报价数量 | 是 |
| 含税单价 | 单价(元) | 是 |
| 含税总价 | 总价(元) | 否(不填自动计算) |
| 备注 | 产品备注 | 否 |
请求 GET /sales/quotation/downloadTemplate
响应
- Excel文件下载,包含两个Sheet:
- 报价单数据(含示例数据)
- 报价产品数据(含示例数据)
请求
```
POST /sales/quotation/import
Content-Type: multipart/form-data
file: [Excel文件]
```
响应json { "code": 200, "msg": "操作成功", "data": { "id": 1, "batchNo": "QT_IMP_20260612143000", "fileName": "报价单.xlsx", "totalCount": 5, "successCount": 5, "newCount": 5, "failCount": 0, "status": "completed", "createTime": "2026-06-12 14:30:00", "createUserName": "张三" } }
业务逻辑
产品关联:通过报价单号将产品数据关联到对应的报价单
审批流程:导入成功后自动创建审批流程
降价记录:相同规格型号的产品对比历史价格,自动记录降价
错误码
| 错误信息 | 说明 |
|---|---|
| 请先配置报价审批模板,无法导入 | 系统未配置报价审批模板 |
| 读取文件失败 | Excel文件格式错误 |
| 报价单数据为空,请检查模板内容 | 报价单Sheet无数据 |
请求 GET /sales/quotation/importLog/list?pageNum=1&pageSize=10
响应json { "code": 200, "data": { "total": 20, "records": [ { "id": 1, "batchNo": "QT_IMP_20260612143000", "fileName": "报价单.xlsx", "totalCount": 5, "successCount": 5, "newCount": 5, "failCount": 0, "status": "completed", "createUserName": "张三", "createTime": "2026-06-12 14:30:00" } ] } }
请求 GET /sales/quotation/priceHistory/list?quotationProductId=123
响应json { "code": 200, "data": [ { "id": 1, "productName": "电池组件A", "specification": "MODEL-A-100W", "oldPrice": 150.00, "newPrice": 120.00, "priceChange": -30.00, "changeReason": "降价", "importBatch": "QT_IMP_20260612143000", "importTime": "2026-06-12 14:30:00", "createUserName": "张三" } ] }
下载模板
│
▼
填写报价单数据Sheet(每行一个报价单)
填写报价产品数据Sheet(通过报价单号关联)
│
▼
上传文件
│
▼
检查审批模板是否存在
│
├── 不存在 ──► 错误:"请先配置报价审批模板,无法导入"
│
└── 存在 ──► 解析两个Sheet数据
│
▼
遍历报价单数据
│
├── 检查报价单号是否已存在 ──► 已存在则跳过
│
├── 创建报价单记录
├── 关联产品数据(通过报价单号匹配)
├── 记录降价历史(对比历史价格)
└── 创建审批流程
│
▼
返回导入结果
报价单数据Sheet
| 报价单号 | 客户名称 | 业务员 | 付款方式 | 交货周期 |
|----------|----------|--------|----------|----------|
| QT202606120001 | 示例客户 | 张三 | 月结30天 | 7天 |
报价产品数据Sheet
| 报价单号 | 产品大类 | 规格型号 | 单位 | 数量 | 含税单价 | 含税总价 |
|----------|----------|----------|------|------|----------|----------|
| QT202606120001 | 电池组件 | MODEL-A-100W | 片 | 100 | 150.00 | 15000.00 |
| QT202606120001 | 电池组件 | MODEL-B-200W | 片 | 50 | 200.00 | 10000.00 |
需执行:docs/sales_quotation_price_history.sql