فهرست منبع

订单追踪
修改销售,客户,订单备注对应字段

ajun 5 سال پیش
والد
کامیت
d67ce72e76
3فایلهای تغییر یافته به همراه31 افزوده شده و 45 حذف شده
  1. 1 1
      app/Http/Controllers/OrderTrackingController.php
  2. 18 15
      app/Http/Controllers/TestController.php
  3. 12 29
      app/Services/OrderTrackingService.php

+ 1 - 1
app/Http/Controllers/OrderTrackingController.php

@@ -202,7 +202,7 @@ class OrderTrackingController extends Controller
                 $order_client_code,
                 $web_order_number,
                 $pick_up_at=='0000-00-00'?'':$pick_up_at,
-                $orderTracking->sala,
+                $orderTracking->sale,
                 $orderTracking->client,
                 $orderTracking->commodities->commodity->sku ?? '',
                 $orderTracking->commodities->commodity->name ?? '',

+ 18 - 15
app/Http/Controllers/TestController.php

@@ -818,21 +818,7 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
     }
 
 
-    public function test3()
-    {
-        /** @var OrderTrackingService $orderTrackingService */
-        $orderTrackingService = app('OrderTrackingService');
-        /** @var OrderService $orderService */
-        $orderService = app(OrderService::class);
-        $owners = app(OrderTrackingOwnerService::class)->getTrackingOrderOwner();
-        $startDate = \Illuminate\Support\Carbon::parse('2020-10-28 00:00:00')->toDateTimeString();
-        $orderHeaders = OracleDOCOrderHeader::query()->with(['oracleDOCOrderDetails', 'actAllocationDetails', 'oracleBASCode'])
-            ->where('addTime', '>=', $startDate)
-            ->whereIn('customerID', data_get($owners, '*.code'))
-            ->get();
-        $orderService->updateByWmsOrders($orderHeaders);
-        $orderTrackingService->updateByWmsOrderHeaders($orderHeaders);
-    }
+
 
     public function test11()
     {
@@ -1231,4 +1217,21 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
         }
         dd($requests);
     }
+
+    public function syncOrderTracking()
+    {
+        /** @var OrderTrackingService $orderTrackingService */
+        $orderTrackingService = app('OrderTrackingService');
+        /** @var OrderService $orderService */
+        $orderService = app(OrderService::class);
+        /*$owners = app(OrderTrackingOwnerService::class)->getTrackingOrderOwner();*/
+        /*$startDate = \Illuminate\Support\Carbon::parse('2020-10-28 00:00:00')->toDateTimeString();*/
+        $orderNos = ['SO201205001735','SO201204003891','SO201204003706','SO201204002877','SO201203003771'];
+        $orderHeaders = OracleDOCOrderHeader::query()->with(['oracleDOCOrderDetails', 'actAllocationDetails', 'oracleBASCode'])
+            ->whereIn('orderno',$orderNos)
+            ->get();
+        $orderService->updateByWmsOrders($orderHeaders);
+        $orderTrackingService->createByWmsOrderHeader($orderHeaders);
+    }
+
 }

+ 12 - 29
app/Services/OrderTrackingService.php

@@ -258,17 +258,7 @@ class OrderTrackingService
             $order_header = $order_headers_map[$order->code];
             if(!$order_header){continue ;}
             if($order_header->sostatus == 90){continue;}
-            $client = null;
-            $order_remark = null;
-            if ($order_header['notes'] ?? false) {
-                $notes = $order_header->notes;
-                if (strpos($notes, '[')) {
-                    $strings = [];
-                    preg_match_all('/^(.*?)(\\[)(.*?)(\\])(.*?)$/u',$notes,$strings);
-                    $client = $strings[1][0];
-                    $order_remark = $strings[3][0];
-                }
-            }
+
             $web_order_number = null;
             if(preg_match('/^O[\d]/',$order_header['soreference1'] ?? '') > 0){
                 $web_order_number = $order_header['soreference1'];
@@ -282,9 +272,10 @@ class OrderTrackingService
                 'order_package_commodity_id' => $item->id,
                 'owner_id' => $order->owner_id,
                 'order_client_code' =>$order->client_code,
-                'client' => $client,
+                'sale' => $param['sale'],
+                'client' => $param['client'],
                 'created_at' => $order->created_at,
-                'order_remark' => $order_remark,
+                'order_remark' => $param['order_remark'],
                 'pick_up_at' => $order_header->lastshipmenttime, // 提货时间,
                 'web_order_number' => $web_order_number,
                 'gross_weight'=> $gross_weight,
@@ -293,7 +284,6 @@ class OrderTrackingService
                 'planning_sent_at' => $param['planning_sent_at'] ?? ''
             ];
         }
-
         try {
             if (count($params) > 0) {
                 $this->insert($params);
@@ -310,12 +300,14 @@ class OrderTrackingService
         /** @var DataHandlerService $dataService */
         $dataService = app(DataHandlerService::class);
         $order_nos = data_get($orderHeaders,'*.orderno');
-        $order_package_commodities = OrderPackageCommodities::query()
-            ->with('package.order')
+
+        $order_package_commodities = OrderPackageCommodities::query()->with('package.order')
             ->whereHas('package.order',function($query) use ($order_nos){
                 $query->whereIn('code',$order_nos);
             })->get();
+
         $orderTrackings = OrderTracking::query()->whereIn('order_package_commodity_id',data_get($order_package_commodities,'*.id'))->get();
+
         $order_tracking_id_map = [];
         foreach ($orderTrackings as $orderTracking) {
             $order_tracking_id_map[$orderTracking->order_package_commodity_id] = $orderTracking;
@@ -415,16 +407,6 @@ class OrderTrackingService
     {
         $client = null;
         $order_remark = null;
-        if ($orderHeader['notes'] ?? false) {
-            $notes = $orderHeader->notes;
-            if (strpos($notes, '[')) {
-                $index = strpos($notes, '[');
-                $client = substr($notes,0,$index);
-                $order_remark = substr($notes,$index);
-                $order_remark = ltrim($order_remark,'[');
-                $order_remark = rtrim($order_remark,']');
-            }
-        }
         $web_order_number = null;
         if(preg_match('/^O[\d]/',$orderHeader['soreference1'] ?? '') > 0){
             $web_order_number = $orderHeader['soreference1'];
@@ -439,10 +421,11 @@ class OrderTrackingService
         }
         return [
             'owner_id' => $order->owner_id,
-            'client' => $client,
+            'client' => $orderHeader['c_contact'],
+            'sale' => $orderHeader['issuepartyname'],
             'created_at' => $order->created_at,
-            'order_remark' => $order_remark,
-            'pick_up_at' => $orderHeader->lastshipmenttime, // 提货时间
+            'order_remark' => $orderHeader['notes'],
+            'pick_up_at' => $orderHeader['lastshipmenttime'] ?? '', // 提货时间
             'web_order_number' =>$web_order_number,
             'is_on_duty_shift'=>$planning_sent_at?'是':null,
             'planning_sent_at' => (string)$planning_sent_at