From be5f960f63e2a7d3cd692e94a893b8fdd2cef11b Mon Sep 17 00:00:00 2001 From: WuYongJie <549727955@qq.com> Date: Thu, 24 Sep 2026 15:47:12 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=81=BF=E5=85=8D=E8=BF=9B=E9=94=80?= =?UTF-8?q?=E5=AD=98=E6=B1=87=E6=80=BB=E5=85=A8=E8=A1=A8=E6=89=AB=E6=8F=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...hirdPartyWarehouseStorageMirrorRepository.php | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/modules/EcommerceFinance/Repositories/ThirdPartyWarehouseStorageMirrorRepository.php b/modules/EcommerceFinance/Repositories/ThirdPartyWarehouseStorageMirrorRepository.php index a9b8cdcb..45698ce2 100644 --- a/modules/EcommerceFinance/Repositories/ThirdPartyWarehouseStorageMirrorRepository.php +++ b/modules/EcommerceFinance/Repositories/ThirdPartyWarehouseStorageMirrorRepository.php @@ -1474,12 +1474,16 @@ class ThirdPartyWarehouseStorageMirrorRepository ?int $warehouseId = self::WAREHOUSE_ID, ): Builder { - $query = $this->connection->table(self::ITEM_TABLE . ' as i') - ->join(self::HEADER_TABLE . ' as h', function ($join) use ($headerGeneration): void { - $join->on('h.io_id', '=', 'i.io_id') - ->where('h.generation', '=', $headerGeneration); - }) - ->where('i.generation', $itemGeneration) + $query = $this->connection->table(self::HEADER_TABLE . ' as h'); + // MariaDB otherwise scans every historical header for the all-warehouse roll-forward. + if ($warehouseId === null && $this->connection->getDriverName() === 'mysql') { + $query->forceIndex('tpw_headers_report_index'); + } + $query->join(self::ITEM_TABLE . ' as i', function ($join) use ($itemGeneration): void { + $join->on('i.io_id', '=', 'h.io_id') + ->where('i.generation', '=', $itemGeneration); + }) + ->where('h.generation', $headerGeneration) ->where('h.status', 'Confirmed') ->whereIn('h.io_type', array_values(self::MOVEMENT_COLUMNS)) ->whereNotExists(function (Builder $newer) use ($headerGeneration): void {