Zhouzhendong 5 лет назад
Родитель
Сommit
cf4cfc16a0
2 измененных файлов с 10 добавлено и 3 удалено
  1. 5 2
      app/Jobs/OrderFreeze.php
  2. 5 1
      app/Services/OrderService.php

+ 5 - 2
app/Jobs/OrderFreeze.php

@@ -2,8 +2,7 @@
 
 namespace App\Jobs;
 
-use App\OracleDOCOrderHeader;
-use App\Services\CacheService;
+use App\Services\LogService;
 use Illuminate\Bus\Queueable;
 use Illuminate\Contracts\Queue\ShouldQueue;
 use Illuminate\Foundation\Bus\Dispatchable;
@@ -57,6 +56,9 @@ class OrderFreeze implements ShouldQueue
 
     private function isFreeze($param)
     {
+        $status = ['分配完成','创建订单','拣货完成','播种完成'];
+        if (array_search($param["wms_status"],$status)!==false)return false;
+
         foreach ($this->pool as $pool){
             if ($pool["location_id"]!=$param["location_id"])continue;
             if ($pool["province_name"] && (mb_strpos($param["province"],$pool["province_name"]) === false))continue;
@@ -75,6 +77,7 @@ class OrderFreeze implements ShouldQueue
         $sql = <<<sql
 UPDATE DOC_ORDER_HEADER SET releasestatus = 'H',waveno='*',notes = CASE WHEN notes IS NULL THEN '停运' ELSE  notes||',停运' END where ORDERNO in ({$where})
 sql;
+        LogService::log(__METHOD__,"订单同步-自动冻结",$sql);
         DB::connection("oracle")->update($sql);
     }
 }

+ 5 - 1
app/Services/OrderService.php

@@ -3,6 +3,7 @@
 namespace App\Services;
 
 use App\Jobs\OrderCreateInstantBill;
+use App\Jobs\OrderFreeze;
 use App\Logistic;
 use App\OracleActAllocationDetails;
 use App\OracleDOCASNHeader;
@@ -649,7 +650,9 @@ class OrderService
         // 转换插入 3s
         if(count($created_params) > 0){
             collect($created_params)->chunk(3500)->each(function($inner_params){
-                $this->insert($inner_params->toArray());
+                $arr = $inner_params->toArray();
+                $this->insert($arr);
+                dispatch(new OrderFreeze($arr));
             });
         }
         unset($created_params);
@@ -663,6 +666,7 @@ class OrderService
         unset($update_order);
         if(count($update_params)==0)return;
         $this->batchUpdate($update_params);
+        dispatch(new OrderFreeze($update_params));
         unset($update_params);
     }