修复生产报表查询超时 #255

Merged
WuYongJie merged 1 commits from hotfix/WuYongJie-production-query-timeouts into main 2026-09-23 19:08:47 +08:00
Owner

做了什么

  • 修复进销存滚动报表关联条件未命中日期索引的问题。
  • 用分页窗口总数替代重复的整段联合 COUNT,并只汇总当前页涉及的流水。
  • 合并支付宝账单总数和收支汇总扫描。
  • 为两类页面查询增加 MariaDB 30 秒语句上限和基于同步版本的短期缓存,避免超时请求持续占用数据库。

修改文件

  • modules/EcommerceFinance/Repositories/ThirdPartyWarehouseStorageMirrorRepository.php
  • modules/EcommerceFinance/Repositories/StoreReceivingAlipayBillMirrorRepository.php
  • 对应两组单元测试

验证

  • 37 个相关单元测试通过,共 218 个断言。
  • 5 个相关页面/接口测试通过,共 37 个断言。
  • 生产数据只读验证:进销存冷请求约 16 秒、同请求缓存约 0.02 秒;支付宝冷请求约 8.6 秒、缓存约 0.02 秒。
  • 新旧进销存实现对生产样本的总数和业务字段语义校验一致。
  • MariaDB 语句时限通过实际 PDO 查询验证,超限查询会被数据库端中止。

影响范围

不涉及金额写入、权限、数据库迁移或配置覆盖。

## 做了什么 - 修复进销存滚动报表关联条件未命中日期索引的问题。 - 用分页窗口总数替代重复的整段联合 COUNT,并只汇总当前页涉及的流水。 - 合并支付宝账单总数和收支汇总扫描。 - 为两类页面查询增加 MariaDB 30 秒语句上限和基于同步版本的短期缓存,避免超时请求持续占用数据库。 ## 修改文件 - modules/EcommerceFinance/Repositories/ThirdPartyWarehouseStorageMirrorRepository.php - modules/EcommerceFinance/Repositories/StoreReceivingAlipayBillMirrorRepository.php - 对应两组单元测试 ## 验证 - 37 个相关单元测试通过,共 218 个断言。 - 5 个相关页面/接口测试通过,共 37 个断言。 - 生产数据只读验证:进销存冷请求约 16 秒、同请求缓存约 0.02 秒;支付宝冷请求约 8.6 秒、缓存约 0.02 秒。 - 新旧进销存实现对生产样本的总数和业务字段语义校验一致。 - MariaDB 语句时限通过实际 PDO 查询验证,超限查询会被数据库端中止。 ## 影响范围 不涉及金额写入、权限、数据库迁移或配置覆盖。
WuYongJie added 1 commit 2026-09-23 19:07:44 +08:00
WuYongJie merged commit f04f8907ea into main 2026-09-23 19:08:47 +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#255
No description provided.