
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:32:22 +08:00
2026-10-18 16:31:52 +08:00
2026-10-02 21:01:25 +08:00
2026-09-23 23:08:26 +08:00
2026-10-21 08:42:24 +08:00
2026-09-25 14:06:38 +08:00
2026-10-01 21:12:02 +08:00
2026-09-26 02:42:04 +08:00
2026-10-21 08:42:24 +08:00
2026-09-12 10:07:20 +08:00
2026-09-17 00:10:07 +08:00
2026-09-26 02:42:04 +08:00
2026-09-25 22:42:25 +08:00
2026-09-26 02:42:04 +08:00
2026-08-28 00:31:31 +08:00
2026-09-26 02:42:04 +08:00
2026-09-25 22:42:25 +08:00
2026-08-11 11:29:39 +08:00
2026-10-02 21:01:25 +08:00
2026-10-18 16:32:55 +08:00
2026-10-13 03:41:39 +08:00
2026-09-25 22:42:25 +08:00
2026-10-02 21:15:42 +08:00
2026-09-18 00:34:04 +08:00
2026-09-18 18:42:38 +08:00
2026-10-09 17:00:37 +08:00
2026-10-16 18:28:50 +08:00
2026-09-23 21:39:24 +08:00
2026-10-02 21:01:25 +08:00
2026-09-23 23:08:26 +08:00
2026-08-28 18:03:47 +08:00
2026-09-23 23:08:26 +08:00
2026-10-18 16:31:52 +08:00
2026-09-23 23:08:26 +08:00
2026-07-19 10:07:46 +08:00
2026-09-21 14:56:43 +08:00
2026-09-15 18:12:05 +08:00
2026-08-11 11:29:39 +08:00
2026-10-18 16:31:52 +08:00
2026-10-18 16:31:52 +08:00
2026-09-26 02:42:04 +08:00
2026-09-21 09:37:38 +08:00
2026-10-02 21:01:25 +08:00
2026-10-13 17:48:00 +08:00
2026-10-20 11:33:58 +08:00
2026-10-19 13:32:49 +08:00
2026-10-19 14:32:08 +08:00
2026-10-20 20:35:28 +08:00
2026-09-25 16:34:52 +08:00
2026-08-26 23:45:20 +08:00
2026-09-22 11:06:02 +08:00
2026-09-18 20:03:55 +08:00
2026-09-23 21:39:24 +08:00
2026-05-28 17:32:22 +08:00
2026-09-14 16:41:15 +08:00
2026-10-03 16:03:12 +08:00
2026-09-14 16:41:15 +08:00
2026-10-16 12:32:52 +08:00
2026-07-12 17:46:08 +08:00
2026-09-26 02:42:04 +08:00
2026-09-21 10:36:02 +08:00
2026-09-23 23:08:26 +08:00
2026-09-23 18:29:52 +08:00
2026-10-02 21:01:25 +08:00
2026-09-16 14:56:57 +08:00
2026-05-28 17:32:22 +08:00
2026-08-28 18:03:47 +08:00
2026-08-30 19:16:19 +08:00
2026-09-08 20:11:59 +08:00
2026-08-28 18:03:47 +08:00