chore: 记录线上 f8c594c3 已合入 main #649

Closed
qiuxiang wants to merge 10 commits from fix/qiuxiang-installation-fee-tab-release into main

10 Commits

Author SHA1 Message Date
a461bcaee6 merge: 记录线上 f8c594c3 已合入 main 2026-10-26 20:42:29 +08:00
j.jiang
f8c594c3de merge: 同步线上最新 main (#640) 2026-10-26 19:58:14 +08:00
j.jiang
49489a59d0 merge: 同步线上最新 main (#633) 后发布 2026-10-26 19:39:18 +08:00
j.jiang
49c692b4d6 chore: 移除调试临时文件(会话 cookie 不应入库) 2026-10-26 17:57:35 +08:00
j.jiang
b53b077deb merge: 带上筛选栏网格修复 2026-10-26 17:57:28 +08:00
j.jiang
56391d4e81 merge: 同步 main 到性能分支(部署前对齐) 2026-10-26 17:57:21 +08:00
j.jiang
c898308f18 fix: 恢复报表筛选栏网格布局(#602 精简样式导致字段整行堆叠)
#602 把 .installation-filter-bar 的 display/grid-template-columns 移到了
安装明细页专用的 .installation-filter-primary / .installation-filter-time /
.installation-filter-actions 内部容器,但店铺维度报表、业绩明细、进销存报表、
入库明细四个页面仍直接以 .installation-filter-field 作为栅格项,失去网格后
每个筛选项各占一整行,查询/清除按钮被挤到最右下角。

新增 .installation-filter-bar--grid 修饰类,恢复四列栅格(1100px 两列、
650px 单列)与左对齐操作区,并只应用到上述四个直接使用字段栅格的表单;
安装明细页使用内部容器排版,不受影响。
2026-10-26 17:52:33 +08:00
j.jiang
6cbfe27afc fix: 物化状态同时校验空值,兼容尚未部署新代码的同步任务
状态表标记已物化、但旧版本同步代码重刷账期时不写物化列,会留下 NULL
导致页面把未物化行当成 0 差额。现在读取状态时同时检查该账期是否还有
has_difference 为 NULL 的行,有则回退实时规则表达式(缓存 10 分钟)。
2026-10-26 17:36:20 +08:00
j.jiang
089c2dd603 perf: 补业绩明细排序索引,回填后页面热缓存 24ms
- 新增 (report_month, occurred_date, store_name, online_order_no) 索引,
  默认列表不再对整月 32 万行做 filesort;
- 文档补充共享库回填实测数据(91.7 万行回填 5.9 分钟,三项一致性差异 0;
  联动统计 84.9 秒 → 冷 1.7 秒 / 热 2 毫秒,页面 7.7 秒 → 冷 1.7 秒 / 热 24 毫秒)。
2026-10-26 17:31:51 +08:00
j.jiang
4ea833d0d8 perf: 业绩明细差额规则落库,切月份统计从数十秒降到亚秒级
业绩明细页的「差额合计」「差额异常备注」「差额(有/无)」原先都在查询时
逐行现算同一套规则链(生成 SQL 24KB/50KB,含 36 处 ops_jst_orders 关联
子查询)。整月 32.4 万行实测:联动统计 14.5~41.6 秒,页面主体 2.7~4.6 秒。

- 新增物化列 difference_reason_index / base_difference / has_difference,
  以及 (report_month, difference_reason_index)、(report_month, has_difference)、
  (report_month, store_name, platform) 三个索引和物化状态表;
- 新增 store-receipt:materialize-differences 命令(分批写入、支持 --dry-run
  三项一致性校验,默认连带重算相邻月份以覆盖跨月备注);
- store-receipt:order-match:sync 成功后自动物化(--skip-materialize 可关闭);
- 页面聚合、联动统计、备注/差额筛选改读物化列,规则指纹不匹配或未物化时
  自动回退实时表达式,功能不受影响;
- 月份下拉缓存 6 小时、指标卡聚合 5 分钟、联动统计 1 小时,缓存键带规则
  指纹、物化状态与数据版本,物化后自动失效;
- 前端联动统计改为展开下拉时按需请求,页面加载不再同步统计整月。

规则表达式仍以 Pages 的静态方法为唯一口径,物化命令直接复用,不在 PHP 中
重写规则。本地用 7,907 行副本验证:三项一致性差异为 0,数字与实时口径完全
一致;联动统计 76ms→21ms、页面 56ms→41ms(同一数据)。详见
docs/业绩明细差额物化.md。
2026-10-26 16:36:13 +08:00