ajun 5 лет назад
Родитель
Сommit
92475db16c
1 измененных файлов с 28 добавлено и 3 удалено
  1. 28 3
      app/Services/OrderService.php

+ 28 - 3
app/Services/OrderService.php

@@ -440,7 +440,7 @@ class OrderService
         if (!$ASNHeader) {
             return null;
         }
-        $orderHeader = OracleDOCOrderHeader::query()->where('SOReference1', $ASNHeader->ASNReference2);
+        $orderHeader = OracleDOCOrderHeader::query()->where('SOReference1', $ASNHeader->ASNReference2)->first();
         if (!$orderHeader) {
             return null;
         }
@@ -809,7 +809,7 @@ class OrderService
 
         $packageService->syncOrderPackage($orderHeaders);
 
-        $this->pushQueue($orderHeaders);
+//        $this->pushQueue($orderHeaders);
     }
 
     public function pushQueue($orderHeaders){
@@ -820,7 +820,6 @@ class OrderService
         });
     }
 
-
     public function syncOrderByWMSOrderHeaders(&$orderHeaders)
     {
         if($orderHeaders->isEmpty())return;
@@ -916,6 +915,7 @@ class OrderService
         $owner_map = $dataHandlerService->dataHeader(['code'],$owners);
         $logistic_map = $dataHandlerService->dataHeader(['code'],$logistics);
         $shop_map = $dataHandlerService->dataHeader(['name','owner_id'],$shops);
+        $batch_map = $dataHandlerService->dataHeader(['code'],$batches);
         $collect = collect();
         $date = (string)Carbon::now();
         foreach ($orders as $order) {
@@ -1122,9 +1122,17 @@ class OrderService
          * @var OrderService $orderService
          */
         $newest         = config('sync.order_sync.cache_prefix.created_at');
+        $have_task_is_running_key  = config('sync.order_sync.cache_prefix.newest_is_running');
         $newest_list    = config('sync.order_sync.cache_prefix.newest_list');
         $hasKey         = config('sync.order_sync.cache_prefix.newest_has');
         $prefixKey      = config('sync.order_sync.cache_prefix.newest');
+
+        $have_task_is_running = Cache::get($have_task_is_running_key);
+        if($have_task_is_running)return;
+        Cache::remember($have_task_is_running_key,config('cache.expirations.forever'),function (){
+            return true;
+        });
+
         ini_set('memory_limit', '512M');
         $orderService = app('OrderService');
         $oracleDOCOrderHeaderService = app('OracleDocOrderHeaderService');
@@ -1145,6 +1153,10 @@ class OrderService
             $orderService->pushOrderCache($newest_orders,$prefixKey,$hasKey,$newest_list);              //  添加缓存
             $orderService->setOrderSyncAt($newest,$last_order->addtime,count($orderHeaders)>0);   //  更新时间
         }
+
+        Cache::remember($have_task_is_running_key,config('cache.expirations.forever'),function (){
+            return false;
+        });
     }
 
     public function syncUpdatedOrder(){
@@ -1153,9 +1165,17 @@ class OrderService
          * @var OrderService $orderService
          */
         $renewal        = config('sync.order_sync.cache_prefix.updated_at');
+        $have_task_is_running_key  = config('sync.order_sync.cache_prefix.renewal_is_running');
         $renewal_list   = config('sync.order_sync.cache_prefix.renewal_list');
         $hasKey         = config('sync.order_sync.cache_prefix.renewal_has');
         $prefixKey      = config('sync.order_sync.cache_prefix.renewal');
+
+        $have_task_is_running = Cache::get($have_task_is_running_key);
+        if($have_task_is_running)return;
+        Cache::remember($have_task_is_running_key,config('cache.expirations.forever'),function (){
+            return true;
+        });
+
         ini_set('memory_limit', '512M');
 
         $orderService = app('OrderService');
@@ -1163,6 +1183,7 @@ class OrderService
 
         $last_date = $orderService->getOrderSyncAt($renewal,'renewal');                               // 获取时间点
 
+
         $orderHeaders = $oracleDOCOrderHeaderService->getWMSOrderOnEditDate($last_date);                   // WMS订单
 
         if($orderHeaders->count()==0)return;
@@ -1178,6 +1199,10 @@ class OrderService
             $orderService->pushOrderCache($renewal_orders,$prefixKey,$hasKey,$renewal_list);                // 添加缓存
             $orderService->setOrderSyncAt($renewal,$renewal_order->edittime,count($orderHeaders)>0);   // 更新时间
         }
+
+        Cache::remember($have_task_is_running_key,config('cache.expirations.forever'),function (){
+            return false;
+        });
     }
 
     public function syncOrderByWmsOrderNos($orderNos)