erp/app/Imports/InventoryImport.php

49 lines
1.5 KiB
PHP
Raw Normal View History

2022-09-08 01:02:07 +08:00
<?php
namespace App\Imports;
2023-11-21 16:27:14 +08:00
use App\Events\BatchStockUpdateEvent;
2023-09-06 17:02:48 +08:00
use App\Jobs\SyncCostToMiaoXuan;
2022-09-08 01:02:07 +08:00
use App\Models\DailyStockRecord;
use App\Models\GoodsSku;
2023-04-21 17:46:59 +08:00
use App\Models\TodayPrice;
2024-07-26 17:48:07 +08:00
use App\Services\GoodSku\GoodSkuService;
2022-09-08 01:02:07 +08:00
use App\Utils\DateTimeUtils;
use Exception;
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
use App\Utils\ArrayUtils;
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
{
unset($collection[0]);
2024-07-30 15:30:32 +08:00
$externalSkuIds = [];
$inventoryKeyByExternalSkuIdMap = [];
2022-09-08 01:02:07 +08:00
foreach ($collection as &$row) {
$row = array_map(static function ($v) {
return trim($v);
}, $row);
2024-07-30 15:30:32 +08:00
$inventoryKeyByExternalSkuIdMap[$row[0]] = $row[2];
$externalSkuIds[] = $row[0];
2023-04-21 17:46:59 +08:00
}
2024-07-26 17:48:07 +08:00
unset($row);
//新版盘点excel字段 编码 商品名称 盘点数
2024-07-30 15:30:32 +08:00
$goodsSkus = GoodsSku::query()->with("combinationGoods")->whereIn('external_sku_id', $externalSkuIds)
->get()->toArray();
$goodsSkus = collect($goodsSkus)->map(function ($v) use ($inventoryKeyByExternalSkuIdMap) {
if (!empty($inventoryKeyByExternalSkuIdMap[$v['external_sku_id']])) {
$v['inventory'] = $inventoryKeyByExternalSkuIdMap[$v['external_sku_id']];
return $v;
}
})->toArray();
2024-07-26 17:48:07 +08:00
$goodSkuService = new GoodSkuService();
2024-07-30 15:30:32 +08:00
$goodSkuService->inventory($goodsSkus);
2022-09-08 01:02:07 +08:00
}
}