# 客户分级体系：KA/A/B/C → 大客户部/重点/非重点

## 背景

2026年7月起，诊断原料作战室的客户分级从原来的金额自动分级（KA>100w/A>30w/B>3w/C<3w）改为基于销售员归属+重点客户清单的静态三级体系。

## 三级定义

| 级别 | 定义 | 识别方式 |
|------|------|----------|
| **大客户部** | 张立娅+赵云浩+王昕伟+黄明月 的客户 | `salespeople` 字段包含任一KA销售员 |
| **重点** | 销售拓展部83家重点客户清单 | 名称匹配+集团映射反查 |
| **非重点** | 其余所有客户 | 兜底 |

## 大客户部销售员

```python
KA_SALES = {'张立娅', '赵云浩', '王昕伟', '黄明月'}
```

注意：
- 黄明月已离职，客户移交张立娅，但历史客户仍需归入大客户部
- 王昕伟仅2024年在职（537w/13客户），数据可能被build_diag遗漏
- 张立娅对应ERP中的"大客户1"，赵云浩对应"大客户2"

## 重点客户清单匹配逻辑

83家重点客户分布在12名销售拓展部销售员名下。匹配时需要三级策略：

```python
def is_key_cust(customer, key_list, group_map):
    name = customer['name']
    # 1. 模糊匹配（清单名和客户名互相包含）
    for kc in key_list:
        if kc in name or name in kc:
            return True
    # 2. 集团映射反查（客户是集团，其子公司在清单中）
    for cust_orig, grp in group_map.items():
        if grp == name:
            for kc in key_list:
                if kc in cust_orig or cust_orig in kc:
                    return True
    # 3. 特殊硬编码（科华→天隆集团等）
    if name == '天隆集团':
        return True
    return False
```

## 常见名称变体

部分清单名称与系统内集团名有细微差异：

| 清单名称 | 系统内名称 | 差异 |
|----------|-----------|------|
| 英科新创（苏州）科技有限公司 | 英科新创（苏州）生物科技有限公司 | "科技" vs "生物科技" |
| 深圳迈瑞生物医疗电子有限公司 | 深圳迈瑞生物医疗电子股份有限公司 | 缺"股份" |
| 杭州微策生物技术有限公司 | 杭州微策生物技术股份有限公司 | 缺"股份" |
| 江苏默乐生物科技股份有限公司 | 默乐集团 | 集团聚合 |
| 深圳生科原技术有限公司 | 深圳生科原集团 | 集团聚合 |

## 集团映射速查

| 子公司 | 集团 | 备注 |
|--------|------|------|
| 广东海锐生物技术 | 海大集团 | |
| 广州双螺旋基因技术 | 双螺旋集团 | |
| 福建省水产研究所 | 水产所集团 | |
| 厦门宝太生物科技 | 宝太集团 | |
| 厦门万泰凯瑞生物技术 | 万泰集团 | |
| 深圳生科原技术 | 深圳生科原集团 | |
| 北京英和领源生物技术 | 英和领源集团 | |
| 广州远奥生物科技 | 广州远奥集团 | |
| 广州维伯鑫生物科技 | 广州维伯鑫集团 | |
| 上海科华生物 | 天隆集团 | 用户指定 |
| 深圳市积光生物科技 | 深圳市海泰集团 | |
| 深圳市奥斯卡动物医学 | 伯劳特集团 | |
| 重庆巴斯德生物医药科技 | 美吉生物集团 | |
| 深圳市爱医生物科技 | 深圳市易瑞集团 | |

## LTC漏斗数据生成

```python
ltc = {
    "current": {"period": "当前", "大客户部": N1, "重点": N2, "非重点": N3},
    "monthly": [{"period": "当前", ...}],
    "quarterly": [{"period": "当前", ...}],
    "tier_values": {"大客户部": 金额, "重点": 金额, "非重点": 金额}
}
```

## 作战室HTML改动

LTC图表从4级(KA/A/B/C)改为3级：
- labels: `['大客户部','重点','非重点']`
- 颜色: `['#1a73e8','#0d904f','#9e9e9e']`
- 横列数: `grid-template-columns:repeat(4,1fr)` (3级+周期)
- data读取: `data['大客户部']` 替代 `data.KA`
