---
name: baoyu-stock-forecast
description: 宝锐生物备货预测技能 — 基于华为管理体系和客户分层原则，生成Q2+H2备货建议Excel
triggers:
  - 备货预测
  - 备货建议
  - Q2H2备货
  - 库存预测
  - 备货计划
---

# 宝锐生物备货预测技能

## 触发条件
- 用户提到"备货预测"、"备货建议"、"Q2H2备货"、"库存预测"
- 用户提供了备货相关的Excel数据文件
- 用户要求基于华为管理体系生成备货计划

## 输入文件
- 源文件：`/Users/liuxinyuan/Desktop/宝锐生物2026下半年备货建议表.xlsx`
- Sheet名：`备货建议表`
- 列结构：排名 | 货号 | 品名 | 规格 | 半年销量 | 月均 | 订单数 | 优先级 | 建议备货量

## 核心逻辑

### 产品分层（华为客户分层原则）
```
A类-爆款：排名≤20 或 优先级=高   → 安全库存14天
B类-常规：优先级=中               → 安全库存10天
C类-长尾：月均>0 且 非A非B       → 安全库存7天
D类-按单：月均<1（含0销量）       → 安全库存0天，Q2不备货
```

### 计算公式
```python
基础备货量 = round(半年销量 × 0.65)  # 半年×1.3后分摊50%到Q2/H2

if 分层 == "D类-按单":
    Q2备货 = 0
    H2备货 = 基础备货量              # H2一次性（下半年展会/招标旺季）
else:
    Q2备货 = 基础备货量             # Q2和H2各半
    H2备货 = 基础备货量

全年合计 = Q2备货 + H2备货
```

### 产品线分类（货号前缀）
```
BR1 → 分子类(qPCR)
BR2 → 核酸纯化类
BR3 → MasterMix类
BR4 → 蛋白/生化类
BP- → 高端/mRNA类
E10 → 特殊类
MD2 → 诊断原料类
359 → 耗材类
M52 → 仪器类
```

## 输出Excel（5个Sheet）

### Sheet 1: 宝锐2026年Q2+H2备货总表
列：排名 | 货号 | 品名 | 规格 | 产品线 | 分层 | 2026H1月均 | 订单数 | 优先级 | Q2备货量 | H2备货量 | 全年合计 | 安全库存天数 | 建议备货依据
- 冻结首行
- 分层颜色：A类=F2CC（黄）B类=DAEEF3（蓝）C类=F2F2F2（灰）D类=FFE6E6（红）

### Sheet 2: A类爆款备货明细
- 仅A类（20品），加粗Q2/H2/全年列，蓝色标题

### Sheet 3: B+C类常规品明细
- B类（5品）+ C类（40品），分色区分B/C

### Sheet 4: D类按单采购清单
- 月均<1产品，Q2=0，H2一次性，灰色标题

### Sheet 5: 备货汇总
- SKU数 | Q2 | H2 | 全年 | 安全库存天数 | 说明

## 规格补充（从PDF产品册提取详细规格）

当用户要求补充详细规格（如把"包"改为"100T/包"）时，执行以下步骤：

### 输入
- 产品册PDF路径（通常在 `~/work/产品资料/` 下，如 `生命科学产品册 2026.4.10.pdf`）
- 待补充规格的Excel文件（通常就是上一阶段生成的备货表）

### 提取流程
1. **安装依赖**：`pip install PyMuPDF`（如有venv则安装到venv）
2. **提取PDF文本**：`fitz.open(pdf_path)` → 遍历所有页 `page.get_text()`
3. **匹配货号-规格对**：对Excel中每个货号，在PDF文本中搜索：
   - 先搜完整货号（如 `BR1D303-01`）
   - 如未命中，搜基础货号（如 `BR1D303`），根据后缀序号匹配对应规格位
   - 规格格式识别：`\d+[TUmLμLgG]+` 如 `100T`、`500mL`、`800U`、`250μL×2`
4. **更新Excel**：覆盖规格列的值，保持原Excel所有Sheet结构不变
5. **输出新文件**：在原文件名加 `_含规格` 后缀，如 `备货建议表_含规格.xlsx`

### 常见匹配问题
- `-00` 后缀不出现在产品册中，需根据同系列其他后缀推断（如 `BR1D303-00`→`100T/包`，因 `-01`=100T）
- 部分货号完全不在产品册中（定制/旧编码），标记为未匹配，建议用户手动核对
- 产品册中规格值后跟单位（`/包`、`/瓶`、`/管`、`/盒`、`/个`），从产品册表格或常识推断

## 关键参数速查
- D类Q2不备货：月均<1，按单采购规避积压
- A类爆款安全库存14天：覆盖客户响应+供应商交期
- H2>D类多出100单位：下半年招标/展会旺季前置

## 执行命令
```bash
python3 /tmp/gen_baorui_stock.py
```
脚本存放于 `/tmp/gen_baorui_stock.py`，首次运行需确认源文件路径。
