Jelajahi Sumber

修改订单同步,包裹同步的问题

ajun 4 tahun lalu
induk
melakukan
a2bd1268c5
1 mengubah file dengan 12 tambahan dan 11 penghapusan
  1. 12 11
      app/Services/OrderPackageService.php

+ 12 - 11
app/Services/OrderPackageService.php

@@ -223,17 +223,17 @@ class OrderPackageService
         $dataHandlerService = app(DataHandlerService::class);
         $orderPackageCommoditiesService = app('OrderPackageCommoditiesService');
 
-        /** 获取所有的 picktotraceid WMS快递单号*/
-        $logistic_numbers = data_get($orderHeaders,'*.actAllocationDetails.*.picktotraceid');
-
-         /** WMS定制化操作 订单取消 和 京东快递*/
+        $logistic_numbers = array();
         foreach ($orderHeaders as $orderHeader) {
-            if($orderHeader['sostatus'] == '90'){
-                if($orderHeader['soreference5']=='')$logistic_numbers[] =$orderHeader['orderno'];
-                else $logistic_numbers[] = $orderHeader['soreference5'];
-            }
-            if($orderHeader['userdefine1'] == 'JDKD'){
-                $logistic_numbers[] = $orderHeader['soreference5'];
+            if($orderHeader['sostatus'] == '90') {
+                if($orderHeader['soreference5'] == '') $logistic_numbers[$orderHeader['orderno']] = $orderHeader['orderno'];
+                else $logistic_numbers[$orderHeader['soreference5']] = $orderHeader['soreference5'];
+            } elseif ($orderHeader['userdefine1'] == 'JDKD' ){
+                $logistic_numbers[$orderHeader['soreference5']] = $orderHeader['soreference5'];
+            } else {
+                foreach ($orderHeader->actAllocationDetails as $actAllocationDetail) {
+                    $logistic_numbers[$actAllocationDetail['picktotraceid']] =  $actAllocationDetail['picktotraceid'];
+                }
             }
         }
 
@@ -246,8 +246,9 @@ class OrderPackageService
         $exits_number = data_get($packages,'*.logistic_number');
 
         /** WMS快递单号 和 WAS的快递单号 的差集*/
-        $packages = [];
+        $packages = array();
         $diff_number = array_diff($exits_number,$logistic_numbers);
+
         /** 记录差集对应的OrderPackage的id*/
         foreach ($diff_number as $number) {
             $package = $dataHandlerService->getKeyValue(['logistic_number'=>$number],$packages_maps);