整合小额打款筛选与汇总性能保护 #271

Merged
WuYongJie merged 3 commits from feature/WuYongJie-small-payment-filter-integration into main 2026-09-24 16:14:18 +08:00
Owner

做了什么

  • 整合 feature/yueyang-small-payment-filter 的筛选金额合计、自动补全和日期时间筛选。
  • 汇总金额与总数合并为一次键集分块扫描,缓存 15 分钟并使用跨进程锁,避免并发页面请求重复扫描。
  • 店铺与打款原因选项统一缓存,并限制为小额打款类型。
  • 修复 datetime-local 值原先会被控制器丢弃、结束分钟不完整和导出文件名含冒号的问题。
  • 将默认小额打款页面加入报表缓存预热。

验证

  • SmallPaymentWorkOrderMirrorRepositoryTest + SmallPaymentWorkOrderPageTest:12 passed,103 assertions。
  • PagesTest + BusinessMirrorScheduleTest + SmallPaymentCompletionIndexMigrationTest:37 passed,445 assertions。
  • Blade 模板编译通过;git diff --check 通过。
  • 生产只读基线:工单镜像 468461 行,小额打款 82513 行,默认 30 天 14333 行。

风险与发布

  • 金额与工单数据只读,不修改原始业务数据。
  • 不涉及权限、数据库迁移或生产配置变更。
## 做了什么 - 整合 `feature/yueyang-small-payment-filter` 的筛选金额合计、自动补全和日期时间筛选。 - 汇总金额与总数合并为一次键集分块扫描,缓存 15 分钟并使用跨进程锁,避免并发页面请求重复扫描。 - 店铺与打款原因选项统一缓存,并限制为小额打款类型。 - 修复 `datetime-local` 值原先会被控制器丢弃、结束分钟不完整和导出文件名含冒号的问题。 - 将默认小额打款页面加入报表缓存预热。 ## 验证 - SmallPaymentWorkOrderMirrorRepositoryTest + SmallPaymentWorkOrderPageTest:12 passed,103 assertions。 - PagesTest + BusinessMirrorScheduleTest + SmallPaymentCompletionIndexMigrationTest:37 passed,445 assertions。 - Blade 模板编译通过;`git diff --check` 通过。 - 生产只读基线:工单镜像 468461 行,小额打款 82513 行,默认 30 天 14333 行。 ## 风险与发布 - 金额与工单数据只读,不修改原始业务数据。 - 不涉及权限、数据库迁移或生产配置变更。
WuYongJie added 3 commits 2026-09-24 16:13:44 +08:00
- 汇总金额改为当前筛选条件下的全部打款金额合计
- 店铺名称、打款原因增加 datalist 自动补全
- 工单/打款状态改为下拉选择
- 完成日期支持日期时间筛选

Refs: 财务平台小额打款页面
- 只取金额所需字段,按 w.Id 键集分块批量读取,避免逐行游标造成的每行一次网络往返
- 抽出 PAYMENT_AMOUNT_FIELDS 常量,与行内金额解析共用,避免口径漂移
- 抽出 centsFromMoney/formatCents,去掉重复的金额累加逻辑
WuYongJie merged commit fc70cff940 into main 2026-09-24 16:14:18 +08:00
WuYongJie deleted branch feature/WuYongJie-small-payment-filter-integration 2026-09-24 16:14:19 +08:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WuYongJie/CaiWuXiTong#271
No description provided.