erp/app/Imports/InventoryImport.php

46 lines
1.6 KiB
PHP
Raw Permalink Normal View History

2022-09-08 01:02:07 +08:00
<?php
namespace App\Imports;
use App\Models\GoodsSku;
2024-07-26 17:48:07 +08:00
use App\Services\GoodSku\GoodSkuService;
2022-09-08 01:02:07 +08:00
use Exception;
2024-08-07 16:23:04 +08:00
use Illuminate\Support\Facades\Log;
2022-09-08 01:02:07 +08:00
use Maatwebsite\Excel\Concerns\SkipsEmptyRows;
2023-04-21 17:46:59 +08:00
use Maatwebsite\Excel\Concerns\ToArray;
2022-09-08 01:02:07 +08:00
2023-04-21 17:46:59 +08:00
class InventoryImport implements ToArray, SkipsEmptyRows
2022-09-08 01:02:07 +08:00
{
/**
* @throws Exception
*/
2023-04-21 17:46:59 +08:00
public function array(array $collection)
2022-09-08 01:02:07 +08:00
{
if (!empty($collection)) {
unset($collection[0]);
$externalSkuIds = [];
$inventoryKeyByExternalSkuIdMap = [];
foreach ($collection as &$row) {
$row = array_map(static function ($v) {
return trim($v);
}, $row);
$inventoryKeyByExternalSkuIdMap[$row[0]] = $row[2];
$externalSkuIds[] = $row[0];
2024-07-30 15:30:32 +08:00
}
unset($row);
//新版盘点excel字段 编码 商品名称 盘点数
$goodsSkus = GoodsSku::query()->with("combinationGoods")->whereIn('external_sku_id', $externalSkuIds)
->get()->toArray();
$goodsSkus = collect($goodsSkus)->map(function ($v) use ($inventoryKeyByExternalSkuIdMap) {
2024-11-08 16:41:44 +08:00
if (isset($inventoryKeyByExternalSkuIdMap[$v['external_sku_id']])) {
$v['inventory'] = $inventoryKeyByExternalSkuIdMap[$v['external_sku_id']];
return $v;
}
})->toArray();
2024-08-07 16:23:04 +08:00
Log::info("goodsSkus",$goodsSkus);
$goodSkuService = new GoodSkuService();
$goodSkuService->inventory($goodsSkus);
}
2022-09-08 01:02:07 +08:00
}
}