From f84de986968f462afeff539f47fe25cc1c346b59 Mon Sep 17 00:00:00 2001 From: WuYongJie <549727955@qq.com> Date: Thu, 24 Sep 2026 15:48:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=BF=9B=E9=94=80=E5=AD=98?= =?UTF-8?q?=E6=B1=87=E6=80=BB=E8=AE=A1=E6=95=B0=E8=B6=85=E6=97=B6=20(#270)?= 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 {