# 宋学伟上线全链路修复记录（2026-07-29）

## 修复清单

### 1. USER_AREA_MAP 全称key缺失 → 客诉隔离全部失效
**问题**：`USER_AREA_MAP` 用简称（`大客户部`/`销售拓展部`）做key，但登录后`state.user.dept`是全称（`诊断原料大客户销售部`/`诊断原料销售拓展部`），导致 `getUserAreas()` 对所有非admin用户返回dept自身而非area → 客诉area过滤全部匹配失败。

**修复**：在 `USER_AREA_MAP` 中增加全称key：
```javascript
var USER_AREA_MAP = {
  '大客户部':'大客户', '销售拓展部':'销售拓展部',
  '诊断原料大客户销售部':'大客户', '诊断原料销售拓展部':'销售拓展部',
  '诊断原料销售部':'销售拓展部',
  '浙江':'浙江', '广东':'广东'
};
```

### 2. 客诉area过滤过宽 → 需要双重过滤
**问题**：仅按area过滤后，宋学伟看到销售拓展部全部62条客诉（含彭冠华、刘虹晶、林潇等人的），但实际仅3条是宋学伟作为操作人/创建人的。

**修复**：在 `renderComplaints` 中增加操作人过滤：
```javascript
var isAdmin = (state.user || {}).role === 'admin';
var userName = (state.user||{}).name;
if (!isAdmin && userName) {
  items = items.filter(function(c) {
    var ops = (c.operator||[]).concat(c.creator||[]);
    return ops.indexOf(userName) >= 0;
  });
}
```

### 3. 三年逐月数据隔离
**问题**：`three_year_monthly.json` 是公司级聚合，无per-user版本。

**修复**：非admin用户按年度销售额占比等比分摊：
```javascript
var custs = getFilteredCustomers();
var u24 = custs.reduce(function(s,c){return s+(c.sales_2024||0)},0);
var r24 = t24 ? u24/t24 : 0;
d['2024'][String(m)] = Math.round((src['2024'][m]*r24) || 0);
```
全年合计来自`_key_customers.json`的`sales_2024/2025/2026`汇总。

### 4. _key_customers.json 缺少新人 → 看板Top10为空
**根因**：`_key_customers.json` 只有赵云浩/张立娅/刘新元的75家客户。

**修复**：从 `diag_customers.json` 提取宋学伟36家客户，合并到 `_key_customers.json`，运行 `merge_workbench_data.py` 重新生成 `workbench_data.json`，部署到CloudBase。

### 5. 订单管理Tab精简
删除了所有分析面板（统计卡片/客户Top5/订单类型/物流异常/按部门/签收弹窗/飞书底栏/分析周期切换），仅保留：标题 + 明细标题 + 查看全部按钮 + 筛选器 + 表格。

### 6. 看板KPI卡片删除
删除了4张卡片：客户数/2026价税合计/本月价税/联系人。

## 验证结果

| 指标 | 修复前 | 修复后 |
|------|:--:|:--:|
| 区域 | 华东（错误） | 江苏 ✅ |
| KPI目标 | 0 | 250万 ✅ |
| 订单管理 | 2353.7万（全公司） | 20.2万（个人） ✅ |
| 客诉 | 0条（匹配失败） | 3条（area+operator双重过滤） ✅ |
| 看板Top10 | 空 | 36家（英科新创181.6万为首） ✅ |
| 三年逐月 | 全公司数据 | 个人比例分摊 ✅ |
