From 489a0050c476f9a20672e81bd5f1c22dd6d56af5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=A8=E5=BB=BA=E7=82=8A?= <924182103@qq.com> Date: Wed, 7 Aug 2024 16:23:04 +0800 Subject: [PATCH] =?UTF-8?q?=E9=B2=9C=E8=8A=B12.0-=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=B5=8B=E8=AF=95bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Console/Commands/CheckSkuQualityPeriod.php | 12 ++++++++---- app/Http/Service/MessageService.php | 3 +-- app/Imports/InventoryImport.php | 3 ++- app/Imports/PurchaseImport.php | 5 +++-- app/Services/GoodSku/GoodSkuService.php | 1 + 5 files changed, 15 insertions(+), 9 deletions(-) diff --git a/app/Console/Commands/CheckSkuQualityPeriod.php b/app/Console/Commands/CheckSkuQualityPeriod.php index d30fcf0..02821b0 100644 --- a/app/Console/Commands/CheckSkuQualityPeriod.php +++ b/app/Console/Commands/CheckSkuQualityPeriod.php @@ -53,21 +53,25 @@ class CheckSkuQualityPeriod extends Command ->leftJoin('goods_skus as b', 'a.sku_id', '=', 'b.id') ->where("a.status", "=", 0) ->whereBetween('a.expire_time', [$startTime, $endTime])->get(); + Log::info('purchaseRecords',(array)$purchaseRecords); if ($purchaseRecords->isNotEmpty()) { $messageService = new MessageService(); + $updateIds = []; foreach ($purchaseRecords as $v) { // 单独采购单后续总和小于库存表示该sku没有卖完 $totalPurchaseNum = PurchaseRecords::query()->where('id', '>=', $v->id) ->where('sku_id',"=",$v->sku_id)->sum('num'); if ($totalPurchaseNum < $v->stock) { - Log::info("触发通知{$totalPurchaseNum}:",(array)$v); $messageService->skuQualityPeriodNoticeMessage((array)$v); } + $updateIds[] = $v->id; //更新下状态 - PurchaseRecords::query()->where('id', '=', $v->id)->update([ - "status" => 1 - ]); + } + PurchaseRecords::query()->whereIn('id', $updateIds)->update([ + "status" => 1 + ]); + } Log::info('任务完成:check-CheckSkuQualityPeriod'); diff --git a/app/Http/Service/MessageService.php b/app/Http/Service/MessageService.php index daaac35..27a12d8 100644 --- a/app/Http/Service/MessageService.php +++ b/app/Http/Service/MessageService.php @@ -90,8 +90,7 @@ class MessageService $arr['role_id'] = $v; $arr['unique_key'] = $date . "-" . $goodsSku['id'] . "-" . $v;//这个场景下实际是采购单的id $arr['type'] = MessageTypeEnum::QUALITY_PERIOD_EXPIRE_NOTICE; - $arr['content'] = $date . "规格{$goodsSku['title']}编码{$goodsSku['external_sku_id']},即将过期,目前实际库存{$goodsSku['stock']} - ,当时采购数量为{$goodsSku['num']},录入采购时间为{$goodsSku['created_at']}"; + $arr['content'] = $date . "规格{$goodsSku['title']}编码{$goodsSku['external_sku_id']},即将过期,目前实际库存{$goodsSku['stock']},当时采购数量为{$goodsSku['num']},录入采购时间为{$goodsSku['created_at']}"; $this->saveWebsiteMessages($arr); } diff --git a/app/Imports/InventoryImport.php b/app/Imports/InventoryImport.php index c71938e..742b81e 100644 --- a/app/Imports/InventoryImport.php +++ b/app/Imports/InventoryImport.php @@ -10,6 +10,7 @@ use App\Models\TodayPrice; use App\Services\GoodSku\GoodSkuService; use App\Utils\DateTimeUtils; use Exception; +use Illuminate\Support\Facades\Log; use Maatwebsite\Excel\Concerns\SkipsEmptyRows; use Maatwebsite\Excel\Concerns\ToArray; use App\Utils\ArrayUtils; @@ -42,7 +43,7 @@ class InventoryImport implements ToArray, SkipsEmptyRows return $v; } })->toArray(); - + Log::info("goodsSkus",$goodsSkus); $goodSkuService = new GoodSkuService(); $goodSkuService->inventory($goodsSkus); } diff --git a/app/Imports/PurchaseImport.php b/app/Imports/PurchaseImport.php index 473e296..8011449 100644 --- a/app/Imports/PurchaseImport.php +++ b/app/Imports/PurchaseImport.php @@ -37,7 +37,7 @@ class PurchaseImport implements ToArray, SkipsEmptyRows $updateIds = []; $hasGoodsSkus = GoodsSku::query() ->whereIn('external_sku_id', $externalSkuIds) - ->get(['id', 'status', 'external_sku_id', 'stock']) + ->get(['id', 'status', 'external_sku_id', 'stock', "sale_stock", "cost"]) ->toArray(); $hasGoodsSkus = ArrayUtils::index($hasGoodsSkus, 'external_sku_id'); $expireDay = DeveloperConfigService::getDefaultExpireDay(); @@ -56,7 +56,8 @@ class PurchaseImport implements ToArray, SkipsEmptyRows $purchaseRecords->cost = $row[3]; $purchaseRecords->buyer_name = $row[4] ?? ''; $purchaseRecords->supplier_name = $row[5] ?? ''; - $purchaseRecords->expire_time = $row[6] ?? Carbon::now()->addDays($expireDay)->toDateTimeString(); + $purchaseRecords->expire_time = !empty($row[6]) ? Carbon::parse($row[6])->toDateTimeString() + : Carbon::now()->addDays($expireDay)->toDateTimeString(); $purchaseRecords->save(); $updateIds = GoodSkuService::computeSkuStock($goodsSkuItem, ["num" => $row[2], 'cost' => $row[3]]); diff --git a/app/Services/GoodSku/GoodSkuService.php b/app/Services/GoodSku/GoodSkuService.php index bf7d6d1..4b22fca 100644 --- a/app/Services/GoodSku/GoodSkuService.php +++ b/app/Services/GoodSku/GoodSkuService.php @@ -89,6 +89,7 @@ class GoodSkuService if (!empty($unshippedData[$v['external_sku_id']])) { $v['inventory'] = $v['inventory'] - $unshippedData[$v['external_sku_id']]['goods_total'] + $unshippedData[$v['external_sku_id']]['cancel_total']; + } return $v; })->toArray();