feat: 2026-04-15~04-20 累积变更基线 — 多主线合流

主线 1: rns1-customer-coach-api + 04-miniapp-core-business 后端实施
  - 新增 GET /xcx/coaches/{id}/banner 轻量接口
  - performance/records 加 coach_id 参数 + view_board_coach 权限分流
  - coach/customer/performance/board/task 服务层重构
  - fdw_queries 结算单粒度聚合 + consumption_summary 视图统一
  - task_generator 回访宽限 72h + UPSERT 替代策略 + Step 5 保底清理
  - recall_detector settle_type=3 双重限制 + 门店级 resolved

主线 2: 小程序权限分流 + 新增 coach-service-records 管理者视角业绩明细页
  - perf-progress 共享模块去重 task-list/coach-detail 动画逻辑
  - isScattered 散客标记端到端
  - foodDetail/phoneFull/creator* 字段透传

主线 3: P19 指数回测框架 Phase 1+2
  - 3 个指数表 stat_date 日快照模式
  - 新增 DWS_INDEX_BACKFILL / DWS_TASK_SIMULATION 工具任务
  - task_engine 升级 HTTP 实时 + 推演回测双模式

主线 4: Core 维度层启用
  - 新增 CORE_DIM_SYNC 任务(DWD → core 4 维度表)
  - 修复 app 视图空查询问题

主线 5: member_project_tag 改为 LAST_30_VISITS 消费次数窗口

主线 6: 2 个迁移 SQL 已执行(stat_date + member_project_tag 新窗口)
  - schema 基线与 DDL 快照同步

主线 7: 开发机路径迁移 C:\NeoZQYY → C:\Project\NeoZQYY(约 95% 改动量)

附带: 新建运维脚本(churned_customer_report / simulate_historical_tasks /
      backfill_index_snapshots)+ tools/task-analysis/ 任务分析工具

合计 157 文件。未包含中间产物(tmp/ .playwright-mcp/ inspect-* excel/sheet 分析 txt)。
审计记录见下一个 commit。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Neo
2026-04-20 06:32:07 +08:00
parent 79d3c2e97e
commit 2a7a5d68aa
157 changed files with 14304 additions and 3717 deletions

View File

@@ -148,7 +148,7 @@ cd apps/etl/connectors/feiqiu && python -m cli.main --dry-run --tasks DWD_LOAD_F
# 测试
cd apps/etl/connectors/feiqiu && pytest tests/unit
cd C:\NeoZQYY && pytest tests/ -v
cd C:\Project\NeoZQYY && pytest tests/ -v
```
## 文件归属规则

View File

@@ -0,0 +1,702 @@
# 助教业务任务明细报告
> 导出日期2026-04-12
## 指标说明
| 指标 | 全称 | 含义 | 范围 |
|------|------|------|------|
| **WBI** | 流失回赢指数 | 老客流失风险,越高越需要召回 | 0-10 |
| **NCI** | 新客转化指数 | 新客沉默风险,越高越需要跟进 | 0-10 |
| **RS** | 关系强度指数 | 助教与客户亲密度(频次+时长+近期性) | 0-10 |
| **OS** | 归属份额标签 | 客户主要由谁服务 | MAIN / COMANAGE / POOL |
| **MS** | 升温动量 | 近期频率 vs 长期频率 | 0-10 |
| **ML** | 付费关联 | 人工台账充值关联强度 | 0-10 |
**OS**MAIN=主服务(>=70%) | COMANAGE=共管(>=30%) | POOL=池内
**任务判定**`max(WBI,NCI)>7` -> 高优先召回 | `>5` -> 优先召回 | `1<RS<6` -> 关系构建 | 客户到店 -> 完成召回 -> 生成回访(48h)
## 一、总览
| 状态 | 数量 |
|------|------|
| 进行中 | 245 |
| 已完成 | 40 |
| 已过期 | 37 |
| 任务类型 | 进行中 | 已完成 | 已过期 | 已关闭 |
|----------|--------|--------|--------|--------|
| 高优先召回 | 61 | 34 | 0 | 0 |
| 优先召回 | 55 | 6 | 0 | 0 |
| 客户回访 | 3 | 0 | 37 | 0 |
| 关系构建 | 126 | 0 | 0 | 0 |
## 二、助教任务详情
### 婉婉【在职】(进行中 42 / 已完成 9 / 共 58
**高优先召回**18
| 状态 | 客户 | 优先级 | WBI | NCI | RS | OS | 服务次数 | 末次距今 | 创建 | 更新 | 最后到店 |
|------|------|--------|-----|-----|----|-----|----------|----------|------|------|----------|
| 已完成 | 叶总 | 7.60 | 7.74 | 老客 | 0.00 | POOL | 1 | 89 | 2025-08-22 | 2025-09-14 | 2025-10-28 |
| 已完成 | 吴先生 | 7.33 | 7.15 | 老客 | 8.60 | MAIN | 10 | 18 | 2026-01-09 | 2026-03-15 | 2026-04-03 |
| 已完成 | 婉婉 | 7.09 | 6.61 | 老客 | 0.00 | POOL | 1 | 89 | 2025-10-07 | 2025-11-21 | 2025-11-21 |
| 已完成 | 邓飛 | 7.03 | 4.82 | 老客 | 0.00 | POOL | 1 | 89 | 2025-08-20 | 2025-09-06 | 2026-04-05 |
| 已完成 | 婉婉 | 7.01 | 6.61 | 老客 | 0.00 | POOL | 1 | 89 | 2025-08-24 | 2025-09-21 | 2025-11-21 |
| 进行中 | 刘哥 | 10.00 | 9.67 | 老客 | 0.03 | POOL | 1 | 89 | 2025-11-22 | 2026-01-11 | 2025-12-20 |
| 进行中 | 东哥 | 10.00 | - | 10.00 | 4.10 | COMANAGE | 2 | 20 | 2026-03-24 | 2026-04-01 | 2026-03-24 |
| 进行中 | 艾宇民 | 10.00 | 10.00 | 老客 | 0.00 | POOL | 1 | 89 | 2025-09-12 | 2026-04-12 | 2026-03-08 |
| 进行中 | 夏 | 8.50 | 10.00 | 老客 | 0.07 | POOL | 1 | 89 | 2025-08-17 | 2025-11-24 | 2025-11-09 |
| 进行中 | 陈腾鑫 | 8.22 | 0.00 | 老客 | 0.00 | POOL | 1 | 89 | 2025-09-09 | 2025-09-10 | 2026-04-05 |
| 进行中 | 常总 | 7.74 | 7.74 | 老客 | 0.00 | POOL | 1 | 89 | 2025-12-22 | 2026-04-12 | 2026-02-06 |
| 进行中 | 孙总 | 7.69 | 8.27 | 老客 | 0.31 | MAIN | 2 | 81 | 2026-01-16 | 2026-02-03 | 2026-01-26 |
| 进行中 | 公孙先生 | 7.59 | 9.51 | 老客 | 0.00 | POOL | 1 | 87 | 2026-01-16 | 2026-02-18 | 2026-02-01 |
| 进行中 | 羊 | 7.38 | 0.00 | 老客 | 0.00 | POOL | 1 | 89 | 2025-10-31 | 2025-12-10 | 2026-04-10 |
| 进行中 | 周先生 | 7.14 | 8.69 | 老客 | 0.00 | POOL | 1 | 89 | 2026-01-01 | 2026-02-06 | 2026-03-13 |
| 进行中 | 万先生 | 7.11 | - | 6.73 | 0.07 | POOL | 1 | 89 | 2025-11-10 | 2026-01-18 | 2025-11-10 |
| 进行中 | 潘先生 | 7.03 | 8.36 | 老客 | 3.19 | MAIN | 2 | 24 | 2026-03-09 | 2026-04-10 | 2026-03-20 |
| 进行中 | 老宋 | 7.01 | 9.48 | 老客 | 0.00 | POOL | 1 | 89 | 2025-11-07 | 2025-12-02 | 2025-12-27 |
**优先召回**17
| 状态 | 客户 | 优先级 | WBI | NCI | RS | OS | 服务次数 | 末次距今 | 创建 | 更新 | 最后到店 |
|------|------|--------|-----|-----|----|-----|----------|----------|------|------|----------|
| 已完成 | 君姐 | 6.93 | 0.00 | 老客 | 3.03 | POOL | 1 | 13 | 2025-11-27 | 2026-04-07 | 2026-04-12 |
| 已完成 | 歌神 | 5.39 | 4.09 | 老客 | 2.39 | MAIN | 1 | 23 | 2025-08-17 | 2025-10-12 | 2026-03-29 |
| 已完成 | 邓飛 | 5.38 | 4.82 | 老客 | 0.00 | POOL | 1 | 89 | 2025-10-16 | 2025-11-09 | 2026-04-05 |
| 已完成 | 邓飛 | 5.14 | 4.82 | 老客 | 0.00 | POOL | 1 | 89 | 2025-09-17 | 2025-10-01 | 2026-04-05 |
| 进行中 | 吴先生 | 7.15 | 7.15 | 老客 | 8.60 | MAIN | 10 | 18 | 2026-04-10 | 2026-04-12 | 2026-04-03 |
| 进行中 | 叶先生 | 6.95 | 6.44 | 老客 | 0.09 | POOL | 1 | 78 | 2025-10-31 | 2026-02-26 | 2026-03-14 |
| 进行中 | 婉婉 | 6.93 | 6.61 | 老客 | 0.00 | POOL | 1 | 89 | 2025-11-23 | 2026-01-15 | 2025-11-21 |
| 进行中 | 查先生 | 6.88 | - | 1.68 | 0.00 | POOL | 1 | 89 | 2025-08-27 | 2025-10-04 | 2025-09-08 |
| 进行中 | 候 | 6.86 | 5.98 | 老客 | 0.00 | POOL | 1 | 89 | 2025-12-14 | 2026-02-14 | 2025-12-18 |
| 进行中 | 杜先生 | 6.70 | - | 2.15 | 0.00 | POOL | 1 | 89 | 2025-09-04 | 2025-10-09 | 2025-09-04 |
| 进行中 | 王 | 6.59 | 6.59 | 老客 | 0.00 | POOL | 1 | 89 | 2026-01-03 | 2026-04-12 | 2026-02-08 |
| 进行中 | 邓飛 | 5.80 | 4.82 | 老客 | 0.00 | POOL | 1 | 89 | 2025-11-14 | 2025-12-16 | 2026-04-05 |
| 进行中 | 黄国磊 | 5.66 | 0.00 | 老客 | 0.00 | POOL | 1 | 89 | 2025-09-01 | 2025-09-25 | 2026-03-31 |
| 进行中 | 明哥 | 5.49 | 4.79 | 老客 | 0.15 | POOL | 1 | 77 | 2025-12-09 | 2026-02-16 | 2026-04-02 |
| 进行中 | 叶总 | 5.07 | 7.74 | 老客 | 0.00 | POOL | 1 | 89 | 2025-09-18 | 2025-10-19 | 2025-10-28 |
| 进行中 | 黎先生 | 5.07 | - | 0.00 | 0.00 | POOL | 1 | 89 | 2025-10-10 | 2025-10-22 | 2025-10-10 |
| 进行中 | 章先生 | 4.19 | - | 4.19 | 0.00 | POOL | 1 | 86 | 2026-01-17 | 2026-04-12 | 2026-02-06 |
**客户回访**9
| 状态 | 客户 | RS | OS | 服务次数 | 创建 | 更新 | 最后到店 | 完成/过期 |
|------|------|----|-----|----------|------|------|----------|-----------|
| 进行中 | 歌神 | 2.39 | MAIN | 1 | 2025-10-12 | 2025-10-12 | 2026-03-29 | - |
| 进行中 | 婉婉 | 0.00 | POOL | 1 | 2025-11-21 | 2025-11-21 | 2025-11-21 | - |
| 已过期 | 叶总 | 0.00 | POOL | 1 | 2025-09-14 | 2025-09-17 | 2025-10-28 | - |
| 已过期 | 婉婉 | 0.00 | POOL | 1 | 2025-09-21 | 2025-09-24 | 2025-11-21 | - |
| 已过期 | 邓飛 | 0.00 | POOL | 1 | 2025-10-01 | 2025-10-04 | 2026-04-05 | - |
| 已过期 | 邓飛 | 0.00 | POOL | 1 | 2025-11-09 | 2025-11-11 | 2026-04-05 | - |
| 已过期 | 吴先生 | 8.60 | MAIN | 10 | 2026-03-15 | 2026-03-18 | 2026-04-03 | - |
| 已过期 | 君姐 | 3.03 | POOL | 1 | 2026-04-07 | 2026-04-10 | 2026-04-12 | - |
| 已过期 | 邓飛 | 0.00 | POOL | 1 | 2025-09-06 | 2025-09-08 | 2026-04-05 | - |
**关系构建**14
| 状态 | 客户 | RS | OS | 服务次数 | 末次距今 | MS | ML | 创建 | 更新 | 最后到店 |
|------|------|----|-----|----------|----------|-----|-----|------|------|----------|
| 进行中 | T | 4.67 | MAIN | 1 | 16 | 0.00 | 0.00 | 2026-03-28 | 2026-03-28 | 2026-04-01 |
| 进行中 | 张先生 | 0.03 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-08-18 | 2025-08-18 | 2026-04-10 |
| 进行中 | H | 5.02 | MAIN | 1 | 2 | 0.00 | 0.00 | 2025-10-15 | 2026-04-11 | 2026-04-12 |
| 进行中 | 轩哥 | 9.93 | POOL | 6 | 2 | 0.00 | 0.00 | 2025-08-15 | 2025-08-15 | 2026-04-11 |
| 进行中 | 蔡总 | 1.54 | POOL | 1 | 32 | 0.00 | 0.00 | 2025-11-06 | 2025-11-07 | 2026-04-11 |
| 进行中 | 蔡先生 | 3.68 | MAIN | 2 | 28 | 0.00 | 0.00 | 2026-03-20 | 2026-04-04 | 2026-04-04 |
| 进行中 | 歌神 | 2.39 | MAIN | 1 | 23 | 0.00 | 0.00 | 2025-10-14 | 2026-03-21 | 2026-03-29 |
| 进行中 | 罗先生 | 4.66 | MAIN | 2 | 11 | 0.00 | 0.00 | 2025-08-22 | 2026-03-19 | 2026-04-03 |
| 进行中 | 君姐 | 3.03 | POOL | 1 | 13 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-12 |
| 进行中 | 林先生 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-11-19 | 2025-12-28 | 2026-01-12 |
| 进行中 | 江先生 | 1.94 | POOL | 1 | 30 | 0.00 | 0.00 | 2025-09-02 | 2025-09-02 | 2026-04-01 |
| 进行中 | 林总 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-11-25 | 2025-12-19 | 2026-03-10 |
| 进行中 | 胡先生 | 0.01 | POOL | 1 | 89 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2025-12-01 |
| 进行中 | 葛先生 | 0.00 | POOL | 1 | 80 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-12 |
### 璇子【在职】(进行中 24 / 已完成 10 / 共 44
**高优先召回**18
| 状态 | 客户 | 优先级 | WBI | NCI | RS | OS | 服务次数 | 末次距今 | 创建 | 更新 | 最后到店 |
|------|------|--------|-----|-----|----|-----|----------|----------|------|------|----------|
| 已完成 | 夏 | 10.00 | 10.00 | 老客 | 0.00 | POOL | 1 | 89 | 2025-08-18 | 2025-08-24 | 2025-11-09 |
| 已完成 | 江先生 | 10.00 | 0.00 | 老客 | 9.20 | MAIN | 11 | 12 | 2025-08-25 | 2025-09-02 | 2026-04-01 |
| 已完成 | 轩哥 | 8.03 | 0.00 | 老客 | 10.00 | COMANAGE | 25 | 5 | 2026-02-27 | 2026-03-10 | 2026-04-11 |
| 已完成 | 蔡总 | 8.02 | 9.42 | 老客 | 6.16 | COMANAGE | 4 | 21 | 2026-02-03 | 2026-03-11 | 2026-04-11 |
| 已完成 | 江先生 | 7.91 | 0.00 | 老客 | 9.20 | MAIN | 11 | 12 | 2026-02-14 | 2026-03-07 | 2026-04-01 |
| 已完成 | 江先生 | 7.82 | 0.00 | 老客 | 9.20 | MAIN | 11 | 12 | 2025-12-28 | 2026-01-04 | 2026-04-01 |
| 已完成 | 蔡总 | 7.66 | 9.42 | 老客 | 6.16 | COMANAGE | 4 | 21 | 2025-08-28 | 2026-01-22 | 2026-04-11 |
| 已完成 | 叶总 | 7.60 | 7.74 | 老客 | 0.02 | POOL | 1 | 89 | 2025-08-21 | 2025-09-14 | 2025-10-28 |
| 进行中 | 胡先生 | 8.08 | 8.08 | 老客 | 5.77 | MAIN | 3 | 20 | 2025-09-05 | 2026-04-13 | 2026-03-29 |
| 进行中 | 蔡总 | 7.86 | 9.42 | 老客 | 6.16 | COMANAGE | 4 | 21 | 2026-04-08 | 2026-04-10 | 2026-04-11 |
| 进行中 | 孙总 | 7.69 | 8.27 | 老客 | 0.17 | POOL | 1 | 80 | 2026-01-23 | 2026-02-03 | 2026-01-26 |
| 进行中 | 林总 | 7.42 | 10.00 | 老客 | 0.00 | POOL | 1 | 89 | 2025-09-01 | 2025-09-19 | 2026-03-10 |
| 进行中 | 羊 | 7.38 | 0.00 | 老客 | 0.01 | POOL | 1 | 89 | 2025-11-11 | 2025-12-10 | 2026-04-10 |
| 进行中 | 叶总 | 7.29 | 7.74 | 老客 | 0.02 | POOL | 1 | 89 | 2025-11-13 | 2025-11-17 | 2025-10-28 |
| 进行中 | 周周 | 7.15 | 8.11 | 老客 | 0.00 | POOL | 1 | 89 | 2026-01-11 | 2026-02-13 | 2026-03-29 |
| 进行中 | 罗先生 | 7.07 | 0.00 | 老客 | 0.00 | POOL | 1 | 89 | 2025-08-26 | 2025-09-06 | 2026-04-03 |
| 进行中 | 歌神 | 7.05 | 4.09 | 老客 | 0.00 | POOL | 1 | 89 | 2025-08-17 | 2025-08-30 | 2026-03-29 |
| 进行中 | 林先生 | 7.05 | 9.56 | 老客 | 0.01 | POOL | 1 | 89 | 2025-12-10 | 2026-01-14 | 2025-12-29 |
**优先召回**5
| 状态 | 客户 | 优先级 | WBI | NCI | RS | OS | 服务次数 | 末次距今 | 创建 | 更新 | 最后到店 |
|------|------|--------|-----|-----|----|-----|----------|----------|------|------|----------|
| 已完成 | 江先生 | 5.54 | 0.00 | 老客 | 9.20 | MAIN | 11 | 12 | 2025-11-01 | 2025-11-02 | 2026-04-01 |
| 已完成 | 叶总 | 5.07 | 7.74 | 老客 | 0.02 | POOL | 1 | 89 | 2025-10-08 | 2025-10-20 | 2025-10-28 |
| 进行中 | 罗超 | 6.89 | 2.67 | 老客 | 0.00 | POOL | 1 | 89 | 2025-10-08 | 2025-11-25 | 2026-01-19 |
| 进行中 | 邓飛 | 5.14 | 4.82 | 老客 | 0.00 | POOL | 1 | 89 | 2025-08-20 | 2025-09-28 | 2026-04-05 |
| 进行中 | 清 | 5.14 | 5.68 | 老客 | 3.08 | MAIN | 1 | 23 | 2026-03-21 | 2026-04-10 | 2026-03-22 |
**客户回访**10
| 状态 | 客户 | RS | OS | 服务次数 | 创建 | 更新 | 最后到店 | 完成/过期 |
|------|------|----|-----|----------|------|------|----------|-----------|
| 已过期 | 叶总 | 0.02 | POOL | 1 | 2025-09-14 | 2025-09-17 | 2025-10-28 | - |
| 已过期 | 叶总 | 0.02 | POOL | 1 | 2025-10-20 | 2025-10-23 | 2025-10-28 | - |
| 已过期 | 江先生 | 9.20 | MAIN | 11 | 2025-11-02 | 2025-11-05 | 2026-04-01 | - |
| 已过期 | 夏 | 0.00 | POOL | 1 | 2025-08-24 | 2025-08-27 | 2025-11-09 | - |
| 已过期 | 江先生 | 9.20 | MAIN | 11 | 2026-01-04 | 2026-01-07 | 2026-04-01 | - |
| 已过期 | 蔡总 | 6.16 | COMANAGE | 4 | 2026-01-22 | 2026-01-25 | 2026-04-11 | - |
| 已过期 | 江先生 | 9.20 | MAIN | 11 | 2026-03-07 | 2026-03-10 | 2026-04-01 | - |
| 已过期 | 蔡总 | 6.16 | COMANAGE | 4 | 2026-03-11 | 2026-03-13 | 2026-04-11 | - |
| 已过期 | 轩哥 | 10.00 | COMANAGE | 25 | 2026-03-10 | 2026-03-13 | 2026-04-11 | - |
| 已过期 | 江先生 | 9.20 | MAIN | 11 | 2025-09-02 | 2025-09-04 | 2026-04-01 | - |
**关系构建**11
| 状态 | 客户 | RS | OS | 服务次数 | 末次距今 | MS | ML | 创建 | 更新 | 最后到店 |
|------|------|----|-----|----------|----------|-----|-----|------|------|----------|
| 进行中 | 轩哥 | 10.00 | COMANAGE | 25 | 5 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-11 |
| 进行中 | 江先生 | 9.20 | MAIN | 11 | 12 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-01 |
| 进行中 | 夏 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-08-28 | 2025-08-28 | 2025-11-09 |
| 进行中 | 君姐 | 2.23 | POOL | 1 | 32 | 0.00 | 0.00 | 2026-03-12 | 2026-03-12 | 2026-04-12 |
| 进行中 | 张先生 | 1.47 | POOL | 2 | 41 | 0.00 | 0.00 | 2025-08-14 | 2026-03-03 | 2026-04-10 |
| 进行中 | H | 4.27 | MAIN | 1 | 9 | 0.00 | 0.00 | 2026-04-04 | 2026-04-04 | 2026-04-12 |
| 进行中 | 梅 | 1.65 | POOL | 1 | 36 | 0.00 | 0.00 | 2026-03-08 | 2026-03-08 | 2026-04-06 |
| 进行中 | 蔡先生 | 3.71 | MAIN | 1 | 9 | 0.00 | 0.00 | 2026-04-04 | 2026-04-04 | 2026-04-04 |
| 进行中 | 游 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-11-30 | 2025-11-30 | 2025-12-13 |
| 进行中 | 陈先生 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-08-21 | 2025-08-21 | 2025-10-18 |
| 进行中 | 罗先生 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-08-27 | 2025-08-27 | 2026-03-25 |
### 小柔【在职】(进行中 31 / 已完成 5 / 共 40
**高优先召回**12
| 状态 | 客户 | 优先级 | WBI | NCI | RS | OS | 服务次数 | 末次距今 | 创建 | 更新 | 最后到店 |
|------|------|--------|-----|-----|----|-----|----------|----------|------|------|----------|
| 已完成 | 夏 | 10.00 | 10.00 | 老客 | 0.00 | POOL | 1 | 89 | 2025-08-23 | 2025-08-24 | 2025-11-09 |
| 已完成 | 蔡总 | 8.02 | 9.42 | 老客 | 6.76 | COMANAGE | 6 | 22 | 2026-02-09 | 2026-03-13 | 2026-04-11 |
| 已完成 | 蔡总 | 7.66 | 9.42 | 老客 | 6.76 | COMANAGE | 6 | 22 | 2026-01-18 | 2026-01-22 | 2026-04-11 |
| 已完成 | 蔡总 | 7.63 | 9.42 | 老客 | 6.76 | COMANAGE | 6 | 22 | 2025-11-05 | 2025-11-07 | 2026-04-11 |
| 已完成 | 邓飛 | 7.03 | 4.82 | 老客 | 0.00 | POOL | 1 | 89 | 2025-08-19 | 2025-09-06 | 2026-04-05 |
| 进行中 | 歌神 | 10.00 | 4.09 | 老客 | 0.00 | POOL | 1 | 89 | 2025-08-16 | 2025-12-20 | 2026-03-29 |
| 进行中 | 陈德韩 | 8.67 | 8.32 | 老客 | 0.00 | POOL | 1 | 89 | 2025-08-17 | 2025-12-18 | 2025-12-22 |
| 进行中 | 昌哥 | 7.94 | 0.00 | 老客 | 0.00 | POOL | 1 | 89 | 2025-12-07 | 2026-02-01 | 2026-04-10 |
| 进行中 | 蔡总 | 7.86 | 9.42 | 老客 | 6.76 | COMANAGE | 6 | 22 | 2026-04-08 | 2026-04-10 | 2026-04-11 |
| 进行中 | 汪先生 | 7.43 | 8.44 | 老客 | 0.00 | POOL | 1 | 89 | 2025-09-20 | 2025-10-28 | 2025-10-24 |
| 进行中 | 羊 | 7.38 | 0.00 | 老客 | 0.00 | POOL | 1 | 89 | 2025-11-08 | 2025-12-10 | 2026-04-10 |
| 进行中 | H | 7.28 | 0.00 | 老客 | 0.01 | POOL | 1 | 89 | 2025-10-20 | 2025-11-01 | 2026-04-12 |
**优先召回**7
| 状态 | 客户 | 优先级 | WBI | NCI | RS | OS | 服务次数 | 末次距今 | 创建 | 更新 | 最后到店 |
|------|------|--------|-----|-----|----|-----|----------|----------|------|------|----------|
| 进行中 | 孟紫龙 | 6.92 | 6.92 | 老客 | 0.00 | POOL | 1 | 89 | 2025-12-21 | 2026-04-12 | 2025-12-28 |
| 进行中 | 万先生 | 6.73 | - | 6.73 | 0.07 | POOL | 1 | 89 | 2025-11-10 | 2026-04-12 | 2025-11-10 |
| 进行中 | 邓飛 | 5.80 | 4.82 | 老客 | 0.00 | POOL | 1 | 89 | 2025-09-07 | 2025-12-16 | 2026-04-05 |
| 进行中 | 郭先生 | 5.49 | 4.44 | 老客 | 0.00 | POOL | 1 | 89 | 2025-08-24 | 2025-09-11 | 2025-11-01 |
| 进行中 | 陶 | 5.25 | 4.43 | 老客 | 0.00 | POOL | 1 | 89 | 2025-10-27 | 2025-11-08 | 2025-10-27 |
| 进行中 | 蔡先生 | 5.01 | 0.00 | 老客 | 0.02 | POOL | 1 | 89 | 2025-09-08 | 2025-10-12 | 2026-04-04 |
| 进行中 | 明哥 | 4.79 | 4.79 | 老客 | 4.37 | MAIN | 3 | 27 | 2025-11-28 | 2026-04-12 | 2026-04-02 |
**客户回访**5
| 状态 | 客户 | RS | OS | 服务次数 | 创建 | 更新 | 最后到店 | 完成/过期 |
|------|------|----|-----|----------|------|------|----------|-----------|
| 进行中 | 邓飛 | 0.00 | POOL | 1 | 2025-09-06 | 2025-09-06 | 2026-04-05 | - |
| 已过期 | 蔡总 | 6.76 | COMANAGE | 6 | 2025-11-07 | 2025-11-10 | 2026-04-11 | - |
| 已过期 | 夏 | 0.00 | POOL | 1 | 2025-08-24 | 2025-08-27 | 2025-11-09 | - |
| 已过期 | 蔡总 | 6.76 | COMANAGE | 6 | 2026-01-22 | 2026-01-25 | 2026-04-11 | - |
| 已过期 | 蔡总 | 6.76 | COMANAGE | 6 | 2026-03-13 | 2026-03-16 | 2026-04-11 | - |
**关系构建**16
| 状态 | 客户 | RS | OS | 服务次数 | 末次距今 | MS | ML | 创建 | 更新 | 最后到店 |
|------|------|----|-----|----------|----------|-----|-----|------|------|----------|
| 进行中 | 轩哥 | 8.51 | POOL | 6 | 4 | 0.00 | 0.00 | 2025-08-19 | 2025-08-19 | 2026-04-11 |
| 进行中 | T | 4.67 | MAIN | 1 | 16 | 0.00 | 0.00 | 2025-12-13 | 2026-03-28 | 2026-04-01 |
| 进行中 | 张先生 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-09-10 | 2025-09-10 | 2026-04-10 |
| 进行中 | 夏 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-08-31 | 2025-08-31 | 2025-11-09 |
| 进行中 | 葛先生 | 4.97 | POOL | 3 | 13 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-12 |
| 进行中 | 陈腾鑫 | 3.55 | COMANAGE | 1 | 13 | 0.00 | 0.00 | 2025-08-17 | 2025-09-23 | 2026-04-05 |
| 进行中 | 叶总 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-08-22 | 2025-10-20 | 2025-10-28 |
| 进行中 | 林先生 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-11-19 | 2025-11-19 | 2026-01-12 |
| 进行中 | 游 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-11-26 | 2025-11-26 | 2025-12-13 |
| 进行中 | 罗先生 | 1.80 | POOL | 1 | 25 | 0.00 | 0.00 | 2026-03-19 | 2026-03-19 | 2026-04-03 |
| 进行中 | 陈淑涛 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-08-17 | 2025-08-17 | 2026-03-26 |
| 进行中 | 胡先生 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-11-07 | 2025-11-07 | 2025-12-01 |
| 进行中 | 小燕 | 2.36 | POOL | 1 | 15 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-12 |
| 进行中 | 吴生 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-08-26 | 2025-08-26 | 2026-04-11 |
| 进行中 | 罗先生 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-08-23 | 2025-08-23 | 2026-03-25 |
| 进行中 | 江先生 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-01 |
### 佳怡【在职】(进行中 29 / 已完成 5 / 共 39
**高优先召回**15
| 状态 | 客户 | 优先级 | WBI | NCI | RS | OS | 服务次数 | 末次距今 | 创建 | 更新 | 最后到店 |
|------|------|--------|-----|-----|----|-----|----------|----------|------|------|----------|
| 已完成 | 陈腾鑫 | 7.54 | 0.00 | 老客 | 3.19 | COMANAGE | 5 | 38 | 2026-02-24 | 2026-03-06 | 2026-04-05 |
| 已完成 | 罗先生 | 7.48 | 10.00 | 老客 | 7.69 | MAIN | 14 | 19 | 2025-08-15 | 2026-03-19 | 2026-03-25 |
| 已完成 | 陈先生 | 7.37 | 7.02 | 老客 | 6.39 | MAIN | 9 | 31 | 2025-10-10 | 2025-11-07 | 2026-03-13 |
| 已完成 | 陈先生 | 7.23 | 7.02 | 老客 | 6.39 | MAIN | 9 | 31 | 2025-11-24 | 2026-03-06 | 2026-03-13 |
| 已完成 | 陈腾鑫 | 7.11 | 0.00 | 老客 | 3.19 | COMANAGE | 5 | 38 | 2025-08-17 | 2026-01-06 | 2026-04-05 |
| 进行中 | 葛先生 | 10.00 | 0.00 | 老客 | 0.00 | POOL | 1 | 89 | 2025-09-22 | 2025-10-07 | 2026-04-12 |
| 进行中 | 林志铭 | 8.56 | 8.60 | 老客 | 0.10 | POOL | 1 | 79 | 2026-01-24 | 2026-03-13 | 2026-01-24 |
| 进行中 | 蔡总 | 7.86 | 9.42 | 老客 | 9.91 | MAIN | 9 | 20 | 2025-08-23 | 2026-04-10 | 2026-04-11 |
| 进行中 | 胡先生 | 7.52 | 8.08 | 老客 | 0.19 | POOL | 1 | 76 | 2026-01-27 | 2026-03-01 | 2026-03-29 |
| 进行中 | 罗先生 | 7.41 | 10.00 | 老客 | 7.69 | MAIN | 14 | 19 | 2026-04-08 | 2026-04-09 | 2026-03-25 |
| 进行中 | 陈德韩 | 7.32 | 8.32 | 老客 | 0.15 | POOL | 2 | 89 | 2025-08-14 | 2025-11-10 | 2025-12-22 |
| 进行中 | T | 7.23 | 0.00 | 老客 | 0.00 | POOL | 1 | 89 | 2025-10-24 | 2026-01-05 | 2026-04-01 |
| 进行中 | 周周 | 7.15 | 8.11 | 老客 | 0.00 | POOL | 1 | 89 | 2025-12-09 | 2026-02-13 | 2026-03-29 |
| 进行中 | 小熊 | 7.07 | 7.90 | 老客 | 0.01 | POOL | 1 | 86 | 2025-10-16 | 2026-02-05 | 2026-01-17 |
| 进行中 | 林先生 | 7.05 | 9.56 | 老客 | 0.02 | POOL | 1 | 89 | 2025-11-23 | 2026-01-14 | 2025-12-29 |
**优先召回**8
| 状态 | 客户 | 优先级 | WBI | NCI | RS | OS | 服务次数 | 末次距今 | 创建 | 更新 | 最后到店 |
|------|------|--------|-----|-----|----|-----|----------|----------|------|------|----------|
| 进行中 | 大G | 7.28 | 7.28 | 老客 | 0.02 | POOL | 1 | 89 | 2025-12-07 | 2026-04-12 | 2025-12-07 |
| 进行中 | 陈先生 | 7.02 | 7.02 | 老客 | 6.39 | MAIN | 9 | 31 | 2026-04-02 | 2026-04-12 | 2026-03-13 |
| 进行中 | 游 | 6.94 | 4.83 | 老客 | 0.00 | POOL | 1 | 89 | 2025-11-26 | 2026-01-13 | 2025-12-13 |
| 进行中 | 胡先生 | 6.80 | 5.06 | 老客 | 0.08 | POOL | 1 | 89 | 2025-11-07 | 2026-01-09 | 2025-12-01 |
| 进行中 | 陈先生 | 6.80 | - | 5.97 | 0.00 | POOL | 1 | 89 | 2025-09-23 | 2025-11-08 | 2026-03-04 |
| 进行中 | 贺斌 | 5.57 | 4.54 | 老客 | 0.00 | POOL | 1 | 89 | 2025-10-28 | 2025-11-28 | 2025-11-03 |
| 进行中 | 陶 | 5.25 | 4.43 | 老客 | 0.00 | POOL | 1 | 89 | 2025-10-20 | 2025-11-08 | 2025-10-27 |
| 进行中 | 彭先生 | 5.21 | - | 0.00 | 0.00 | POOL | 1 | 89 | 2026-01-04 | 2026-01-17 | 2026-01-07 |
**客户回访**5
| 状态 | 客户 | RS | OS | 服务次数 | 创建 | 更新 | 最后到店 | 完成/过期 |
|------|------|----|-----|----------|------|------|----------|-----------|
| 已过期 | 陈先生 | 6.39 | MAIN | 9 | 2025-11-07 | 2025-11-09 | 2026-03-13 | - |
| 已过期 | 陈腾鑫 | 3.19 | COMANAGE | 5 | 2026-01-06 | 2026-01-08 | 2026-04-05 | - |
| 已过期 | 陈先生 | 6.39 | MAIN | 9 | 2026-03-06 | 2026-03-09 | 2026-03-13 | - |
| 已过期 | 陈腾鑫 | 3.19 | COMANAGE | 5 | 2026-03-06 | 2026-03-09 | 2026-04-05 | - |
| 已过期 | 罗先生 | 7.69 | MAIN | 14 | 2026-03-19 | 2026-03-21 | 2026-03-25 | - |
**关系构建**11
| 状态 | 客户 | RS | OS | 服务次数 | 末次距今 | MS | ML | 创建 | 更新 | 最后到店 |
|------|------|----|-----|----------|----------|-----|-----|------|------|----------|
| 进行中 | 陈腾鑫 | 3.19 | COMANAGE | 5 | 38 | 0.00 | 0.00 | 2026-03-22 | 2026-03-22 | 2026-04-05 |
| 进行中 | 轩哥 | 7.05 | POOL | 6 | 20 | 0.00 | 0.00 | 2025-08-15 | 2025-08-15 | 2026-04-11 |
| 进行中 | 张先生 | 0.02 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-09-09 | 2025-09-09 | 2026-04-10 |
| 进行中 | H | 4.27 | MAIN | 1 | 9 | 0.00 | 0.00 | 2025-10-16 | 2026-04-04 | 2026-04-12 |
| 进行中 | 蔡先生 | 3.86 | MAIN | 1 | 9 | 0.00 | 0.00 | 2025-08-22 | 2026-04-04 | 2026-04-04 |
| 进行中 | 歌神 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-10-13 | 2025-10-13 | 2026-03-29 |
| 进行中 | 邓飛 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-09-07 | 2025-09-07 | 2026-04-05 |
| 进行中 | 君姐 | 1.60 | POOL | 1 | 20 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-12 |
| 进行中 | 叶先生 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-03-14 |
| 进行中 | 夏 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2025-11-09 |
| 进行中 | 江先生 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-01 |
### 涛涛【在职】(进行中 27 / 已完成 4 / 共 35
**高优先召回**8
| 状态 | 客户 | 优先级 | WBI | NCI | RS | OS | 服务次数 | 末次距今 | 创建 | 更新 | 最后到店 |
|------|------|--------|-----|-----|----|-----|----------|----------|------|------|----------|
| 已完成 | 江先生 | 10.00 | 0.00 | 老客 | 0.00 | POOL | 1 | 89 | 2025-08-17 | 2025-11-02 | 2026-04-01 |
| 已完成 | 蔡总 | 8.02 | 9.42 | 老客 | 6.30 | COMANAGE | 7 | 27 | 2026-02-14 | 2026-03-11 | 2026-04-11 |
| 已完成 | 蔡总 | 7.66 | 9.42 | 老客 | 6.30 | COMANAGE | 7 | 27 | 2025-11-20 | 2026-01-22 | 2026-04-11 |
| 已完成 | 蔡总 | 7.63 | 9.42 | 老客 | 6.30 | COMANAGE | 7 | 27 | 2025-11-05 | 2025-11-07 | 2026-04-11 |
| 进行中 | 罗先生 | 10.00 | 10.00 | 老客 | 0.01 | POOL | 1 | 89 | 2025-08-27 | 2026-04-12 | 2026-03-25 |
| 进行中 | 胡先生 | 10.00 | 8.08 | 老客 | 0.00 | POOL | 1 | 89 | 2025-08-31 | 2025-09-13 | 2026-03-29 |
| 进行中 | 蔡总 | 7.86 | 9.42 | 老客 | 6.30 | COMANAGE | 7 | 27 | 2026-04-08 | 2026-04-10 | 2026-04-11 |
| 进行中 | 孙总 | 7.69 | 8.27 | 老客 | 0.00 | POOL | 1 | 78 | 2026-01-25 | 2026-02-03 | 2026-01-26 |
**优先召回**10
| 状态 | 客户 | 优先级 | WBI | NCI | RS | OS | 服务次数 | 末次距今 | 创建 | 更新 | 最后到店 |
|------|------|--------|-----|-----|----|-----|----------|----------|------|------|----------|
| 进行中 | 叶先生 | 6.95 | 6.44 | 老客 | 0.09 | POOL | 1 | 78 | 2025-08-19 | 2026-02-26 | 2026-03-14 |
| 进行中 | 冯先生 | 6.87 | - | 0.09 | 0.00 | POOL | 1 | 89 | 2025-11-01 | 2025-12-04 | 2025-11-01 |
| 进行中 | 候 | 6.86 | 5.98 | 老客 | 0.00 | POOL | 1 | 89 | 2025-12-13 | 2026-02-14 | 2025-12-18 |
| 进行中 | 符先生 | 6.72 | - | 2.80 | 0.00 | POOL | 1 | 89 | 2025-09-03 | 2025-10-10 | 2025-09-03 |
| 进行中 | 李先生 | 6.47 | 6.47 | 老客 | 0.00 | POOL | 1 | 89 | 2025-11-06 | 2026-04-12 | 2026-01-01 |
| 进行中 | 胡总 | 5.21 | 6.14 | 老客 | 0.01 | POOL | 1 | 89 | 2025-12-21 | 2026-01-15 | 2025-12-28 |
| 进行中 | 周先生 | 5.01 | 6.86 | 老客 | 0.03 | POOL | 1 | 89 | 2025-08-31 | 2025-10-14 | 2025-10-25 |
| 进行中 | 蔡先生 | 5.01 | 0.00 | 老客 | 0.00 | POOL | 1 | 89 | 2025-08-22 | 2025-10-21 | 2026-04-04 |
| 进行中 | 柳先生 | 4.50 | 4.50 | 老客 | 2.34 | MAIN | 1 | 22 | 2026-03-22 | 2026-04-12 | 2026-03-22 |
| 进行中 | 阿亮 | 4.06 | 4.06 | 老客 | 2.00 | COMANAGE | 1 | 20 | 2025-11-26 | 2026-04-12 | 2026-03-28 |
**客户回访**4
| 状态 | 客户 | RS | OS | 服务次数 | 创建 | 更新 | 最后到店 | 完成/过期 |
|------|------|----|-----|----------|------|------|----------|-----------|
| 已过期 | 江先生 | 0.00 | POOL | 1 | 2025-11-02 | 2025-11-04 | 2026-04-01 | - |
| 已过期 | 蔡总 | 6.30 | COMANAGE | 7 | 2025-11-07 | 2025-11-10 | 2026-04-11 | - |
| 已过期 | 蔡总 | 6.30 | COMANAGE | 7 | 2026-01-22 | 2026-01-25 | 2026-04-11 | - |
| 已过期 | 蔡总 | 6.30 | COMANAGE | 7 | 2026-03-11 | 2026-03-13 | 2026-04-11 | - |
**关系构建**13
| 状态 | 客户 | RS | OS | 服务次数 | 末次距今 | MS | ML | 创建 | 更新 | 最后到店 |
|------|------|----|-----|----------|----------|-----|-----|------|------|----------|
| 进行中 | 轩哥 | 8.46 | POOL | 9 | 14 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-11 |
| 进行中 | 张先生 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-09-17 | 2025-09-17 | 2026-04-10 |
| 进行中 | 夏 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-08-15 | 2025-08-24 | 2025-11-09 |
| 进行中 | 陈淑涛 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-09-21 | 2025-11-16 | 2026-03-26 |
| 进行中 | 梅 | 3.55 | MAIN | 1 | 9 | 0.00 | 0.00 | 2026-04-04 | 2026-04-04 | 2026-04-06 |
| 进行中 | 吴生 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-11-10 | 2025-11-10 | 2026-04-11 |
| 进行中 | 明哥 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-11-28 | 2025-11-28 | 2026-04-02 |
| 进行中 | 罗先生 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-09-28 | 2025-09-28 | 2026-04-03 |
| 进行中 | 马先生 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-09-07 | 2025-10-31 | 2025-09-10 |
| 进行中 | 小燕 | 0.39 | POOL | 2 | 72 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-12 |
| 进行中 | 葛先生 | 0.03 | POOL | 1 | 89 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-12 |
| 进行中 | 江先生 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-01 |
| 进行中 | 胡先生 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2025-12-01 |
### 七七【在职】(进行中 29 / 已完成 3 / 共 35
**高优先召回**12
| 状态 | 客户 | 优先级 | WBI | NCI | RS | OS | 服务次数 | 末次距今 | 创建 | 更新 | 最后到店 |
|------|------|--------|-----|-----|----|-----|----------|----------|------|------|----------|
| 已完成 | 轩哥 | 8.03 | 0.00 | 老客 | 10.00 | MAIN | 40 | 2 | 2026-02-27 | 2026-03-10 | 2026-04-11 |
| 已完成 | 蔡总 | 8.02 | 9.42 | 老客 | 5.84 | COMANAGE | 4 | 26 | 2026-02-05 | 2026-03-11 | 2026-04-11 |
| 已完成 | 蔡总 | 7.66 | 9.42 | 老客 | 5.84 | COMANAGE | 4 | 26 | 2026-01-18 | 2026-01-22 | 2026-04-11 |
| 进行中 | 胡先生 | 8.08 | 8.08 | 老客 | 5.96 | MAIN | 5 | 20 | 2026-01-16 | 2026-04-13 | 2026-03-29 |
| 进行中 | 七七 | 8.08 | 10.00 | 老客 | 0.06 | POOL | 1 | 89 | 2025-09-09 | 2025-09-09 | 2025-08-26 |
| 进行中 | 小熊 | 7.87 | 7.90 | 老客 | 0.00 | POOL | 1 | 89 | 2025-11-04 | 2025-11-27 | 2026-01-17 |
| 进行中 | 蔡总 | 7.86 | 9.42 | 老客 | 5.84 | COMANAGE | 4 | 26 | 2026-04-08 | 2026-04-10 | 2026-04-11 |
| 进行中 | 林总 | 7.85 | 10.00 | 老客 | 0.00 | POOL | 1 | 89 | 2025-09-02 | 2026-01-29 | 2026-03-10 |
| 进行中 | 孙总 | 7.69 | 8.27 | 老客 | 0.17 | POOL | 1 | 80 | 2026-01-23 | 2026-02-03 | 2026-01-26 |
| 进行中 | T | 7.42 | 0.00 | 老客 | 0.00 | POOL | 1 | 89 | 2025-10-25 | 2025-11-09 | 2026-04-01 |
| 进行中 | 高冷 | 7.29 | 9.23 | 老客 | 0.01 | POOL | 1 | 89 | 2025-08-30 | 2025-09-14 | 2025-08-30 |
| 进行中 | 林先生 | 7.05 | 9.56 | 老客 | 0.01 | POOL | 1 | 89 | 2025-11-25 | 2026-01-14 | 2025-12-29 |
**优先召回**9
| 状态 | 客户 | 优先级 | WBI | NCI | RS | OS | 服务次数 | 末次距今 | 创建 | 更新 | 最后到店 |
|------|------|--------|-----|-----|----|-----|----------|----------|------|------|----------|
| 进行中 | 陈先生 | 7.02 | 7.02 | 老客 | 0.00 | POOL | 1 | 89 | 2026-04-12 | 2026-04-12 | 2026-03-13 |
| 进行中 | 许先生 | 6.85 | 6.48 | 老客 | 0.00 | POOL | 1 | 89 | 2025-08-17 | 2025-10-01 | 2025-08-29 |
| 进行中 | 胡先生 | 6.80 | 5.06 | 老客 | 0.01 | POOL | 1 | 89 | 2025-11-26 | 2026-01-09 | 2025-12-01 |
| 进行中 | 黄先生 | 5.28 | 6.00 | 老客 | 0.00 | POOL | 1 | 89 | 2025-08-19 | 2025-11-14 | 2026-03-21 |
| 进行中 | 陶 | 5.25 | 4.43 | 老客 | 0.00 | POOL | 1 | 89 | 2025-10-19 | 2025-11-08 | 2025-10-27 |
| 进行中 | 清 | 5.14 | 5.68 | 老客 | 2.84 | MAIN | 1 | 23 | 2026-03-21 | 2026-04-10 | 2026-03-22 |
| 进行中 | 邓飛 | 5.14 | 4.82 | 老客 | 0.00 | POOL | 1 | 89 | 2025-08-21 | 2025-09-28 | 2026-04-05 |
| 进行中 | 陈先生 | 5.10 | 5.10 | 老客 | 0.00 | POOL | 1 | 89 | 2025-09-03 | 2026-04-12 | 2025-10-18 |
| 进行中 | 游 | 4.83 | 4.83 | 老客 | 0.00 | POOL | 1 | 89 | 2025-11-29 | 2026-04-12 | 2025-12-13 |
**客户回访**3
| 状态 | 客户 | RS | OS | 服务次数 | 创建 | 更新 | 最后到店 | 完成/过期 |
|------|------|----|-----|----------|------|------|----------|-----------|
| 已过期 | 蔡总 | 5.84 | COMANAGE | 4 | 2026-01-22 | 2026-01-25 | 2026-04-11 | - |
| 已过期 | 蔡总 | 5.84 | COMANAGE | 4 | 2026-03-11 | 2026-03-13 | 2026-04-11 | - |
| 已过期 | 轩哥 | 10.00 | MAIN | 40 | 2026-03-10 | 2026-03-13 | 2026-04-11 | - |
**关系构建**11
| 状态 | 客户 | RS | OS | 服务次数 | 末次距今 | MS | ML | 创建 | 更新 | 最后到店 |
|------|------|----|-----|----------|----------|-----|-----|------|------|----------|
| 进行中 | 轩哥 | 10.00 | MAIN | 40 | 2 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-11 |
| 进行中 | 夏 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-09-30 | 2025-09-30 | 2025-11-09 |
| 进行中 | 蔡先生 | 3.86 | MAIN | 1 | 9 | 0.00 | 0.00 | 2026-04-04 | 2026-04-04 | 2026-04-04 |
| 进行中 | 张先生 | 2.75 | POOL | 2 | 21 | 0.00 | 0.00 | 2025-12-15 | 2026-03-23 | 2026-04-10 |
| 进行中 | 君姐 | 6.64 | MAIN | 5 | 19 | 0.00 | 0.00 | 2026-03-09 | 2026-03-09 | 2026-04-12 |
| 进行中 | 罗超 | 0.00 | POOL | 1 | 84 | 0.00 | 0.00 | 2026-01-19 | 2026-01-19 | 2026-01-19 |
| 进行中 | 江先生 | 0.15 | POOL | 2 | 83 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-01 |
| 进行中 | 小燕 | 0.13 | POOL | 1 | 73 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-12 |
| 进行中 | 罗先生 | 0.01 | POOL | 1 | 89 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-03-25 |
| 进行中 | 葛先生 | 0.00 | POOL | 1 | 84 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-12 |
| 进行中 | 叶总 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2025-10-28 |
### 小燕【在职】(进行中 6 / 已完成 3 / 共 12
**高优先召回**3
| 状态 | 客户 | 优先级 | WBI | NCI | RS | OS | 服务次数 | 末次距今 | 创建 | 更新 | 最后到店 |
|------|------|--------|-----|-----|----|-----|----------|----------|------|------|----------|
| 已完成 | 葛先生 | 8.62 | 0.00 | 老客 | 10.00 | MAIN | 44 | 2 | 2025-11-15 | 2026-03-05 | 2026-04-12 |
| 已完成 | 小燕 | 7.66 | 0.00 | 老客 | 9.35 | MAIN | 15 | 19 | 2025-11-17 | 2026-01-28 | 2026-04-12 |
| 已完成 | 小燕 | 7.05 | 0.00 | 老客 | 9.35 | MAIN | 15 | 19 | 2026-02-27 | 2026-03-21 | 2026-04-12 |
**客户回访**3
| 状态 | 客户 | RS | OS | 服务次数 | 创建 | 更新 | 最后到店 | 完成/过期 |
|------|------|----|-----|----------|------|------|----------|-----------|
| 已过期 | 小燕 | 9.35 | MAIN | 15 | 2026-01-28 | 2026-01-31 | 2026-04-12 | - |
| 已过期 | 葛先生 | 10.00 | MAIN | 44 | 2026-03-05 | 2026-03-07 | 2026-04-12 | - |
| 已过期 | 小燕 | 9.35 | MAIN | 15 | 2026-03-21 | 2026-03-24 | 2026-04-12 | - |
**关系构建**6
| 状态 | 客户 | RS | OS | 服务次数 | 末次距今 | MS | ML | 创建 | 更新 | 最后到店 |
|------|------|----|-----|----------|----------|-----|-----|------|------|----------|
| 进行中 | 葛先生 | 10.00 | MAIN | 44 | 2 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-12 |
| 进行中 | 小燕 | 9.35 | MAIN | 15 | 19 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-12 |
| 进行中 | 梅 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-11-22 | 2025-11-22 | 2026-04-06 |
| 进行中 | 轩哥 | 0.98 | POOL | 1 | 38 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-11 |
| 进行中 | 罗先生 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-03-25 |
| 进行中 | 蔡总 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-11 |
### 盈盈【在职】(进行中 11 / 已完成 0 / 共 11
**高优先召回**3
| 状态 | 客户 | 优先级 | WBI | NCI | RS | OS | 服务次数 | 末次距今 | 创建 | 更新 | 最后到店 |
|------|------|--------|-----|-----|----|-----|----------|----------|------|------|----------|
| 进行中 | 东哥 | 10.00 | - | 10.00 | 4.30 | COMANAGE | 1 | 20 | 2026-03-23 | 2026-04-01 | 2026-03-24 |
| 进行中 | 林总 | 8.51 | 10.00 | 老客 | 1.35 | MAIN | 1 | 34 | 2026-03-10 | 2026-03-25 | 2026-03-10 |
| 进行中 | 蔡总 | 7.86 | 9.42 | 老客 | 5.75 | COMANAGE | 3 | 21 | 2026-04-07 | 2026-04-10 | 2026-04-11 |
**优先召回**2
| 状态 | 客户 | 优先级 | WBI | NCI | RS | OS | 服务次数 | 末次距今 | 创建 | 更新 | 最后到店 |
|------|------|--------|-----|-----|----|-----|----------|----------|------|------|----------|
| 进行中 | 黄先生 | 4.70 | - | 4.70 | 2.59 | MAIN | 1 | 18 | 2026-03-26 | 2026-04-12 | 2026-03-26 |
| 进行中 | 歌神 | 4.09 | 4.09 | 老客 | 2.49 | MAIN | 1 | 22 | 2026-03-22 | 2026-04-12 | 2026-03-29 |
**关系构建**6
| 状态 | 客户 | RS | OS | 服务次数 | 末次距今 | MS | ML | 创建 | 更新 | 最后到店 |
|------|------|----|-----|----------|----------|-----|-----|------|------|----------|
| 进行中 | 轩哥 | 8.34 | POOL | 5 | 12 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-11 |
| 进行中 | 陈腾鑫 | 4.36 | MAIN | 3 | 28 | 0.00 | 0.00 | 2026-03-14 | 2026-03-14 | 2026-04-05 |
| 进行中 | 孙先生 | 2.73 | MAIN | 1 | 20 | 0.00 | 0.00 | 2026-03-24 | 2026-03-24 | 2026-04-11 |
| 进行中 | 胡先生 | 1.41 | POOL | 1 | 32 | 0.00 | 0.00 | 2026-03-12 | 2026-03-12 | 2026-03-29 |
| 进行中 | 小燕 | 2.07 | POOL | 1 | 22 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-12 |
| 进行中 | 葛先生 | 1.52 | POOL | 1 | 27 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-12 |
### 北北【在职】(进行中 9 / 已完成 0 / 共 9
**优先召回**1
| 状态 | 客户 | 优先级 | WBI | NCI | RS | OS | 服务次数 | 末次距今 | 创建 | 更新 | 最后到店 |
|------|------|--------|-----|-----|----|-----|----------|----------|------|------|----------|
| 进行中 | 阿亮 | 4.06 | 4.06 | 老客 | 3.65 | MAIN | 2 | 22 | 2026-03-20 | 2026-04-12 | 2026-03-28 |
**关系构建**8
| 状态 | 客户 | RS | OS | 服务次数 | 末次距今 | MS | ML | 创建 | 更新 | 最后到店 |
|------|------|----|-----|----------|----------|-----|-----|------|------|----------|
| 进行中 | 林先生 | 2.08 | MAIN | 1 | 27 | 0.00 | 0.00 | 2026-03-17 | 2026-03-17 | 2026-03-17 |
| 进行中 | 陈腾鑫 | 5.06 | MAIN | 3 | 18 | 0.00 | 0.00 | 2026-03-16 | 2026-03-16 | 2026-04-05 |
| 进行中 | 昌哥 | 3.92 | COMANAGE | 1 | 3 | 0.00 | 0.00 | 2026-04-10 | 2026-04-10 | 2026-04-10 |
| 进行中 | 张先生 | 7.94 | MAIN | 4 | 3 | 0.00 | 0.00 | 2026-03-21 | 2026-03-21 | 2026-04-10 |
| 进行中 | 罗先生 | 2.87 | COMANAGE | 1 | 11 | 0.00 | 0.00 | 2026-04-02 | 2026-04-02 | 2026-04-03 |
| 进行中 | 李先生 | 5.84 | MAIN | 2 | 2 | 0.00 | 0.00 | 2026-03-17 | 2026-03-17 | 2026-04-11 |
| 进行中 | 歌神 | 1.57 | COMANAGE | 1 | 23 | 0.00 | 0.00 | 2026-03-21 | 2026-03-21 | 2026-03-29 |
| 进行中 | 葛先生 | 2.29 | POOL | 1 | 25 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-12 |
### 喵喵【在职】(进行中 7 / 已完成 0 / 共 7
**优先召回**1
| 状态 | 客户 | 优先级 | WBI | NCI | RS | OS | 服务次数 | 末次距今 | 创建 | 更新 | 最后到店 |
|------|------|--------|-----|-----|----|-----|----------|----------|------|------|----------|
| 进行中 | 小宇 | 6.88 | 6.88 | 老客 | 3.61 | MAIN | 1 | 4 | 2026-04-09 | 2026-04-12 | 2026-04-12 |
**关系构建**6
| 状态 | 客户 | RS | OS | 服务次数 | 末次距今 | MS | ML | 创建 | 更新 | 最后到店 |
|------|------|----|-----|----------|----------|-----|-----|------|------|----------|
| 进行中 | 轩哥 | 6.65 | POOL | 2 | 3 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-11 |
| 进行中 | 羊 | 4.99 | MAIN | 1 | 3 | 0.00 | 0.00 | 2026-04-10 | 2026-04-10 | 2026-04-10 |
| 进行中 | H | 5.02 | MAIN | 1 | 2 | 0.00 | 0.00 | 2026-04-11 | 2026-04-11 | 2026-04-12 |
| 进行中 | 梅 | 4.38 | MAIN | 1 | 7 | 0.00 | 0.00 | 2026-04-06 | 2026-04-06 | 2026-04-06 |
| 进行中 | 陈腾鑫 | 3.79 | COMANAGE | 1 | 8 | 0.00 | 0.00 | 2026-04-05 | 2026-04-05 | 2026-04-05 |
| 进行中 | 李先生 | 3.08 | COMANAGE | 1 | 12 | 0.00 | 0.00 | 2026-04-01 | 2026-04-01 | 2026-04-11 |
### 琪琪【在职】(进行中 5 / 已完成 0 / 共 5
**高优先召回**1
| 状态 | 客户 | 优先级 | WBI | NCI | RS | OS | 服务次数 | 末次距今 | 创建 | 更新 | 最后到店 |
|------|------|--------|-----|-----|----|-----|----------|----------|------|------|----------|
| 进行中 | 潘先生 | 7.03 | 8.36 | 老客 | 2.08 | COMANAGE | 1 | 24 | 2026-03-20 | 2026-04-10 | 2026-03-20 |
**关系构建**4
| 状态 | 客户 | RS | OS | 服务次数 | 末次距今 | MS | ML | 创建 | 更新 | 最后到店 |
|------|------|----|-----|----------|----------|-----|-----|------|------|----------|
| 进行中 | 葛先生 | 4.26 | POOL | 2 | 21 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-12 |
| 进行中 | 林先生 | 1.56 | MAIN | 1 | 34 | 0.00 | 0.00 | 2026-03-10 | 2026-03-10 | 2026-03-17 |
| 进行中 | 张先生 | 3.45 | POOL | 2 | 24 | 0.00 | 0.00 | 2026-03-15 | 2026-03-15 | 2026-04-10 |
| 进行中 | 小燕 | 2.58 | POOL | 1 | 21 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-12 |
### 小贝【在职】(进行中 3 / 已完成 1 / 共 5
**高优先召回**1
| 状态 | 客户 | 优先级 | WBI | NCI | RS | OS | 服务次数 | 末次距今 | 创建 | 更新 | 最后到店 |
|------|------|--------|-----|-----|----|-----|----------|----------|------|------|----------|
| 已完成 | 蔡总 | 10.00 | 9.42 | 老客 | 1.52 | POOL | 1 | 34 | 2026-03-10 | 2026-03-11 | 2026-04-11 |
**客户回访**1
| 状态 | 客户 | RS | OS | 服务次数 | 创建 | 更新 | 最后到店 | 完成/过期 |
|------|------|----|-----|----------|------|------|----------|-----------|
| 已过期 | 蔡总 | 1.52 | POOL | 1 | 2026-03-11 | 2026-03-13 | 2026-04-11 | - |
**关系构建**3
| 状态 | 客户 | RS | OS | 服务次数 | 末次距今 | MS | ML | 创建 | 更新 | 最后到店 |
|------|------|----|-----|----------|----------|-----|-----|------|------|----------|
| 进行中 | 蔡总 | 1.52 | POOL | 1 | 34 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-11 |
| 进行中 | 轩哥 | 1.46 | POOL | 1 | 38 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-11 |
| 进行中 | 陈腾鑫 | 0.88 | POOL | 1 | 38 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-05 |
### 西西【在职】(进行中 4 / 已完成 0 / 共 4
**高优先召回**3
| 状态 | 客户 | 优先级 | WBI | NCI | RS | OS | 服务次数 | 末次距今 | 创建 | 更新 | 最后到店 |
|------|------|--------|-----|-----|----|-----|----------|----------|------|------|----------|
| 进行中 | 东哥 | 10.00 | - | 10.00 | 6.96 | MAIN | 4 | 20 | 2026-03-15 | 2026-04-01 | 2026-03-24 |
| 进行中 | 蔡总 | 9.42 | 9.42 | 老客 | 1.64 | POOL | 1 | 28 | 2026-04-12 | 2026-04-12 | 2026-04-11 |
| 进行中 | 胡先生 | 8.08 | 8.08 | 老客 | 2.20 | POOL | 1 | 28 | 2026-03-16 | 2026-04-12 | 2026-03-29 |
**关系构建**1
| 状态 | 客户 | RS | OS | 服务次数 | 末次距今 | MS | ML | 创建 | 更新 | 最后到店 |
|------|------|----|-----|----------|----------|-----|-----|------|------|----------|
| 进行中 | 君姐 | 3.27 | COMANAGE | 1 | 12 | 0.00 | 0.00 | 2026-04-01 | 2026-04-01 | 2026-04-12 |
### 小柳【在职】(进行中 3 / 已完成 0 / 共 3
**关系构建**3
| 状态 | 客户 | RS | OS | 服务次数 | 末次距今 | MS | ML | 创建 | 更新 | 最后到店 |
|------|------|----|-----|----------|----------|-----|-----|------|------|----------|
| 进行中 | 昌哥 | 5.79 | MAIN | 2 | 3 | 0.00 | 0.00 | 2026-03-27 | 2026-03-27 | 2026-04-10 |
| 进行中 | 艾宇民 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2025-09-12 | 2025-09-12 | 2026-03-08 |
| 进行中 | 轩哥 | 0.00 | POOL | 1 | 89 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-11 |
### 点点【在职】(进行中 3 / 已完成 0 / 共 3
**关系构建**3
| 状态 | 客户 | RS | OS | 服务次数 | 末次距今 | MS | ML | 创建 | 更新 | 最后到店 |
|------|------|----|-----|----------|----------|-----|-----|------|------|----------|
| 进行中 | H | 5.02 | MAIN | 1 | 2 | 0.00 | 0.00 | 2026-04-11 | 2026-04-11 | 2026-04-12 |
| 进行中 | 轩哥 | 4.00 | POOL | 1 | 3 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-11 |
| 进行中 | 张先生 | 5.13 | COMANAGE | 2 | 10 | 0.00 | 0.00 | 2026-04-01 | 2026-04-01 | 2026-04-10 |
### 闹闹【在职】(进行中 3 / 已完成 0 / 共 3
**高优先召回**1
| 状态 | 客户 | 优先级 | WBI | NCI | RS | OS | 服务次数 | 末次距今 | 创建 | 更新 | 最后到店 |
|------|------|--------|-----|-----|----|-----|----------|----------|------|------|----------|
| 进行中 | 潘先生 | 7.03 | 8.36 | 老客 | 2.08 | COMANAGE | 1 | 24 | 2026-03-20 | 2026-04-10 | 2026-03-20 |
**关系构建**2
| 状态 | 客户 | RS | OS | 服务次数 | 末次距今 | MS | ML | 创建 | 更新 | 最后到店 |
|------|------|----|-----|----------|----------|-----|-----|------|------|----------|
| 进行中 | 葛先生 | 4.77 | POOL | 1 | 6 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-12 |
| 进行中 | 轩哥 | 1.84 | POOL | 1 | 25 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-11 |
### 一一【在职】(进行中 3 / 已完成 0 / 共 3
**优先召回**1
| 状态 | 客户 | 优先级 | WBI | NCI | RS | OS | 服务次数 | 末次距今 | 创建 | 更新 | 最后到店 |
|------|------|--------|-----|-----|----|-----|----------|----------|------|------|----------|
| 进行中 | 小宇 | 6.88 | 6.88 | 老客 | 4.09 | MAIN | 1 | 4 | 2026-04-09 | 2026-04-12 | 2026-04-12 |
**关系构建**2
| 状态 | 客户 | RS | OS | 服务次数 | 末次距今 | MS | ML | 创建 | 更新 | 最后到店 |
|------|------|----|-----|----------|----------|-----|-----|------|------|----------|
| 进行中 | 羊 | 4.76 | MAIN | 1 | 3 | 0.00 | 0.00 | 2026-04-10 | 2026-04-10 | 2026-04-10 |
| 进行中 | 葛先生 | 4.88 | POOL | 1 | 5 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-12 |
### 吱吱【在职】(进行中 2 / 已完成 0 / 共 2
**关系构建**2
| 状态 | 客户 | RS | OS | 服务次数 | 末次距今 | MS | ML | 创建 | 更新 | 最后到店 |
|------|------|----|-----|----------|----------|-----|-----|------|------|----------|
| 进行中 | 轩哥 | 4.03 | POOL | 1 | 3 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-11 |
| 进行中 | H | 3.53 | COMANAGE | 1 | 7 | 0.00 | 0.00 | 2026-04-06 | 2026-04-06 | 2026-04-12 |
### 小野【在职】(进行中 2 / 已完成 0 / 共 2
**关系构建**2
| 状态 | 客户 | RS | OS | 服务次数 | 末次距今 | MS | ML | 创建 | 更新 | 最后到店 |
|------|------|----|-----|----------|----------|-----|-----|------|------|----------|
| 进行中 | 小燕 | 5.78 | COMANAGE | 2 | 6 | 0.00 | 0.00 | 2026-04-08 | 2026-04-08 | 2026-04-12 |
| 进行中 | 葛先生 | 5.90 | POOL | 2 | 4 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-12 |
### 饱饱【在职】(进行中 1 / 已完成 0 / 共 1
**关系构建**1
| 状态 | 客户 | RS | OS | 服务次数 | 末次距今 | MS | ML | 创建 | 更新 | 最后到店 |
|------|------|----|-----|----------|----------|-----|-----|------|------|----------|
| 进行中 | 轩哥 | 2.02 | POOL | 1 | 29 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-11 |
### 翠翠【在职】(进行中 1 / 已完成 0 / 共 1
**关系构建**1
| 状态 | 客户 | RS | OS | 服务次数 | 末次距今 | MS | ML | 创建 | 更新 | 最后到店 |
|------|------|----|-----|----------|----------|-----|-----|------|------|----------|
| 进行中 | 轩哥 | 2.10 | POOL | 1 | 14 | 0.00 | 0.00 | 2026-04-12 | 2026-04-12 | 2026-04-11 |
## 三、趋势分析
### 3.1 月度创建/完成/过期
| 月份 | 创建 | 完成 | 过期 |
|------|------|------|------|
| 2025-08-01 | 51 | 13 | 2 |
| 2025-09-01 | 33 | 1 | 5 |
| 2025-10-01 | 23 | 4 | 2 |
| 2025-11-01 | 45 | 8 | 6 |
| 2025-12-01 | 13 | 1 | 0 |
| 2026-01-01 | 24 | 3 | 7 |
| 2026-02-01 | 9 | 9 | 0 |
| 2026-03-01 | 47 | 1 | 14 |
| 2026-04-01 | 77 | 0 | 1 |
### 3.2 召回完成率
- 召回任务总数156
- 已完成40
- 完成率:**25.6%**
### 3.3 助教任务量排行(进行中)
| 排名 | 助教 | 高优先 | 优先 | 回访 | 关系 | 合计 |
|------|------|--------|------|------|------|------|
| 1 | 婉婉 | 13 | 13 | 2 | 14 | 42 |
| 2 | 小柔 | 7 | 7 | 1 | 16 | 31 |
| 3 | 佳怡 | 10 | 8 | 0 | 11 | 29 |
| 4 | 七七 | 9 | 9 | 0 | 11 | 29 |
| 5 | 涛涛 | 4 | 10 | 0 | 13 | 27 |
| 6 | 璇子 | 10 | 3 | 0 | 11 | 24 |
| 7 | 盈盈 | 3 | 2 | 0 | 6 | 11 |
| 8 | 北北 | 0 | 1 | 0 | 8 | 9 |
| 9 | 喵喵 | 0 | 1 | 0 | 6 | 7 |
| 10 | 小燕 | 0 | 0 | 0 | 6 | 6 |
| 11 | 琪琪 | 1 | 0 | 0 | 4 | 5 |
| 12 | 西西 | 3 | 0 | 0 | 1 | 4 |
| 13 | 小柳 | 0 | 0 | 0 | 3 | 3 |
| 14 | 点点 | 0 | 0 | 0 | 3 | 3 |
| 15 | 闹闹 | 1 | 0 | 0 | 2 | 3 |
| 16 | 一一 | 0 | 1 | 0 | 2 | 3 |
| 17 | 小贝 | 0 | 0 | 0 | 3 | 3 |
| 18 | 吱吱 | 0 | 0 | 0 | 2 | 2 |
| 19 | 小野 | 0 | 0 | 0 | 2 | 2 |
| 20 | 饱饱 | 0 | 0 | 0 | 1 | 1 |
| 21 | 翠翠 | 0 | 0 | 0 | 1 | 1 |

View File

@@ -146,7 +146,7 @@ cd apps/admin-web && pnpm exec vitest run
cd apps/admin-web && pnpm exec tsc --noEmit
# 属性测试
cd C:\NeoZQYY && pytest tests/ -v
cd C:\Project\NeoZQYY && pytest tests/ -v
```
## 内联注释决策

View File

@@ -7,7 +7,7 @@
## 变更概述
将单一 ETL 仓库C:\ZQYY\FQ-ETL迁移为 Monorepo 单体仓库C:\NeoZQYY整合 ETL、后端、小程序、GUI 等子项目。一次性搬迁策略,不保留 Git 历史。
将单一 ETL 仓库C:\ZQYY\FQ-ETL迁移为 Monorepo 单体仓库C:\Project\NeoZQYY整合 ETL、后端、小程序、GUI 等子项目。一次性搬迁策略,不保留 Git 历史。
## 变更清单
@@ -76,7 +76,7 @@
## 后续建议
1. 在 C:\NeoZQYY\apps\etl\pipelines\feiqiu\ 下运行 `pytest tests/unit` 确认测试通过
1. 在 C:\Project\NeoZQYY\apps\etl\pipelines\feiqiu\ 下运行 `pytest tests/unit` 确认测试通过
2. 修复源仓库已有的 5 个失败测试
3. DB Schema DDL 在测试环境验证后再应用到生产
4. 首次 `git add . && git commit` 建立基线

View File

@@ -1,6 +1,6 @@
-- =============================================================================
-- etl_feiqiu / appRLS 视图层)
-- 生成日期2026-04-06
-- 生成日期2026-04-12
-- 来源:测试库(通过脚本自动导出)
-- =============================================================================
@@ -439,10 +439,8 @@ SELECT table_fee_log_id,
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
;
-- CHANGE 2026-04-08 | DISTINCT ON 只取每对 (assistant, member) 最新快照
CREATE OR REPLACE VIEW app.v_dws_assistant_customer_stats AS
SELECT DISTINCT ON (assistant_id, member_id)
id,
SELECT DISTINCT ON (assistant_id, member_id) id,
site_id,
tenant_id,
assistant_id,
@@ -946,7 +944,7 @@ SELECT intimacy_id,
;
CREATE OR REPLACE VIEW app.v_dws_member_assistant_relation_index AS
SELECT relation_id,
SELECT DISTINCT ON (member_id, assistant_id) relation_id,
site_id,
tenant_id,
member_id,
@@ -974,15 +972,21 @@ SELECT relation_id,
ml_display,
calc_time,
created_at,
updated_at
updated_at,
recall_created_total,
recall_completed_total,
follow_up_created_total,
follow_up_completed_total,
total_created,
total_completed,
stat_date
FROM dws.dws_member_assistant_relation_index
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint)
ORDER BY member_id, assistant_id, stat_date DESC;
;
-- CHANGE 2026-04-08 | DISTINCT ON 只取每个会员最新快照,避免多 stat_date 行膨胀
CREATE OR REPLACE VIEW app.v_dws_member_consumption_summary AS
SELECT DISTINCT ON (member_id)
id,
SELECT DISTINCT ON (member_id) id,
site_id,
tenant_id,
member_id,
@@ -1034,7 +1038,7 @@ SELECT DISTINCT ON (member_id)
;
CREATE OR REPLACE VIEW app.v_dws_member_newconv_index AS
SELECT newconv_id,
SELECT DISTINCT ON (member_id) newconv_id,
site_id,
tenant_id,
member_id,
@@ -1071,9 +1075,11 @@ SELECT newconv_id,
calc_time,
calc_version,
created_at,
updated_at
updated_at,
stat_date
FROM dws.dws_member_newconv_index
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint)
ORDER BY member_id, stat_date DESC;
;
CREATE OR REPLACE VIEW app.v_dws_member_project_tag AS
@@ -1160,7 +1166,7 @@ SELECT id,
;
CREATE OR REPLACE VIEW app.v_dws_member_winback_index AS
SELECT winback_id,
SELECT DISTINCT ON (member_id) winback_id,
site_id,
tenant_id,
member_id,
@@ -1195,9 +1201,11 @@ SELECT winback_id,
updated_at,
overdue_cdf_p,
ideal_interval_days,
ideal_next_visit_date
ideal_next_visit_date,
stat_date
FROM dws.dws_member_winback_index
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint);
WHERE (site_id = (current_setting('app.current_site_id'::text))::bigint)
ORDER BY member_id, stat_date DESC;
;
CREATE OR REPLACE VIEW app.v_dws_order_summary AS

View File

@@ -1,6 +1,6 @@
-- =============================================================================
-- etl_feiqiu / core跨门店标准化维度/事实)
-- 生成日期2026-04-06
-- 生成日期2026-04-12
-- 来源:测试库(通过脚本自动导出)
-- =============================================================================

View File

@@ -1,6 +1,6 @@
-- =============================================================================
-- etl_feiqiu / dwd明细数据层
-- 生成日期2026-04-06
-- 生成日期2026-04-12
-- 来源:测试库(通过脚本自动导出)
-- =============================================================================

View File

@@ -1,6 +1,6 @@
-- =============================================================================
-- etl_feiqiu / dws汇总数据层
-- 生成日期2026-04-06
-- 生成日期2026-04-12
-- 来源:测试库(通过脚本自动导出)
-- =============================================================================
@@ -722,7 +722,8 @@ CREATE TABLE dws.dws_member_assistant_relation_index (
follow_up_created_total integer DEFAULT 0 NOT NULL,
follow_up_completed_total integer DEFAULT 0 NOT NULL,
total_created integer DEFAULT 0 NOT NULL,
total_completed integer DEFAULT 0 NOT NULL
total_completed integer DEFAULT 0 NOT NULL,
stat_date date DEFAULT CURRENT_DATE NOT NULL
);
CREATE TABLE dws.dws_member_consumption_summary (
@@ -789,7 +790,6 @@ CREATE TABLE dws.dws_member_newconv_index (
t_r numeric(6,2),
t_a numeric(6,2),
visits_14d integer DEFAULT 0 NOT NULL,
visits_30d integer DEFAULT 0 NOT NULL,
visits_60d integer DEFAULT 0 NOT NULL,
visits_total integer DEFAULT 0 NOT NULL,
spend_30d numeric(14,2) DEFAULT 0 NOT NULL,
@@ -812,7 +812,9 @@ CREATE TABLE dws.dws_member_newconv_index (
calc_time timestamp with time zone DEFAULT now() NOT NULL,
calc_version integer DEFAULT 1 NOT NULL,
created_at timestamp with time zone DEFAULT now() NOT NULL,
updated_at timestamp with time zone DEFAULT now() NOT NULL
updated_at timestamp with time zone DEFAULT now() NOT NULL,
visits_30d integer DEFAULT 0 NOT NULL,
stat_date date DEFAULT CURRENT_DATE NOT NULL
);
CREATE TABLE dws.dws_member_project_tag (
@@ -908,7 +910,6 @@ CREATE TABLE dws.dws_member_winback_index (
t_r numeric(6,2),
t_a numeric(6,2),
visits_14d integer DEFAULT 0 NOT NULL,
visits_30d integer DEFAULT 0 NOT NULL,
visits_60d integer DEFAULT 0 NOT NULL,
visits_total integer DEFAULT 0 NOT NULL,
spend_30d numeric(14,2) DEFAULT 0 NOT NULL,
@@ -929,7 +930,9 @@ CREATE TABLE dws.dws_member_winback_index (
updated_at timestamp with time zone DEFAULT now() NOT NULL,
overdue_cdf_p numeric(10,4),
ideal_interval_days numeric(10,2),
ideal_next_visit_date date
ideal_next_visit_date date,
visits_30d integer DEFAULT 0 NOT NULL,
stat_date date DEFAULT CURRENT_DATE NOT NULL
);
CREATE TABLE dws.dws_ml_manual_order_alloc (
@@ -1093,18 +1096,18 @@ ALTER TABLE dws.dws_index_percentile_history ADD CONSTRAINT uk_dws_index_percent
ALTER TABLE dws.dws_member_assistant_intimacy ADD CONSTRAINT dws_member_assistant_intimacy_pkey PRIMARY KEY (intimacy_id);
ALTER TABLE dws.dws_member_assistant_intimacy ADD CONSTRAINT uk_dws_member_assistant_intimacy UNIQUE (site_id, member_id, assistant_id);
ALTER TABLE dws.dws_member_assistant_relation_index ADD CONSTRAINT dws_member_assistant_relation_index_pkey PRIMARY KEY (relation_id);
ALTER TABLE dws.dws_member_assistant_relation_index ADD CONSTRAINT uk_dws_member_assistant_relation_index UNIQUE (site_id, member_id, assistant_id);
ALTER TABLE dws.dws_member_assistant_relation_index ADD CONSTRAINT uk_dws_member_assistant_relation_index UNIQUE (site_id, member_id, assistant_id, stat_date);
ALTER TABLE dws.dws_member_consumption_summary ADD CONSTRAINT dws_member_consumption_summary_pkey PRIMARY KEY (id);
ALTER TABLE dws.dws_member_consumption_summary ADD CONSTRAINT uk_dws_member_consumption UNIQUE (site_id, member_id, stat_date);
ALTER TABLE dws.dws_member_newconv_index ADD CONSTRAINT dws_member_newconv_index_pkey PRIMARY KEY (newconv_id);
ALTER TABLE dws.dws_member_newconv_index ADD CONSTRAINT uk_dws_member_newconv UNIQUE (site_id, member_id);
ALTER TABLE dws.dws_member_newconv_index ADD CONSTRAINT uk_dws_member_newconv UNIQUE (site_id, member_id, stat_date);
ALTER TABLE dws.dws_member_project_tag ADD CONSTRAINT pk_dws_member_project_tag PRIMARY KEY (id);
ALTER TABLE dws.dws_member_project_tag ADD CONSTRAINT uk_dws_member_project_tag UNIQUE (site_id, member_id, time_window, category_code);
ALTER TABLE dws.dws_member_spending_power_index ADD CONSTRAINT dws_member_spending_power_index_pkey PRIMARY KEY (spi_id);
ALTER TABLE dws.dws_member_visit_detail ADD CONSTRAINT dws_member_visit_detail_pkey PRIMARY KEY (id);
ALTER TABLE dws.dws_member_visit_detail ADD CONSTRAINT uk_dws_member_visit UNIQUE (site_id, member_id, order_settle_id);
ALTER TABLE dws.dws_member_winback_index ADD CONSTRAINT dws_member_winback_index_pkey PRIMARY KEY (winback_id);
ALTER TABLE dws.dws_member_winback_index ADD CONSTRAINT uk_dws_member_winback UNIQUE (site_id, member_id);
ALTER TABLE dws.dws_member_winback_index ADD CONSTRAINT uk_dws_member_winback UNIQUE (site_id, member_id, stat_date);
ALTER TABLE dws.dws_ml_manual_order_alloc ADD CONSTRAINT dws_ml_manual_order_alloc_pkey PRIMARY KEY (alloc_id);
ALTER TABLE dws.dws_ml_manual_order_alloc ADD CONSTRAINT uk_dws_ml_manual_order_alloc UNIQUE (site_id, external_id, assistant_id);
ALTER TABLE dws.dws_ml_manual_order_source ADD CONSTRAINT dws_ml_manual_order_source_pkey PRIMARY KEY (source_id);
@@ -1164,12 +1167,13 @@ CREATE INDEX idx_dws_percentile_history ON dws.dws_index_percentile_history USIN
CREATE INDEX idx_dws_intimacy_assistant ON dws.dws_member_assistant_intimacy USING btree (site_id, assistant_id, display_score DESC);
CREATE INDEX idx_dws_intimacy_member ON dws.dws_member_assistant_intimacy USING btree (site_id, member_id, display_score DESC);
CREATE INDEX idx_dws_relation_assistant ON dws.dws_member_assistant_relation_index USING btree (site_id, assistant_id, rs_display DESC);
CREATE INDEX idx_dws_relation_calc_time ON dws.dws_member_assistant_relation_index USING btree (calc_time);
CREATE INDEX idx_dws_relation_member ON dws.dws_member_assistant_relation_index USING btree (site_id, member_id, os_share DESC);
CREATE INDEX idx_dws_relation_stat_date ON dws.dws_member_assistant_relation_index USING btree (site_id, stat_date);
CREATE INDEX idx_dws_member_consumption_date ON dws.dws_member_consumption_summary USING btree (stat_date);
CREATE INDEX idx_dws_member_consumption_member ON dws.dws_member_consumption_summary USING btree (member_id, stat_date);
CREATE INDEX idx_dws_member_consumption_tier ON dws.dws_member_consumption_summary USING btree (customer_tier);
CREATE INDEX idx_dws_newconv_display ON dws.dws_member_newconv_index USING btree (site_id, display_score DESC);
CREATE INDEX idx_dws_newconv_stat_date ON dws.dws_member_newconv_index USING btree (site_id, stat_date);
CREATE INDEX idx_mpt_site_window_tagged ON dws.dws_member_project_tag USING btree (site_id, time_window) WHERE (is_tagged = true);
CREATE INDEX idx_spi_display_score ON dws.dws_member_spending_power_index USING btree (site_id, display_score DESC);
CREATE UNIQUE INDEX idx_spi_site_member ON dws.dws_member_spending_power_index USING btree (site_id, member_id);
@@ -1177,6 +1181,7 @@ CREATE INDEX idx_dws_member_visit_date ON dws.dws_member_visit_detail USING btre
CREATE INDEX idx_dws_member_visit_member ON dws.dws_member_visit_detail USING btree (member_id, visit_date);
CREATE INDEX idx_dws_member_visit_order ON dws.dws_member_visit_detail USING btree (order_settle_id);
CREATE INDEX idx_dws_winback_display ON dws.dws_member_winback_index USING btree (site_id, display_score DESC);
CREATE INDEX idx_dws_winback_stat_date ON dws.dws_member_winback_index USING btree (site_id, stat_date);
CREATE INDEX idx_dws_ml_alloc_member_assistant ON dws.dws_ml_manual_order_alloc USING btree (site_id, member_id, assistant_id);
CREATE INDEX idx_dws_ml_alloc_scope ON dws.dws_ml_manual_order_alloc USING btree (site_id, biz_date);
CREATE INDEX idx_dws_ml_source_external ON dws.dws_ml_manual_order_source USING btree (site_id, external_id);
@@ -1285,27 +1290,27 @@ SELECT id,
;
CREATE OR REPLACE VIEW dws.v_member_recall_priority AS
SELECT dws_member_winback_index.site_id,
dws_member_winback_index.tenant_id,
dws_member_winback_index.member_id,
SELECT w.site_id,
w.tenant_id,
w.member_id,
'WBI'::character varying(10) AS index_type,
dws_member_winback_index.status,
dws_member_winback_index.segment,
dws_member_winback_index.member_create_time,
dws_member_winback_index.first_visit_time,
dws_member_winback_index.last_visit_time,
dws_member_winback_index.last_recharge_time,
dws_member_winback_index.t_v,
dws_member_winback_index.t_r,
dws_member_winback_index.t_a,
dws_member_winback_index.visits_14d,
dws_member_winback_index.visits_30d,
dws_member_winback_index.visits_60d,
dws_member_winback_index.visits_total,
dws_member_winback_index.spend_30d,
dws_member_winback_index.spend_180d,
dws_member_winback_index.sv_balance,
dws_member_winback_index.recharge_60d_amt,
w.status,
w.segment,
w.member_create_time,
w.first_visit_time,
w.last_visit_time,
w.last_recharge_time,
w.t_v,
w.t_r,
w.t_a,
w.visits_14d,
w.visits_30d,
w.visits_60d,
w.visits_total,
w.spend_30d,
w.spend_180d,
w.sv_balance,
w.recharge_60d_amt,
NULL::numeric(10,4) AS need_new,
NULL::numeric(10,4) AS salvage_new,
NULL::numeric(10,4) AS recharge_new,
@@ -1313,49 +1318,127 @@ SELECT dws_member_winback_index.site_id,
NULL::numeric(10,4) AS welcome_new,
NULL::numeric(14,6) AS raw_score_welcome,
NULL::numeric(14,6) AS raw_score_convert,
dws_member_winback_index.raw_score,
w.raw_score,
NULL::numeric(4,2) AS display_score_welcome,
NULL::numeric(4,2) AS display_score_convert,
dws_member_winback_index.display_score,
dws_member_winback_index.last_wechat_touch_time,
dws_member_winback_index.calc_time
FROM dws.dws_member_winback_index
w.display_score,
w.last_wechat_touch_time,
w.calc_time
FROM ( SELECT DISTINCT ON (dws_member_winback_index.site_id, dws_member_winback_index.member_id) dws_member_winback_index.winback_id,
dws_member_winback_index.site_id,
dws_member_winback_index.tenant_id,
dws_member_winback_index.member_id,
dws_member_winback_index.status,
dws_member_winback_index.segment,
dws_member_winback_index.member_create_time,
dws_member_winback_index.first_visit_time,
dws_member_winback_index.last_visit_time,
dws_member_winback_index.last_recharge_time,
dws_member_winback_index.t_v,
dws_member_winback_index.t_r,
dws_member_winback_index.t_a,
dws_member_winback_index.visits_14d,
dws_member_winback_index.visits_60d,
dws_member_winback_index.visits_total,
dws_member_winback_index.spend_30d,
dws_member_winback_index.spend_180d,
dws_member_winback_index.sv_balance,
dws_member_winback_index.recharge_60d_amt,
dws_member_winback_index.interval_count,
dws_member_winback_index.overdue_old,
dws_member_winback_index.drop_old,
dws_member_winback_index.recharge_old,
dws_member_winback_index.value_old,
dws_member_winback_index.raw_score,
dws_member_winback_index.display_score,
dws_member_winback_index.last_wechat_touch_time,
dws_member_winback_index.calc_time,
dws_member_winback_index.calc_version,
dws_member_winback_index.created_at,
dws_member_winback_index.updated_at,
dws_member_winback_index.overdue_cdf_p,
dws_member_winback_index.ideal_interval_days,
dws_member_winback_index.ideal_next_visit_date,
dws_member_winback_index.visits_30d,
dws_member_winback_index.stat_date
FROM dws.dws_member_winback_index
ORDER BY dws_member_winback_index.site_id, dws_member_winback_index.member_id, dws_member_winback_index.stat_date DESC) w
UNION ALL
SELECT dws_member_newconv_index.site_id,
dws_member_newconv_index.tenant_id,
dws_member_newconv_index.member_id,
SELECT n.site_id,
n.tenant_id,
n.member_id,
'NCI'::character varying(10) AS index_type,
dws_member_newconv_index.status,
dws_member_newconv_index.segment,
dws_member_newconv_index.member_create_time,
dws_member_newconv_index.first_visit_time,
dws_member_newconv_index.last_visit_time,
dws_member_newconv_index.last_recharge_time,
dws_member_newconv_index.t_v,
dws_member_newconv_index.t_r,
dws_member_newconv_index.t_a,
dws_member_newconv_index.visits_14d,
dws_member_newconv_index.visits_30d,
dws_member_newconv_index.visits_60d,
dws_member_newconv_index.visits_total,
dws_member_newconv_index.spend_30d,
dws_member_newconv_index.spend_180d,
dws_member_newconv_index.sv_balance,
dws_member_newconv_index.recharge_60d_amt,
dws_member_newconv_index.need_new,
dws_member_newconv_index.salvage_new,
dws_member_newconv_index.recharge_new,
dws_member_newconv_index.value_new,
dws_member_newconv_index.welcome_new,
dws_member_newconv_index.raw_score_welcome,
dws_member_newconv_index.raw_score_convert,
dws_member_newconv_index.raw_score,
dws_member_newconv_index.display_score_welcome,
dws_member_newconv_index.display_score_convert,
dws_member_newconv_index.display_score,
dws_member_newconv_index.last_wechat_touch_time,
dws_member_newconv_index.calc_time
FROM dws.dws_member_newconv_index;
n.status,
n.segment,
n.member_create_time,
n.first_visit_time,
n.last_visit_time,
n.last_recharge_time,
n.t_v,
n.t_r,
n.t_a,
n.visits_14d,
n.visits_30d,
n.visits_60d,
n.visits_total,
n.spend_30d,
n.spend_180d,
n.sv_balance,
n.recharge_60d_amt,
n.need_new,
n.salvage_new,
n.recharge_new,
n.value_new,
n.welcome_new,
n.raw_score_welcome,
n.raw_score_convert,
n.raw_score,
n.display_score_welcome,
n.display_score_convert,
n.display_score,
n.last_wechat_touch_time,
n.calc_time
FROM ( SELECT DISTINCT ON (dws_member_newconv_index.site_id, dws_member_newconv_index.member_id) dws_member_newconv_index.newconv_id,
dws_member_newconv_index.site_id,
dws_member_newconv_index.tenant_id,
dws_member_newconv_index.member_id,
dws_member_newconv_index.status,
dws_member_newconv_index.segment,
dws_member_newconv_index.member_create_time,
dws_member_newconv_index.first_visit_time,
dws_member_newconv_index.last_visit_time,
dws_member_newconv_index.last_recharge_time,
dws_member_newconv_index.t_v,
dws_member_newconv_index.t_r,
dws_member_newconv_index.t_a,
dws_member_newconv_index.visits_14d,
dws_member_newconv_index.visits_60d,
dws_member_newconv_index.visits_total,
dws_member_newconv_index.spend_30d,
dws_member_newconv_index.spend_180d,
dws_member_newconv_index.sv_balance,
dws_member_newconv_index.recharge_60d_amt,
dws_member_newconv_index.interval_count,
dws_member_newconv_index.need_new,
dws_member_newconv_index.salvage_new,
dws_member_newconv_index.recharge_new,
dws_member_newconv_index.value_new,
dws_member_newconv_index.welcome_new,
dws_member_newconv_index.raw_score_welcome,
dws_member_newconv_index.raw_score_convert,
dws_member_newconv_index.raw_score,
dws_member_newconv_index.display_score_welcome,
dws_member_newconv_index.display_score_convert,
dws_member_newconv_index.display_score,
dws_member_newconv_index.last_wechat_touch_time,
dws_member_newconv_index.calc_time,
dws_member_newconv_index.calc_version,
dws_member_newconv_index.created_at,
dws_member_newconv_index.updated_at,
dws_member_newconv_index.visits_30d,
dws_member_newconv_index.stat_date
FROM dws.dws_member_newconv_index
ORDER BY dws_member_newconv_index.site_id, dws_member_newconv_index.member_id, dws_member_newconv_index.stat_date DESC) n;
;
-- 物化视图

View File

@@ -1,6 +1,6 @@
-- =============================================================================
-- etl_feiqiu / metaETL 调度元数据)
-- 生成日期2026-04-06
-- 生成日期2026-04-12
-- 来源:测试库(通过脚本自动导出)
-- =============================================================================

View File

@@ -1,6 +1,6 @@
-- =============================================================================
-- etl_feiqiu / ods原始数据层
-- 生成日期2026-04-06
-- 生成日期2026-04-12
-- 来源:测试库(通过脚本自动导出)
-- =============================================================================

View File

@@ -1,6 +1,6 @@
-- =============================================================================
-- FDW 跨库映射(在 zqyy_app 中执行)
-- 生成日期2026-04-06
-- 生成日期2026-04-12
-- 来源db/fdw/setup_fdw.sql
-- =============================================================================

View File

@@ -1,6 +1,6 @@
-- =============================================================================
-- zqyy_app / auth用户认证与权限
-- 生成日期2026-04-06
-- 生成日期2026-04-12
-- 来源:测试库(通过脚本自动导出)
-- =============================================================================

View File

@@ -1,6 +1,6 @@
-- =============================================================================
-- zqyy_app / biz核心业务表任务/备注/触发器))
-- 生成日期2026-04-06
-- 生成日期2026-04-12
-- 来源:测试库(通过脚本自动导出)
-- =============================================================================
@@ -16,11 +16,11 @@ CREATE SEQUENCE IF NOT EXISTS biz.cfg_task_generator_params_id_seq AS bigint;
CREATE SEQUENCE IF NOT EXISTS biz.coach_task_history_id_seq AS bigint;
CREATE SEQUENCE IF NOT EXISTS biz.coach_task_transfer_log_id_seq AS bigint;
CREATE SEQUENCE IF NOT EXISTS biz.coach_tasks_id_seq AS bigint;
CREATE SEQUENCE IF NOT EXISTS biz.recall_events_id_seq AS bigint;
CREATE SEQUENCE IF NOT EXISTS biz.connectors_id_seq AS integer;
CREATE SEQUENCE IF NOT EXISTS biz.dws_assistant_task_monthly_id_seq AS bigint;
CREATE SEQUENCE IF NOT EXISTS biz.excel_upload_log_id_seq AS bigint;
CREATE SEQUENCE IF NOT EXISTS biz.notes_id_seq AS bigint;
CREATE SEQUENCE IF NOT EXISTS biz.recall_events_id_seq AS bigint;
CREATE SEQUENCE IF NOT EXISTS biz.salary_adjustments_id_seq AS bigint;
CREATE SEQUENCE IF NOT EXISTS biz.site_code_history_id_seq AS integer;
CREATE SEQUENCE IF NOT EXISTS biz.sites_id_seq AS integer;
@@ -154,24 +154,13 @@ CREATE TABLE biz.coach_tasks (
abandon_reason text,
completed_at timestamp with time zone,
completed_task_type character varying(50),
completion_type character varying(10),
parent_task_id bigint,
created_at timestamp with time zone DEFAULT now(),
updated_at timestamp with time zone DEFAULT now(),
transfer_count integer DEFAULT 0 NOT NULL,
transferred_from bigint,
transferred_at timestamp with time zone
);
CREATE TABLE biz.recall_events (
id bigint DEFAULT nextval('biz.recall_events_id_seq'::regclass) NOT NULL,
site_id bigint NOT NULL,
assistant_id bigint NOT NULL,
member_id bigint NOT NULL,
pay_time timestamp with time zone NOT NULL,
task_id bigint,
task_type character varying(50),
created_at timestamp with time zone DEFAULT now()
transferred_at timestamp with time zone,
completion_type character varying(10)
);
CREATE TABLE biz.connectors (
@@ -232,6 +221,17 @@ CREATE TABLE biz.notes (
score smallint
);
CREATE TABLE biz.recall_events (
id bigint DEFAULT nextval('biz.recall_events_id_seq'::regclass) NOT NULL,
site_id bigint NOT NULL,
assistant_id bigint NOT NULL,
member_id bigint NOT NULL,
pay_time timestamp with time zone NOT NULL,
task_id bigint,
task_type character varying(50),
created_at timestamp with time zone DEFAULT now()
);
CREATE TABLE biz.salary_adjustments (
id bigint DEFAULT nextval('biz.salary_adjustments_id_seq'::regclass) NOT NULL,
site_id bigint NOT NULL,
@@ -354,8 +354,8 @@ ALTER TABLE biz.dws_assistant_task_monthly ADD CONSTRAINT dws_assistant_task_mon
ALTER TABLE biz.excel_upload_log ADD CONSTRAINT excel_upload_log_pkey PRIMARY KEY (id);
ALTER TABLE biz.notes ADD CONSTRAINT notes_task_id_fkey FOREIGN KEY (task_id) REFERENCES biz.coach_tasks(id);
ALTER TABLE biz.notes ADD CONSTRAINT notes_pkey PRIMARY KEY (id);
ALTER TABLE biz.recall_events ADD CONSTRAINT recall_events_pkey PRIMARY KEY (id);
ALTER TABLE biz.recall_events ADD CONSTRAINT recall_events_task_id_fkey FOREIGN KEY (task_id) REFERENCES biz.coach_tasks(id);
ALTER TABLE biz.recall_events ADD CONSTRAINT recall_events_pkey PRIMARY KEY (id);
ALTER TABLE biz.salary_adjustments ADD CONSTRAINT salary_adjustments_upload_batch_id_fkey FOREIGN KEY (upload_batch_id) REFERENCES biz.excel_upload_log(id);
ALTER TABLE biz.salary_adjustments ADD CONSTRAINT salary_adjustments_pkey PRIMARY KEY (id);
ALTER TABLE biz.site_code_history ADD CONSTRAINT site_code_history_pkey PRIMARY KEY (id);
@@ -400,8 +400,8 @@ CREATE INDEX idx_task_monthly_assistant ON biz.dws_assistant_task_monthly USING
CREATE INDEX idx_task_monthly_site_month ON biz.dws_assistant_task_monthly USING btree (site_id, stat_month DESC);
CREATE INDEX idx_excel_log_site ON biz.excel_upload_log USING btree (site_id, created_at DESC);
CREATE INDEX idx_notes_target ON biz.notes USING btree (site_id, target_type, target_id);
CREATE INDEX idx_salary_adj_assistant_month ON biz.salary_adjustments USING btree (assistant_id, salary_month);
CREATE UNIQUE INDEX idx_recall_events_site_assistant_member_day ON biz.recall_events USING btree (site_id, assistant_id, member_id, (date_trunc('day', pay_time AT TIME ZONE 'Asia/Shanghai')));
CREATE INDEX idx_recall_events_assistant_pay ON biz.recall_events USING btree (site_id, assistant_id, pay_time);
CREATE UNIQUE INDEX idx_recall_events_site_assistant_member_day ON biz.recall_events USING btree (site_id, assistant_id, member_id, date_trunc('day'::text, (pay_time AT TIME ZONE 'Asia/Shanghai'::text)));
CREATE INDEX idx_salary_adj_assistant_month ON biz.salary_adjustments USING btree (assistant_id, salary_month);
CREATE INDEX idx_salary_adj_site_month ON biz.salary_adjustments USING btree (site_id, salary_month);

View File

@@ -1,6 +1,6 @@
-- =============================================================================
-- zqyy_app / public小程序业务表
-- 生成日期2026-04-06
-- 生成日期2026-04-12
-- 来源:测试库(通过脚本自动导出)
-- =============================================================================

View File

@@ -38,18 +38,18 @@ export/
| 环境变量 | 默认值(开发机) | 对应目录 | 说明 |
|----------|------------------|----------|------|
| `EXPORT_ROOT` | `C:/NeoZQYY/export/ETL-Connectors/feiqiu/JSON` | `ETL-Connectors/feiqiu/JSON/` | ODS 抓取 JSON 落盘根目录 |
| `LOG_ROOT` | `C:/NeoZQYY/export/ETL-Connectors/feiqiu/LOGS` | `ETL-Connectors/feiqiu/LOGS/` | ETL 运行日志 |
| `FETCH_ROOT` | `C:/NeoZQYY/export/ETL-Connectors/feiqiu/JSON` | `ETL-Connectors/feiqiu/JSON/` | FETCH_ONLY 模式 JSON 输出(通常与 EXPORT_ROOT 相同) |
| `ETL_REPORT_ROOT` | `C:/NeoZQYY/export/ETL-Connectors/feiqiu/REPORTS` | `ETL-Connectors/feiqiu/REPORTS/` | ETL 质检/完整性报告 |
| `SYSTEM_ANALYZE_ROOT` | `C:/NeoZQYY/export/SYSTEM/REPORTS/dataflow_analysis` | `SYSTEM/REPORTS/dataflow_analysis/` | 数据流结构分析报告 |
| `FIELD_AUDIT_ROOT` | `C:/NeoZQYY/export/SYSTEM/REPORTS/field_audit` | `SYSTEM/REPORTS/field_audit/` | 字段排查报告 |
| `FULL_DATAFLOW_DOC_ROOT` | `C:/NeoZQYY/export/SYSTEM/REPORTS/full_dataflow_doc` | `SYSTEM/REPORTS/full_dataflow_doc/` | 全链路数据流文档 |
| `API_SAMPLE_CACHE_ROOT` | `C:/NeoZQYY/export/SYSTEM/CACHE/api_samples` | `SYSTEM/CACHE/api_samples/` | API 样本缓存 |
| `SYSTEM_LOG_ROOT` | `C:/NeoZQYY/export/SYSTEM/LOGS` | `SYSTEM/LOGS/` | 系统级运维日志 |
| `BACKEND_LOG_ROOT` | `C:/NeoZQYY/export/BACKEND/LOGS` | `BACKEND/LOGS/` | 后端结构化日志 |
| `EXPORT_ROOT` | `C:/Project/NeoZQYY/export/ETL-Connectors/feiqiu/JSON` | `ETL-Connectors/feiqiu/JSON/` | ODS 抓取 JSON 落盘根目录 |
| `LOG_ROOT` | `C:/Project/NeoZQYY/export/ETL-Connectors/feiqiu/LOGS` | `ETL-Connectors/feiqiu/LOGS/` | ETL 运行日志 |
| `FETCH_ROOT` | `C:/Project/NeoZQYY/export/ETL-Connectors/feiqiu/JSON` | `ETL-Connectors/feiqiu/JSON/` | FETCH_ONLY 模式 JSON 输出(通常与 EXPORT_ROOT 相同) |
| `ETL_REPORT_ROOT` | `C:/Project/NeoZQYY/export/ETL-Connectors/feiqiu/REPORTS` | `ETL-Connectors/feiqiu/REPORTS/` | ETL 质检/完整性报告 |
| `SYSTEM_ANALYZE_ROOT` | `C:/Project/NeoZQYY/export/SYSTEM/REPORTS/dataflow_analysis` | `SYSTEM/REPORTS/dataflow_analysis/` | 数据流结构分析报告 |
| `FIELD_AUDIT_ROOT` | `C:/Project/NeoZQYY/export/SYSTEM/REPORTS/field_audit` | `SYSTEM/REPORTS/field_audit/` | 字段排查报告 |
| `FULL_DATAFLOW_DOC_ROOT` | `C:/Project/NeoZQYY/export/SYSTEM/REPORTS/full_dataflow_doc` | `SYSTEM/REPORTS/full_dataflow_doc/` | 全链路数据流文档 |
| `API_SAMPLE_CACHE_ROOT` | `C:/Project/NeoZQYY/export/SYSTEM/CACHE/api_samples` | `SYSTEM/CACHE/api_samples/` | API 样本缓存 |
| `SYSTEM_LOG_ROOT` | `C:/Project/NeoZQYY/export/SYSTEM/LOGS` | `SYSTEM/LOGS/` | 系统级运维日志 |
| `BACKEND_LOG_ROOT` | `C:/Project/NeoZQYY/export/BACKEND/LOGS` | `BACKEND/LOGS/` | 后端结构化日志 |
| `DEV_TRACE_LOG_DIR` | `export/dev-trace-logs` | `dev-trace-logs/` | 开发调试全链路日志DevTrace 模块) |
| `AVATAR_EXPORT_PATH` | `C:/NeoZQYY/export/BACKEND/avatars` | `BACKEND/avatars/` | 用户头像文件存储目录 |
| `AVATAR_EXPORT_PATH` | `C:/Project/NeoZQYY/export/BACKEND/avatars` | `BACKEND/avatars/` | 用户头像文件存储目录 |
---
@@ -315,15 +315,15 @@ ETL 模块的路径变量通过 `env_parser.py` 的 `ENV_MAP` 映射到 `AppConf
## 服务器环境配置示例
开发机(`C:\NeoZQYY\.env`
开发机(`C:\Project\NeoZQYY\.env`
```env
EXPORT_ROOT=C:/NeoZQYY/export/ETL-Connectors/feiqiu/JSON
LOG_ROOT=C:/NeoZQYY/export/ETL-Connectors/feiqiu/LOGS
FETCH_ROOT=C:/NeoZQYY/export/ETL-Connectors/feiqiu/JSON
ETL_REPORT_ROOT=C:/NeoZQYY/export/ETL-Connectors/feiqiu/REPORTS
SYSTEM_ANALYZE_ROOT=C:/NeoZQYY/export/SYSTEM/REPORTS/dataflow_analysis
BACKEND_LOG_ROOT=C:/NeoZQYY/export/BACKEND/LOGS
AVATAR_EXPORT_PATH=C:/NeoZQYY/export/BACKEND/avatars
EXPORT_ROOT=C:/Project/NeoZQYY/export/ETL-Connectors/feiqiu/JSON
LOG_ROOT=C:/Project/NeoZQYY/export/ETL-Connectors/feiqiu/LOGS
FETCH_ROOT=C:/Project/NeoZQYY/export/ETL-Connectors/feiqiu/JSON
ETL_REPORT_ROOT=C:/Project/NeoZQYY/export/ETL-Connectors/feiqiu/REPORTS
SYSTEM_ANALYZE_ROOT=C:/Project/NeoZQYY/export/SYSTEM/REPORTS/dataflow_analysis
BACKEND_LOG_ROOT=C:/Project/NeoZQYY/export/BACKEND/LOGS
AVATAR_EXPORT_PATH=C:/Project/NeoZQYY/export/BACKEND/avatars
```
服务器测试环境(`D:\NeoZQYY\test\repo\.env`

File diff suppressed because it is too large Load Diff

View File

@@ -10,7 +10,7 @@
|------|-----|
| 开发者工具路径 | `C:\dev\WechatDevtools\微信开发者工具.exe` |
| CLI 路径 | `C:\dev\WechatDevtools\cli.bat` |
| 小程序项目路径 | `C:\NeoZQYY\apps\miniprogram` |
| 小程序项目路径 | `C:\Project\NeoZQYY\apps\miniprogram` |
| 自动化端口 | `9420`(固定) |
| AppID | `wx7c07793d82732921` |
@@ -23,7 +23,7 @@
### 第 2 步:在终端启动自动化端口
```powershell
& "C:\dev\WechatDevtools\cli.bat" auto --project "C:\NeoZQYY\apps\miniprogram" --auto-port 9420
& "C:\dev\WechatDevtools\cli.bat" auto --project "C:\Project\NeoZQYY\apps\miniprogram" --auto-port 9420
```
成功输出:
@@ -40,7 +40,7 @@
```
strategy: wsEndpoint
wsEndpoint: ws://127.0.0.1:9420
projectPath: C:\NeoZQYY\apps\miniprogram
projectPath: C:\Project\NeoZQYY\apps\miniprogram
healthCheck: true
```
@@ -67,7 +67,7 @@ healthCheck: true
"args": ["-y", "weixin-devtools-mcp", "--tools-profile=full", "--ws-endpoint=ws://127.0.0.1:9420"],
"env": {
"WECHAT_DEVTOOLS_CLI": "C:\\dev\\WechatDevtools\\cli.bat",
"WECHAT_DEVTOOLS_PROJECT": "C:\\NeoZQYY\\apps\\miniprogram"
"WECHAT_DEVTOOLS_PROJECT": "C:\\Project\\NeoZQYY\\apps\\miniprogram"
}
}
```

View File

@@ -15,7 +15,7 @@
### 1.2 迁移目标
将所有项目整合为 NeoZQYY Monorepo`C:\NeoZQYY\`),实现:
将所有项目整合为 NeoZQYY Monorepo`C:\Project\NeoZQYY\`),实现:
- 清晰的模块边界apps/packages/db/docs 分离)
- uv workspace 统一依赖管理
- 六层数据库 Schema 架构meta/ods/dwd/core/dws/app
@@ -27,7 +27,7 @@
## 2. Monorepo 最终结构
```
C:\NeoZQYY\
C:\Project\NeoZQYY\
├── apps/
│ ├── etl/pipelines/feiqiu/ # 飞球 Connector数据源连接器从 FQ-ETL 平移)
│ ├── backend/ # FastAPI 后端(新建骨架)
@@ -292,7 +292,7 @@ C:\NeoZQYY\
```bash
# 安装依赖
cd C:\NeoZQYY
cd C:\Project\NeoZQYY
uv sync
# ETL 开发
@@ -308,7 +308,7 @@ cd apps/etl/pipelines/feiqiu
pytest tests/unit
# 运行属性测试
cd C:\NeoZQYY
cd C:\Project\NeoZQYY
pytest tests/ -v
```

View File

@@ -199,7 +199,7 @@ audit-writer 子代理(独立执行)
| 服务器名 | 命令 | 用途 | 状态 | 自动批准 |
|---|---|---|---|---|
| `filesystem` | `npx @modelcontextprotocol/server-filesystem` | 文件系统读写(作用域:`C:\NeoZQYY` | 启用 | 全部 |
| `filesystem` | `npx @modelcontextprotocol/server-filesystem` | 文件系统读写(作用域:`C:\Project\NeoZQYY` | 启用 | 全部 |
| `git` | `uvx mcp-server-git@2025.12.18` | Git 操作status/diff/commit/log 等) | 启用 | `git_status` |
| `postgres` | `uvx postgres-mcp --access-mode=unrestricted` | PostgreSQL 数据库操作(查询/DDL/健康检查/索引分析) | 启用 | 全部 |
| `playwright` | `npx @playwright/mcp@latest` | 浏览器自动化(截图/快照/点击/表单填写) | 启用 | 无 |

View File

@@ -46,7 +46,7 @@
### 基本用法(创建店铺管理员)
```bash
cd C:\NeoZQYY
cd C:\Project\NeoZQYY
python scripts/ops/init_test_user.py
```

View File

@@ -96,7 +96,7 @@
- [x] 6. Final checkpoint — 全量验证
- 运行验证脚本 `python scripts/ops/validate_p1_db_foundation.py`,确认所有检查项通过
- 运行属性测试 `cd C:\NeoZQYY && pytest tests/ -v -k p1`,确认所有属性测试通过
- 运行属性测试 `cd C:\Project\NeoZQYY && pytest tests/ -v -k p1`,确认所有属性测试通过
- 如有问题请告知用户
## 说明

View File

@@ -556,7 +556,7 @@ def test_penalty_minutes_formula(actual_minutes, per_hour_contribution):
### 测试配置
- 属性测试:`cd C:\NeoZQYY && pytest tests/test_dws_contribution_properties.py -v`
- 属性测试:`cd C:\Project\NeoZQYY && pytest tests/test_dws_contribution_properties.py -v`
- 单元测试:`cd apps/etl/connectors/feiqiu && pytest tests/unit/test_assistant_order_contribution.py -v`
- 每个属性测试标注 `@settings(max_examples=200)`
- 每个属性测试注释引用设计文档 Property 编号

View File

@@ -65,7 +65,7 @@
- _Requirements: 2.7, 2.8_
- [x] 3. 检查点 — 确保助教订单流水统计测试通过
- 运行属性测试:`cd C:\NeoZQYY && pytest tests/test_dws_contribution_properties.py -v`
- 运行属性测试:`cd C:\Project\NeoZQYY && pytest tests/test_dws_contribution_properties.py -v`
- 确保所有属性测试通过,如有问题请询问用户。
- [x] 4. 扩展会员消费汇总任务
@@ -106,7 +106,7 @@
- **Validates: Requirements 6.1**
- [x] 6. 检查点 — 确保惩罚计算和消费汇总测试通过
- 运行属性测试:`cd C:\NeoZQYY && pytest tests/test_dws_contribution_properties.py -v`
- 运行属性测试:`cd C:\Project\NeoZQYY && pytest tests/test_dws_contribution_properties.py -v`
- 运行单元测试:`cd apps/etl/connectors/feiqiu && pytest tests/unit/ -k "contribution or penalty or consumption" -v`
- 确保所有测试通过,如有问题请询问用户。
@@ -139,7 +139,7 @@
- _Requirements: 1.1_
- [x] 9. 最终检查点 — 确保所有测试通过
- 运行属性测试:`cd C:\NeoZQYY && pytest tests/test_dws_contribution_properties.py -v`
- 运行属性测试:`cd C:\Project\NeoZQYY && pytest tests/test_dws_contribution_properties.py -v`
- 运行单元测试:`cd apps/etl/connectors/feiqiu && pytest tests/unit/ -k "contribution or penalty or consumption" -v`
- 确保所有测试通过,如有问题请询问用户。

View File

@@ -1107,7 +1107,7 @@ ON CONFLICT (job_name) DO NOTHING;
### 测试配置
- 属性测试:`cd C:\NeoZQYY && pytest tests/test_core_business_properties.py -v`
- 属性测试:`cd C:\Project\NeoZQYY && pytest tests/test_core_business_properties.py -v`
- 后端单元测试:`cd apps/backend && pytest tests/ -v`
- 每个属性测试标注 `@settings(max_examples=200)`
- 每个属性测试注释引用设计文档 Property 编号

View File

@@ -116,7 +116,7 @@
- **Validates: Requirements 4.1, 4.2, 4.3, 4.4, 14.3**
- [x] 6. 检查点 - 确保任务生成器测试通过
- 运行属性测试:`cd C:\NeoZQYY && pytest tests/test_core_business_properties.py -v -k "property_1 or property_2 or property_3 or property_4"`
- 运行属性测试:`cd C:\Project\NeoZQYY && pytest tests/test_core_business_properties.py -v -k "property_1 or property_2 or property_3 or property_4"`
- 确保所有属性测试通过,如有问题请向用户确认。
- [x] 7. 实现任务管理服务
@@ -160,7 +160,7 @@
- **Validates: Requirements 6.2, 6.3, 14.6**
- [x] 10. 检查点 - 确保任务管理和召回检测测试通过
- 运行属性测试:`cd C:\NeoZQYY && pytest tests/test_core_business_properties.py -v -k "property_5 or property_6 or property_10 or property_15"`
- 运行属性测试:`cd C:\Project\NeoZQYY && pytest tests/test_core_business_properties.py -v -k "property_5 or property_6 or property_10 or property_15"`
- 确保所有属性测试通过,如有问题请向用户确认。
- [-] 11. 实现备注系统
@@ -215,7 +215,7 @@
- _Requirements: 10.1-10.6_
- [x] 13. 检查点 - 确保所有测试通过
- 运行属性测试:`cd C:\NeoZQYY && pytest tests/test_core_business_properties.py -v`
- 运行属性测试:`cd C:\Project\NeoZQYY && pytest tests/test_core_business_properties.py -v`
- 26/26 全部通过16.81s
- [x] 14. 最终检查点 - 全量验证

View File

@@ -161,7 +161,7 @@ if api_val is not None and ods_val is None:
联调脚本在 ETL 全流程执行完成后,运行全链路检查器:
```bash
cd C:\NeoZQYY
cd C:\Project\NeoZQYY
uv run python scripts/ops/etl_consistency_check.py
```

View File

@@ -80,7 +80,7 @@
- [x] 5. 黑盒数据一致性测试
- [x] 5.1 运行全链路检查器,执行 API→ODS→DWD→DWS 四层数据一致性检查
- 运行 `uv run python scripts/ops/etl_consistency_check.py`cwd 为项目根目录 `C:\NeoZQYY`
- 运行 `uv run python scripts/ops/etl_consistency_check.py`cwd 为项目根目录 `C:\Project\NeoZQYY`
- 脚本自动从 `LOG_ROOT` 找到最近一次 ETL 日志,解析本次执行的任务列表
- 脚本自动从 `FETCH_ROOT` 读取 API JSON 落盘文件
- 脚本连接数据库(`PG_DSN`),逐表逐字段比对:

View File

@@ -275,7 +275,7 @@
- _规范: doc-map.md_
- [x] 21. 最终检查点 — 全量验证
- 运行 Monorepo 属性测试:`cd C:\NeoZQYY && pytest tests/ -v`
- 运行 Monorepo 属性测试:`cd C:\Project\NeoZQYY && pytest tests/ -v`
- 运行后端单元测试:`cd apps/backend && pytest tests/ -v`
- 确保所有属性测试Property 1-11和单元测试全部通过
- 确保 DDL 迁移已合并到主基线

View File

@@ -297,7 +297,7 @@
- _Requirements: 2.1, 2.3, 4.1, 4.4, 11.1_
- [x] 17. 最终检查点 — 全量验证
- 运行 Monorepo 属性测试:`cd C:\NeoZQYY && pytest tests/ -v`
- 运行 Monorepo 属性测试:`cd C:\Project\NeoZQYY && pytest tests/ -v`
- 运行后端测试:`cd apps/backend && pytest tests/ -v`
- 运行前端测试:`cd apps/admin-web && npx vitest --run`
- 运行 E2E 测试:`cd apps/admin-web && npx playwright test`

View File

@@ -566,7 +566,7 @@ Dashboard 页面布局:
"""历史数据回填脚本。
用法:
cd C:\\NeoZQYY
cd C:\\Project\\NeoZQYY
uv run python scripts/ops/ai_backfill.py [--dry-run] [--batch-size 10] [--interval 5]
功能:

View File

@@ -243,7 +243,7 @@
- _需求: C2.1, C2.2, C2.3, C2.4, C2.5, C2.6, C2.7, C2.8, C2.9, C2.10, C2.11, C2.12, C2.13, C2.14, C2.15, C2.16_
- [x] 13. 检查点 — 测试体系验证
- 运行 Monorepo 属性测试:`cd C:\NeoZQYY && pytest tests/ -v`
- 运行 Monorepo 属性测试:`cd C:\Project\NeoZQYY && pytest tests/ -v`
- 运行全链路测试Mock 模式):`cd apps/backend && pytest tests/integration/test_ai_full_chain.py -v`
- 确保 Property 1-14 全部通过15 个全链路场景 Mock 模式通过ask the user if questions arise.
@@ -352,7 +352,7 @@
- _需求: F2.5_
- [x] 25. 最终检查点 — 全量验证
- 运行 Monorepo 属性测试:`cd C:\NeoZQYY && pytest tests/ -v`
- 运行 Monorepo 属性测试:`cd C:\Project\NeoZQYY && pytest tests/ -v`
- 运行后端单元测试:`cd apps/backend && pytest tests/ -v`
- 运行全链路测试Mock 模式):`cd apps/backend && pytest tests/integration/test_ai_full_chain.py -v`
- 确保所有属性测试Property 1-14和单元测试全部通过

View File

@@ -86,7 +86,7 @@
- _Requirements: 8.3_
- [x] 9. 最终 Checkpoint — 确保所有测试通过
- 运行 `cd apps/etl/connectors/feiqiu && pytest tests/unit``cd C:\NeoZQYY && pytest tests/ -v`
- 运行 `cd apps/etl/connectors/feiqiu && pytest tests/unit``cd C:\Project\NeoZQYY && pytest tests/ -v`
- 确认所有测试通过,无回归,如有问题请询问用户。
- _Requirements: 7.3, 9.1, 9.2, 9.3_

View File

@@ -39,7 +39,7 @@
- _Requirements: 2.1, 2.2, 2.3, 2.4, 2.5, 2.6_
- [x] 3. 检查点 — 基础设施层验证
- 确保 area_mapping 属性测试和单元测试通过:`cd C:\NeoZQYY && pytest tests/test_area_mapping_props.py tests/test_area_mapping_unit.py -v`
- 确保 area_mapping 属性测试和单元测试通过:`cd C:\Project\NeoZQYY && pytest tests/test_area_mapping_props.py tests/test_area_mapping_unit.py -v`
- 确保 DDL 迁移脚本语法正确
- ask the user if questions arise.
@@ -120,7 +120,7 @@
- _Requirements: 5.2, 5.3, 5.4_
- [x] 7. 检查点 — ETL 层验证
- 运行 ETL 属性测试:`cd C:\NeoZQYY && pytest tests/test_finance_area_daily_props.py tests/test_finance_board_cache_props.py -v`
- 运行 ETL 属性测试:`cd C:\Project\NeoZQYY && pytest tests/test_finance_area_daily_props.py tests/test_finance_board_cache_props.py -v`
- 运行 ETL 单元测试:`cd apps/etl/connectors/feiqiu && pytest tests/unit/test_finance_area_daily.py tests/unit/test_finance_board_cache.py -v`
- 确保 Property 3-9 全部通过
- ask the user if questions arise.
@@ -188,7 +188,7 @@
- _Requirements: 6.1, 6.2, 6.3, 7.6, 9.1_
- [x] 10. 检查点 — 后端层验证
- 运行后端属性测试:`cd C:\NeoZQYY && pytest tests/test_board_service_props.py -v`
- 运行后端属性测试:`cd C:\Project\NeoZQYY && pytest tests/test_board_service_props.py -v`
- 运行后端单元测试:`cd apps/backend && pytest tests/unit/test_fdw_queries_area.py tests/unit/test_board_service_area.py -v`
- 确保 Property 10-14 全部通过
- ask the user if questions arise.
@@ -269,7 +269,7 @@
- _Requirements: 全部_
- [x] 17. 最终检查点 — 全量验证
- 运行 Monorepo 属性测试:`cd C:\NeoZQYY && pytest tests/ -v`
- 运行 Monorepo 属性测试:`cd C:\Project\NeoZQYY && pytest tests/ -v`
- 运行 ETL 单元测试:`cd apps/etl/connectors/feiqiu && pytest tests/unit -v`
- 运行后端单元测试:`cd apps/backend && pytest tests/ -v`
- 确保所有属性测试Property 1-14和单元测试全部通过

View File

@@ -419,4 +419,4 @@ def test_business_date_round_trip(dt, h):
- 属性测试库:`hypothesis`(已在项目 `pyproject.toml` 中声明)
- 每个属性测试对应设计文档中的一个 Property由单个 `@given` 装饰的测试函数实现
- 运行命令:`cd C:\NeoZQYY && pytest tests/test_property_business_day_cutoff.py -v`
- 运行命令:`cd C:\Project\NeoZQYY && pytest tests/test_property_business_day_cutoff.py -v`

View File

@@ -246,7 +246,7 @@
- _Requirements: 12.4, 12.5_
- [x] 15. Final Checkpoint — 全量验证
- 确保所有属性测试通过:`cd C:\NeoZQYY && pytest tests/test_property_business_day_cutoff.py -v`
- 确保所有属性测试通过:`cd C:\Project\NeoZQYY && pytest tests/test_property_business_day_cutoff.py -v`
- 确保 ETL 单元测试通过:`cd apps/etl/connectors/feiqiu && pytest tests/unit -v`
- 确认所有 12 项需求的验收标准均有对应任务覆盖
- 如有问题请向用户确认。

View File

@@ -86,7 +86,7 @@
- **验证: 需求 5.2, 5.4**
- [x] 5. 检查点 — 基础设施层验证
- 运行 `cd C:\NeoZQYY && pytest tests/ -v` 确保属性测试通过
- 运行 `cd C:\Project\NeoZQYY && pytest tests/ -v` 确保属性测试通过
- 确保 TraceContext、TraceWriter、TraceConfig、cleanup 模块可独立工作
- ask the user if questions arise.
@@ -199,7 +199,7 @@
- _Requirements: 2.2_
- [x] 11. 检查点 — 核心采集层验证
- 运行 `cd C:\NeoZQYY && pytest tests/ -v` 确保属性测试通过
- 运行 `cd C:\Project\NeoZQYY && pytest tests/ -v` 确保属性测试通过
- 确保 xcx_* 请求能产生完整 span 链路HTTP_IN → AUTH → SERVICE → DB_QUERY → DB_CONN → HTTP_OUT
- 确保异常请求能产生 ERROR span
- 确保中间件层有 MIDDLEWARE span
@@ -269,7 +269,7 @@
- **验证: 需求 15.1, 15.2**
- [x] 15. 检查点 — 扩展采集层验证
- 运行 `cd C:\NeoZQYY && pytest tests/ -v` 确保属性测试通过
- 运行 `cd C:\Project\NeoZQYY && pytest tests/ -v` 确保属性测试通过
- 确保 SSE 流式端点产生完整 traceSSE_START → AI_CALL → SSE_EVENT → SSE_END
- 确保 WebSocket 连接产生完整 traceWS_CONNECT → WS_MESSAGE → WS_DISCONNECT
- 确保后台 Job 产生完整 traceJOB_START → SERVICE/DB_QUERY → JOB_END
@@ -336,7 +336,7 @@
- **验证: 需求 18.1, 18.2**
- [x] 17. 检查点 — 后端 API 验证
- 运行 `cd C:\NeoZQYY && pytest tests/ -v` 确保属性测试通过
- 运行 `cd C:\Project\NeoZQYY && pytest tests/ -v` 确保属性测试通过
- 运行 `cd apps/backend && pytest tests/ -v` 确保后端测试通过
- 确保 6 个 API 端点均可正常响应,权限校验生效
- ask the user if questions arise.
@@ -410,7 +410,7 @@
- _规范: export-paths.md_
- [x] 24. 最终检查点 — 全量验证
- 运行 Monorepo 属性测试:`cd C:\NeoZQYY && pytest tests/ -v`
- 运行 Monorepo 属性测试:`cd C:\Project\NeoZQYY && pytest tests/ -v`
- 运行后端单元测试:`cd apps/backend && pytest tests/ -v`
- 确保所有属性测试Property 1-22和单元测试全部通过
- 确保 API 文档、后端 README、架构文档、文档地图、部署文档均已更新

View File

@@ -432,9 +432,9 @@ flowchart TD
```bash
# 属性测试Monorepo 级)
cd C:\NeoZQYY && pytest tests/test_dwd_panorama_properties.py -v
cd C:\Project\NeoZQYY && pytest tests/test_dwd_panorama_properties.py -v
# 单元测试
cd C:\NeoZQYY && pytest tests/test_dwd_panorama_examples.py -v
cd C:\Project\NeoZQYY && pytest tests/test_dwd_panorama_examples.py -v
```

View File

@@ -262,8 +262,8 @@
- _Requirements: 1.6, 1.7, 2.2, 2.5, 2.7, 3.5, 3.7, 4.5, 7.2, 7.4_
- [x] 10. 最终检查点 - 全部完成确认
- 运行全部属性测试:`cd C:\NeoZQYY && pytest tests/test_dwd_panorama_properties.py -v`
- 运行全部示例测试:`cd C:\NeoZQYY && pytest tests/test_dwd_panorama_examples.py -v`
- 运行全部属性测试:`cd C:\Project\NeoZQYY && pytest tests/test_dwd_panorama_properties.py -v`
- 运行全部示例测试:`cd C:\Project\NeoZQYY && pytest tests/test_dwd_panorama_examples.py -v`
- 确认 5 份文档内容完整、验证状态标注齐全
- Ensure all tests pass, ask the user if questions arise.

View File

@@ -39,7 +39,7 @@
- 文件:`tests/test_dwd_phase1_properties.py`
- [x] 3. 检查点 - 确保窗口统一和回补删除后测试通过
- 运行 `cd apps/etl/pipelines/feiqiu && pytest tests/unit``cd C:\NeoZQYY && pytest tests/ -v`,确保所有测试通过,如有问题请询问用户。
- 运行 `cd apps/etl/pipelines/feiqiu && pytest tests/unit``cd C:\Project\NeoZQYY && pytest tests/ -v`,确保所有测试通过,如有问题请询问用户。
- [x] 4. 清理死代码和未使用常量(需求 3
- [x] 4.1 删除 `_pick_order_column()` 方法和 `FACT_ORDER_CANDIDATES` 常量
@@ -85,7 +85,7 @@
- 文件:`tests/test_dwd_phase1_properties.py`
- [x] 7. 最终检查点 - 确保所有测试通过
- 运行 `cd apps/etl/pipelines/feiqiu && pytest tests/unit``cd C:\NeoZQYY && pytest tests/ -v`,确保所有测试通过,如有问题请询问用户。
- 运行 `cd apps/etl/pipelines/feiqiu && pytest tests/unit``cd C:\Project\NeoZQYY && pytest tests/ -v`,确保所有测试通过,如有问题请询问用户。
## 备注

View File

@@ -122,7 +122,7 @@
- [x] 7. 检查点 - 阶段 2+3 回归测试
- 运行 `cd apps/etl/pipelines/feiqiu && pytest tests/unit -v` 确保所有测试通过
- 运行 `cd C:\NeoZQYY && pytest tests/ -v` 确保 Monorepo 属性测试通过
- 运行 `cd C:\Project\NeoZQYY && pytest tests/ -v` 确保 Monorepo 属性测试通过
- 确保所有测试通过,如有问题请询问用户
- [x] 8. 关键词重命名 pipeline → flow
@@ -160,7 +160,7 @@
- [x] 9.3 运行全量测试确认路径重命名无回归
- `cd apps/etl/connectors/feiqiu && pytest tests/unit -v`
- `cd C:\NeoZQYY && pytest tests/ -v`
- `cd C:\Project\NeoZQYY && pytest tests/ -v`
- _Requirements: 10.5_
- [x] 10. 文档同步更新
@@ -177,7 +177,7 @@
- [x] 11. 最终检查点 - 全量回归测试
- 运行 `cd apps/etl/connectors/feiqiu && pytest tests/unit -v`
- 运行 `cd C:\NeoZQYY && pytest tests/ -v`
- 运行 `cd C:\Project\NeoZQYY && pytest tests/ -v`
- 确保所有测试通过,如有问题请询问用户
- _Requirements: 11.1, 11.2, 11.3, 11.4, 11.5_

View File

@@ -136,7 +136,7 @@
- _Requirements: 9.2, 9.3, 9.4, 10.1, 10.2, 10.3, 10.4_
- [ ] 9. 检查点 — 后端优化完成验证
- 运行 Monorepo 属性测试:`cd C:\NeoZQYY && pytest tests/ -v`
- 运行 Monorepo 属性测试:`cd C:\Project\NeoZQYY && pytest tests/ -v`
- 运行后端单元测试:`cd apps/backend && pytest tests/ -v`
- 确保所有属性测试Property 1-4, 8-9, 12和单元测试全部通过
- 确保基线快照 diff 无数据偏差
@@ -264,7 +264,7 @@
- _Requirements: 6.5_
- [ ] 18. 最终检查点 — 全量验证
- 运行 Monorepo 属性测试:`cd C:\NeoZQYY && pytest tests/ -v`
- 运行 Monorepo 属性测试:`cd C:\Project\NeoZQYY && pytest tests/ -v`
- 运行后端单元测试:`cd apps/backend && pytest tests/ -v`
- 运行前端测试:`cd apps/miniprogram && npm test`
- 确保所有属性测试Property 1-12和单元测试全部通过

View File

@@ -130,7 +130,7 @@
- [x] 9. 最终检查点
- 确保所有测试通过ask the user if questions arise.
- 运行 `cd apps/etl/pipelines/feiqiu && pytest tests/unit -v`
- 运行 `cd C:\NeoZQYY && pytest tests/ -v`monorepo 属性测试)
- 运行 `cd C:\Project\NeoZQYY && pytest tests/ -v`monorepo 属性测试)
## 备注

View File

@@ -280,7 +280,7 @@
- **Validates: Requirements 8.9, 8.10 — Design Property 14**
- [x] 17. Final Checkpoint — 全量验证
- Run all property tests: `cd C:\NeoZQYY && pytest tests/test_board_properties.py -v`
- Run all property tests: `cd C:\Project\NeoZQYY && pytest tests/test_board_properties.py -v`
- Ensure all 12 property tests pass. Ask the user if questions arise.
- [x] 18. 前端到数据库全链路测试

View File

@@ -693,12 +693,12 @@ RNS1.4 采用属性测试Property-Based Testing+ 单元测试Unit Testi
```bash
# 属性测试Hypothesis
cd C:\NeoZQYY && pytest tests/ -v -k "rns1_chat"
cd C:\Project\NeoZQYY && pytest tests/ -v -k "rns1_chat"
# 单元测试
cd apps/backend && pytest tests/unit/ -v -k "xcx_chat"
# FDW 验证脚本
cd C:\NeoZQYY && uv run python scripts/ops/verify_fdw_e2e.py
cd C:\Project\NeoZQYY && uv run python scripts/ops/verify_fdw_e2e.py
```

View File

@@ -1061,7 +1061,7 @@ RNS1.2 采用属性测试Property-Based Testing+ 单元测试Unit Testi
```bash
# 属性测试Hypothesis
cd C:\NeoZQYY && pytest tests/ -v -k "rns1_customer_coach"
cd C:\Project\NeoZQYY && pytest tests/ -v -k "rns1_customer_coach"
# 单元测试
cd apps/backend && pytest tests/unit/ -v -k "customer_detail or customer_records or coach_detail or coach_top or coach_history or coach_task_groups or auth_rns12 or fdw_queries_rns12 or degradation_rns12"

View File

@@ -537,7 +537,7 @@ RNS1.0 采用属性测试Property-Based Testing+ 单元测试Unit Testi
```bash
# 属性测试Hypothesis
cd C:\NeoZQYY && pytest tests/ -v -k "rns1"
cd C:\Project\NeoZQYY && pytest tests/ -v -k "rns1"
# 单元测试
cd apps/backend && pytest tests/unit/ -v -k "response_wrapper or camel_model or xcx_tasks_route"

View File

@@ -923,7 +923,7 @@ RNS1.1 采用属性测试Property-Based Testing+ 单元测试Unit Testi
```bash
# 属性测试Hypothesis
cd C:\NeoZQYY && pytest tests/ -v -k "rns1_task_performance"
cd C:\Project\NeoZQYY && pytest tests/ -v -k "rns1_task_performance"
# 单元测试
cd apps/backend && pytest tests/unit/ -v -k "xcx_tasks_v2 or task_detail or performance or pin_unpin or auth_rns11 or fdw_queries"

View File

@@ -388,7 +388,7 @@ def test_spi_raw_non_negative(level, speed, stability):
### 测试配置
- 属性测试:`cd C:\NeoZQYY && pytest tests/test_spi_properties.py -v`
- 属性测试:`cd C:\Project\NeoZQYY && pytest tests/test_spi_properties.py -v`
- 单元测试:`cd apps/etl/connectors/feiqiu && pytest tests/unit/test_spi_task.py -v`
- 每个属性测试标注 `@settings(max_examples=200)`
- 每个属性测试注释引用设计文档 Property 编号

View File

@@ -56,7 +56,7 @@
- **Validates: Requirements 6.6, 10.5**
- [x] 3. 检查点 - 确保核心算法测试通过
- 运行 `cd C:\NeoZQYY && pytest tests/test_spi_properties.py -v`
- 运行 `cd C:\Project\NeoZQYY && pytest tests/test_spi_properties.py -v`
- 确保所有属性测试通过,如有问题请询问用户。
- [x] 4. 实现数据提取与执行流程
@@ -119,7 +119,7 @@
- _Requirements: 11.2, 11.3_
- [x] 9. 最终检查点 - 确保所有测试通过
- 运行属性测试:`cd C:\NeoZQYY && pytest tests/test_spi_properties.py -v`
- 运行属性测试:`cd C:\Project\NeoZQYY && pytest tests/test_spi_properties.py -v`
- 运行单元测试:`cd apps/etl/connectors/feiqiu && pytest tests/unit/test_spi_task.py -v`
- 确保所有测试通过,如有问题请询问用户。