
fullstack-botandHermes CI Fix
71867c4c7a
feat(ar): 应收账龄看板 + 逾期预警 overdue 接入(阶段A)
T1 逾期预警(§6 财务 2026-10-20 23:23 口径):
- alert_rules 支持 rule_type=ar_overdue;阈值/责任人/排除名单全量走 params(代码零业务常量)
- 90 天占比红线 key 保留但默认 null 停用(不回落 0.25);黄线 15%-25% 保留
- 新增逐户红线「>30 天且 >5 万」+ 聚合红线「150+ 占比环比上升 = 结构恶化」
- assignee 派生:manual → 近 3 个月主业务员(zxt_masterbill emp_id → employee_dict.u_Name,
缺表时降级同库摘要制单人姓名)→ 部门负责人(渠道 118 / 商务 114 / 直属酒窖 117);
两路皆失败 ⇒ 该户不生成、进 skipped[],禁落空 assignee
- POST /run-ar-overdue(dry_run 默认 true)+ check-all 分支;只 INSERT 同一 message 幂等
T2 账龄看板:
- GET /api/cma/ar-aging/{meta,trend,overview,customers,customers/export};每条查询带 entity_id
- 三口径分列、caliber=all → 400;缺期 has_data=false 且金额 null(不补 0)
- ArAging.vue:口径后缀/截止期徽标/趋势断点/六档堆叠/逐户可排序导出
单测 21 项全通过(SQLite 夹具,不连生产库);vite build 通过。
阶段A 零生产写:未 push、未部署、未 --apply、未 dry_run=false。
2026-10-21 08:42:24 +08:00
..
2026-05-28 17:42:15 +08:00
2026-07-12 17:46:08 +08:00
2026-09-18 17:33:25 +08:00
2026-08-27 12:50:30 +08:00
2026-09-18 20:03:55 +08:00
2026-09-18 20:12:46 +08:00
2026-10-18 16:31:52 +08:00
2026-07-27 17:16:01 +08:00
2026-09-18 21:04:30 +08:00
2026-09-15 18:36:46 +08:00
2026-09-25 10:39:18 +08:00
2026-09-19 11:12:31 +08:00
2026-09-19 11:12:31 +08:00
2026-09-25 10:39:18 +08:00
2026-09-25 14:06:38 +08:00
2026-07-27 17:16:01 +08:00
2026-09-22 11:06:02 +08:00
2026-09-15 17:00:52 +08:00
2026-10-21 08:42:24 +08:00
2026-09-25 22:42:25 +08:00
2026-09-15 17:00:52 +08:00
2026-09-15 17:00:52 +08:00
2026-08-30 19:16:19 +08:00
2026-10-02 11:22:38 +08:00
2026-10-04 22:37:20 +08:00
2026-09-25 22:42:25 +08:00
2026-09-25 22:42:25 +08:00
2026-08-27 10:59:56 +08:00
2026-10-13 03:41:39 +08:00
2026-10-18 16:32:55 +08:00
2026-10-13 03:41:39 +08:00
2026-09-23 18:29:52 +08:00
2026-10-18 16:32:55 +08:00
2026-09-25 10:39:18 +08:00
2026-09-14 20:37:12 +08:00
2026-09-13 07:38:58 +08:00
2026-09-25 22:42:25 +08:00
2026-09-15 18:36:46 +08:00
2026-09-03 01:22:46 +08:00
2026-08-27 15:51:19 +08:00
2026-09-23 01:03:19 +08:00
2026-09-05 09:10:35 +08:00
2026-09-18 18:15:22 +08:00
2026-09-18 19:03:49 +08:00
2026-09-18 19:34:59 +08:00
2026-09-21 09:37:38 +08:00
2026-09-21 10:36:02 +08:00
2026-09-21 14:56:43 +08:00
2026-10-09 17:00:37 +08:00
2026-09-14 17:39:53 +08:00
2026-08-26 07:51:39 +08:00
2026-09-14 17:39:53 +08:00
2026-08-30 10:27:01 +08:00
2026-07-27 17:16:01 +08:00
2026-09-18 20:33:39 +08:00
2026-10-13 07:48:18 +08:00
2026-10-18 16:31:52 +08:00
2026-09-29 13:00:48 +08:00
2026-10-05 02:02:21 +08:00
2026-10-05 02:02:21 +08:00
2026-09-23 21:39:24 +08:00
2026-09-23 23:08:26 +08:00
2026-09-15 17:00:52 +08:00
2026-09-15 18:12:05 +08:00
2026-10-18 16:31:52 +08:00
2026-10-18 16:31:52 +08:00
2026-08-26 06:53:25 +08:00
2026-09-15 17:00:52 +08:00
2026-09-14 17:39:53 +08:00
2026-09-14 18:12:38 +08:00
2026-07-27 17:16:01 +08:00
2026-09-14 17:39:53 +08:00
2026-10-12 17:06:07 +08:00
2026-10-12 11:42:56 +08:00
2026-10-13 11:37:24 +08:00
2026-10-18 16:31:52 +08:00
2026-10-12 17:06:07 +08:00
2026-09-14 17:39:53 +08:00
2026-09-14 17:39:53 +08:00
2026-09-25 16:34:52 +08:00
2026-09-22 11:06:02 +08:00
2026-07-12 17:46:08 +08:00
2026-09-26 02:42:04 +08:00
2026-07-12 17:46:08 +08:00
2026-09-21 10:36:02 +08:00
2026-08-20 06:57:24 +08:00
2026-10-16 18:28:50 +08:00
2026-10-03 02:10:47 +08:00
2026-08-30 23:13:32 +08:00
2026-09-18 20:23:53 +08:00
2026-10-18 16:42:06 +08:00
2026-09-18 17:33:25 +08:00
2026-09-16 01:17:09 +08:00
2026-10-14 23:14:41 +08:00
2026-10-13 20:33:42 +08:00
2026-09-25 22:42:25 +08:00
2026-09-15 18:36:46 +08:00
2026-09-14 17:39:53 +08:00
2026-09-14 17:39:53 +08:00
2026-08-25 23:59:33 +08:00
2026-10-18 16:31:52 +08:00
2026-09-21 10:36:02 +08:00
2026-09-11 17:25:24 +08:00
2026-09-11 17:27:12 +08:00
2026-08-20 06:57:24 +08:00
2026-07-12 17:46:08 +08:00
2026-07-12 17:46:08 +08:00
2026-07-12 17:46:08 +08:00
2026-09-14 19:05:16 +08:00
2026-09-14 19:05:16 +08:00
2026-09-22 11:21:24 +08:00