# WorkBuddy 销售工作台 V1 · 迁移审计

生成时间：2026-11-10
审计对象：`工作台工程/sales-workbench.zip`
工作副本：`工作台工程/workbuddy_v1/`

## 一、这套东西到底是什么

它不是本地 `脚本/销售工作台服务.py` 的移植版，而是 WorkBuddy 重新生成的**前端原型**：

| 部分 | 形态 | 关键事实 |
|---|---|---|
| `web/index.html` | PC 单页大盘 | 60.9KB；7 个 Tab；读取 `web/baseline.js`；业务数据写浏览器 `localStorage` |
| `web/baseline.js` | 冻结基线 | 原包 523KB；341 商机 / 230 客户 / 224 集团 / 1,863 条活动 |
| `miniprogram/` | 原生微信小程序 | 9 个页面；`wx.setStorageSync` 本地存储；`app.js` 明确写“云服务未开通” |
| `miniprogram/data/baseline.js` | 冻结基线 | 与原包 PC 基线同数据，约 523KB；PC/小程序两份手工复制 |
| `data/seed.json` | 数据包 | 2.7MB；341 / 230 / 224 / 3,628 条过滤后活动 |
| `销售工作台_功能演示.html` | 演示页 | 191KB；只用 13 客户 / 30 商机 / 65 条活动做样例，不是全量 |
| `docs/` | 空目录 | 无 README、无部署说明、无验收记录 |
| `miniprogram/.workbuddy/` | WorkBuddy 脚手架 | `workbuddy-native-basic`，不是已部署的云端应用 |

## 二、值得保留的设计

1. **基线 + 运行时覆盖**：V1 预测冻结只读，新增商机、活动、工单、审批、客诉、变更单单独存储；新增商机不冲掉 6,500 万加权覆盖率分母。这个口径是对的。
2. **PC + 小程序双端分工**：小程序负责现场录活动、匹配商机、建下一步计划、看待办、审批；PC 负责总览、部门与人、客户与商机、看板、客户详情、审核与工单、数据同步。
3. **商机看板引擎**：9 段节点（线索 / 送样 / 验证 / 报价 / 议价 / 试产 / 注册 / 供货 / 关闭），按停留天数、任务截止、客诉、变更单自动算正常/预警/延期，人工覆盖必须填原因并写审计日志。这部分可以直接复用。
4. **业务常量**：活动类型、5 类场景、7 类下一步计划、工单状态机、审批链、客户档案 5 个板块，均来自业务导图，适合作为后续后端字典。
5. **数据口径**：341 / 230 / 224、4,828.2385 万原报、3,172.6986 万加权、48.81%、9,892 万原报目标，与本地 V1 数据一致。

## 三、不能直接上生产的原因

### 1. 没有后端、没有登录、没有权限隔离

- PC 端全部业务数据在浏览器 `localStorage`，换电脑或清缓存即丢。
- 小程序全部数据在 `wx.setStorageSync`，不同销售之间不共享。
- PC 的“审核与工单”可以直接点通过/驳回，页面没有登录态校验，审批人固定写成“PC 大盘主管”。
- 小程序首页有“销售员 / 主管 / 部门总监”角色下拉，任何人可以切换；`constants.js` 里写死 `DIRECTOR = '刘新元'`，但没有服务端判权。

### 2. 没有外部系统对接

当前原型没有：

- 飞书 OpenAPI / 飞书项目 MCP
- CloudBase 数据库与静态托管
- IMA 知识库
- AI 模型调用
- ERP 订单与回款
- 顺丰物流
- 报销票据与上传
- 文件/图片存储

这些正是本地 `销售工作台服务.py` 的 60+ 个 API 和后台任务在做的事。

### 3. 数据层有两个明确缺陷

**缺陷 A：两份 `baseline.js` 手工复制**

原包 `web/baseline.js` 523,730 字节，`miniprogram/data/baseline.js` 523,728 字节，内容只差 `window.__BASELINE__ =` 与 `module.exports =`。后续任何数据更新都要改两处，必然漂移。

**缺陷 B：活动数量口径不一致**

- 页面显示“保留 3,628 条活动”；
- `baseline.js` 的 `timeline` 实际只有 1,863 条、200 家客户；
- 原因是生成时按客户截断到最多 12 条，但 `filterStats.kept` 仍写 3,628。
- 客户详情、活动时间线因此会少掉一半以上历史活动，且用户看不出来。

**缺陷 C：演示页不是全量**

`销售工作台_功能演示.html` 的 `window.DEMO` 只有 13 客户 / 30 商机 / 65 条活动；顶部汇总却仍是全量口径。适合演示，不能当数据核对页。

### 4. 小程序首屏是空的

`store.js` 只从 `wx.getStorageSync` 读数据；`seed.json` 没有被小程序加载。首次打开时活动、工单、审批、待办都是 0，只有冻结基线。原包没有说明这一点。

### 5. 工程卫生问题

- ZIP 含 `__MACOSX`、`.DS_Store`；
- 压缩包内中文文件名出现乱码；
- `docs/` 为空，没有数据版本、重建方法、验收标准；
- PC 与小程序业务逻辑两套实现，后续改规则要改两处。

## 四、已经做的修正（工作副本）

在 `工作台工程/workbuddy_v1/` 中完成：

1. 新增 `tools/build_workbuddy_baseline.py`，从**唯一数据源** `数据/客户商机演示_2027_v1.json` 生成：
   - `web/baseline.js`
   - `miniprogram/data/baseline.js`
   - `data/seed.json`
   - `data/build_info.json`（含源文件 SHA256、条数、汇总）
2. 修正活动口径：
   - PC 基线保留**全部 3,628 条**活动；
   - 小程序受主包 2MB 限制，按客户保留最近 12 条，共 **1,960 条**；
   - 在小程序 `meta` 写入 `timeline_total=3628`、`timeline_displayed=1960`、截断策略；
   - 小程序首页文案改为“历史活动（本机展示）”，不再把 3,628 当成实际可看条数。
3. 重新生成后校验：
   - 商机 341、客户 230、集团 224、PC 活动 3,628；
   - 原报 4,828.2385 万、加权 3,172.6986 万、覆盖率 48.81%、原报目标 9,892 万；
   - 小程序文件总量约 1.46MB，低于 2MB 主包上限。

## 五、迁移建议

### 推荐路径：WorkBuddy 做前端与协作入口，本地服务做数据与写操作主库

```
WorkBuddy PC / 小程序
        │  只读查询 + 写操作提交
        ▼
适配层（新增）
        │  HTTPS + token + 按人过滤
        ▼
本地 销售工作台服务.py（保持运行）
        ├─ 飞书 / CloudBase / IMA / AI / ERP / 顺丰 / 报销
        └─ 数据 JSON / 上传 / 审计
```

理由：

- 不重写 60+ 个 API 和外部集成；
- 不复制客户数据到 WorkBuddy 云端；
- 本地继续做主库，WorkBuddy 不会出现双写冲突；
- 小程序需要 HTTPS 域名与登录态，不能继续用 clipboard JSON 做生产同步。

### 不建议现在做“全量搬迁”

全量搬迁要求 WorkBuddy 侧同时具备：

- 常驻 Python 服务或等价运行时；
- 持久化数据库/对象存储；
- 企业 SSO 与按人/按部门权限；
- 飞书、CloudBase、IMA、ERP、顺丰、AI 的连接器或网络出口；
- 与本地主库的单向/双向同步和冲突处理。

这些条件目前没有确认；在没有确认前，直接搬会得到一个“能看不能管”的演示系统。

## 六、下一步（按顺序）

1. **冻结本审计与基线重建脚本**（已完成）。
2. **做只读适配层**：把 WorkBuddy PC 的七个 Tab 接到本地只读 API；小程序先只做查询，写操作暂缓。
3. **补身份**：接 WorkBuddy 企业 SSO 或本地 token；服务端按 `user_roles.json`/`customer_sp_map.json` 过滤，前端角色选择只做展示。
4. **补写操作**：活动录入、下一步计划、新增商机、审批、客诉、变更单，逐项接本地 API 并写审计。
5. **补外部集成**：飞书活动、CloudBase、IMA、ERP、顺丰、报销，按使用频率排优先级。
6. **验收**：同一指标 PC/小程序/本地服务三方对账；权限用销售/主管/总监三种身份对测；断网、过期 token、重复提交、并发审批各测一次。

## 七、仍需用户拍板

1. WorkBuddy 采用桌面端、企业版云端，还是仅作为前端项目空间？
2. 第一版只要只读，还是必须全量写？
3. 本地继续做主库，还是 WorkBuddy 做主库？
4. 是否接 WorkBuddy 企业 SSO？现有 26 个本地账号是否停用？
5. 飞书/CloudBase/IMA/ERP/顺丰/报销，哪些必须第一批保留？
