diff --git a/app/Console/Commands/SyncStoreReceiptProductCost.php b/app/Console/Commands/SyncStoreReceiptProductCost.php index 23ad2683..73092168 100644 --- a/app/Console/Commands/SyncStoreReceiptProductCost.php +++ b/app/Console/Commands/SyncStoreReceiptProductCost.php @@ -275,9 +275,7 @@ class SyncStoreReceiptProductCost extends Command foreach ($billByCore as $core => $bill) { foreach ($this->costLines($lines[$core] ?? []) as $line) { - $short = $shortNames['by_warehouse'][$line['warehouse']] - ?? $shortNames['by_provider'][$line['warehouse']] - ?? ''; + $short = $shortNames['by_provider'][$line['warehouse']] ?? ''; $price = $short !== '' ? ($prices[$short . "\0" . $line['sku']] ?? null) : null; $priceSource = $price === null ? null : self::PRICE_SOURCE_WEIGHTED; // 月加权平均单价按「仓库简称 + 商品编码」匹配不到时,退回线上代发价格(按商品编码)。 @@ -490,7 +488,6 @@ class SyncStoreReceiptProductCost extends Command private function warehouseShortNames(): array { $byProvider = []; - $byWarehouse = []; foreach (DB::table(self::WAREHOUSE_MAPPING_TABLE) ->get(['warehouse_provider', 'warehouse', 'warehouse_short_name']) as $mapping) { $provider = trim((string) $mapping->warehouse_provider); @@ -499,19 +496,24 @@ class SyncStoreReceiptProductCost extends Command if ($short === '') { continue; } - if ($warehouse !== '' && ! isset($byWarehouse[$warehouse])) { - $byWarehouse[$warehouse] = $short; - } if ($provider === '') { continue; } + // 只认「仓储方 + 仓库含主仓」的那条:发货仓库是仓储方级别的名称, + // 次品仓 / 销退仓 / 客退仓这些行的简称(多为「-不看」)不能套到主仓发货上。 $isMain = str_contains($warehouse, '主仓'); - if ($isMain || ! isset($byProvider[$provider])) { + if ($isMain) { + $byProvider[$provider] = $short; + continue; + } + // 映射表没有主仓行时,仅接受「仓库名 = 仓储方名」这种同名仓库(如重庆渝北仓), + // 其余(次品仓、配件单仓等)不再兜底,避免把主仓订单误判成不看仓。 + if ($warehouse === $provider && ! isset($byProvider[$provider])) { $byProvider[$provider] = $short; } } - return ['by_provider' => $byProvider, 'by_warehouse' => $byWarehouse]; + return ['by_provider' => $byProvider]; } /** diff --git a/resources/views/business/pages/financial-operations/product-costs.blade.php b/resources/views/business/pages/financial-operations/product-costs.blade.php index 3949b202..0d6f3239 100644 --- a/resources/views/business/pages/financial-operations/product-costs.blade.php +++ b/resources/views/business/pages/financial-operations/product-costs.blade.php @@ -114,7 +114,8 @@