浅念
feb3b98665
feat(analytics): 首响时长+回复率数据管道——消息串算法/日汇总扩展列/员工聚合
批1(A1+A2):管理层要看「每个人的响应质量」。
- 迁移 d9e0f1a2b3c4:msg_daily_stats/stat_daily_staff 各加
cust_threads/threads_answered/fr_sum_ms(NOT NULL server_default 0,
幂等守卫照 9b0d0c133035 惯例;models.py 双声明同步)
- summary.py _thread_stats:串=客户连续消息不被员工消息打断的段,
is_send=None 不参与串判定;fr=员工首条回复−串末条客户消息;
日切近似 v1(日末未闭合串计 threads 不计 answered,口径写进 docstring)
- recompute_days/recompute_all 都先按 ts 排序再算串(乱序防护)
- staff_summary 聚合三列按账号→员工累加(fr_cnt≡threads_answered 不单列)
- 测试 +10:串算法矩阵 9 例+staff 聚合传递;全量 589 绿
- 本地 86 万行回填验证:daily-stats 60s/staff 10s,rollup 总和与
明细完全一致,随机 5 行 SQL 独立复算全对
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-07 14:13:09 +08:00
..
2026-08-10 18:12:28 +08:00
2026-08-01 11:04:44 +08:00
2026-08-01 16:15:40 +08:00
2026-09-04 18:16:44 +08:00
2026-09-04 19:22:22 +08:00
2026-09-04 15:04:33 +08:00
2026-09-07 12:20:18 +08:00
2026-08-01 14:30:28 +08:00
2026-08-20 11:08:13 +08:00
2026-08-15 14:18:42 +08:00
2026-08-25 18:55:53 +08:00
2026-08-22 17:00:43 +08:00
2026-08-25 20:55:18 +08:00
2026-09-03 15:03:20 +08:00
2026-08-12 10:37:13 +08:00
2026-08-25 15:17:21 +08:00
2026-08-25 16:22:44 +08:00
2026-08-25 15:44:54 +08:00
2026-08-21 15:08:26 +08:00
2026-08-25 15:57:59 +08:00
2026-08-05 10:12:49 +08:00
2026-08-07 18:37:26 +08:00
2026-08-25 16:36:07 +08:00
2026-09-03 16:37:36 +08:00
2026-08-01 16:15:40 +08:00
2026-08-12 11:41:30 +08:00
2026-09-03 18:11:26 +08:00
2026-08-12 10:41:46 +08:00
2026-08-01 11:04:44 +08:00
2026-08-21 15:08:26 +08:00
2026-09-04 16:40:01 +08:00
2026-08-01 14:13:50 +08:00
2026-08-13 14:02:42 +08:00
2026-08-25 13:44:54 +08:00
2026-08-01 11:55:50 +08:00
2026-08-07 09:57:34 +08:00
2026-08-01 15:48:03 +08:00
2026-08-07 16:30:29 +08:00
2026-08-25 14:32:19 +08:00
2026-09-04 21:02:41 +08:00
2026-09-03 17:52:09 +08:00
2026-08-01 11:31:28 +08:00
2026-08-01 15:59:25 +08:00
2026-08-01 13:46:23 +08:00
2026-08-20 09:09:32 +08:00
2026-08-25 14:07:39 +08:00
2026-08-25 15:17:21 +08:00
2026-08-18 09:15:04 +08:00
2026-08-10 18:12:28 +08:00
2026-08-20 10:54:09 +08:00
2026-08-07 09:49:31 +08:00
2026-08-01 17:11:17 +08:00
2026-08-05 18:44:04 +08:00
2026-08-25 14:32:12 +08:00
2026-08-01 14:03:47 +08:00
2026-08-01 13:37:42 +08:00
2026-08-01 13:54:16 +08:00
2026-08-07 09:49:31 +08:00
2026-08-01 15:48:03 +08:00
2026-08-01 17:53:26 +08:00
2026-08-11 16:04:03 +08:00
2026-08-01 15:48:03 +08:00
2026-09-04 23:27:41 +08:00
2026-08-01 12:16:02 +08:00
2026-09-07 14:13:09 +08:00
2026-09-07 14:13:09 +08:00
2026-08-07 16:51:10 +08:00
2026-08-05 12:11:29 +08:00
2026-09-04 21:14:52 +08:00
2026-08-01 14:23:45 +08:00
2026-08-12 10:41:46 +08:00
2026-08-01 16:52:48 +08:00