# 宝锐生物 · 销售日报 架构

## 结构（9板块）

| # | 板块 | 数据源 | 频率 |
|---|------|------|------|
| ① | KPI 速览 | kpi_progress → workbench_data内嵌 | 每日00:00 cron |
| ② | 全员活动 | MCP 活动 MQL | 每日 |
| ③ | 重点客户动向 | MCP + _key_customers(KA/A过滤) | 每日 |
| ④ | 竞品动态 | 活动描述关键词提取 | 每日 |
| ⑤ | 订单与回款 | MCP订单 + 活动描述 | 每日 |
| ⑥ | 客诉预警 | 售后MCP(新增+未闭环) | 每日 |
| ⑦ | 市场动态·诊断原料 | Web+IMA+竞品库 | 每日 |
| ⑧ | 市场动态·生命科学 | MCP生命科学部+Web | 每日 |
| ⑨ | 物流异常预警 | shipment_status.shipment | 每日 |

## 分权限推送

| 用户 | 内容范围 | open_id |
|------|---------|------|
| 刘新元 | 全版（9板块完整） | ou_901b790c9afdda4a8f14554962b32664 |
| 赵云浩 | 仅本人KPI+客户+通用板块 | ou_7fab49a17fecc17934456d76a45d0ca0 |
| 宋学伟 | 仅本人KPI+客户+通用板块 | 需管理员扩大飞书App通讯录权限 |

## KPI 管线（v2·2026-07-30）

### 数据流
```
MCP 销售订单(MQL) → 按单据编号去重
  → get_workitem_brief(fields=['role_7dd6e0']) ← 获取销售员
  → 按销售员汇总价税合计
  → kpi_progress.json
  → merge_workbench_data.py ← 合并到 workbench_data.json
  → tcb hosting deploy workbench_data.json ← CloudBase
  → 工作台看板刷新 ✅
```

### 关键 Pitfalls

| P# | 症状 | 根因 | 修复 |
|----|------|------|------|
| P15 | MQL查不到销售员 | 销售员是角色(role_7dd6e0)非字段 | get_workitem_brief查角色 |
| P17 | kpi_progress部署后看板不变 | 工作台读workbench_data内嵌kpiProgress | merge_workbench_data后部署 |
| P14 | 引用2024研报当2026事实 | URL日期戳判断错误 | 用实际执行文件替代预测 |
| P16 | 顺丰661单月结卡号不匹配 | checkPhoneNo需收件人手机 | 脚本phone4(o)逻辑正确 |

### 顺丰物流状态判定
- remark含"已派送至"=已签收（先于"派送"判断）
- opCode: 80=签收, 54=揽收, 204/30=派送
- checkPhoneNo=收件人手机后4位，非宝锐注册号
