Просмотр исходного кода

修改追踪件安桥订单号逻辑

ajun 5 лет назад
Родитель
Сommit
23d07e29e6

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

@@ -141,7 +141,7 @@ class TestController extends Controller
             $count = DB::connection("oracle")->selectOne(DB::raw("SELECT count(*) count FROM DOC_WAVE_DETAILS WHERE EDITTIME >= TO_DATE(?,'yyyy-mm-dd hh24:mi:ss')"),[$date]);
             if ($count->count > 1000){
                 $sql = <<<sql
-    SELECT * FROM (SELECT ORDERNO,WAVENO,SEQNO,EDITTIME, ROWNUM AS rowno FROM ( 
+    SELECT * FROM (SELECT ORDERNO,WAVENO,SEQNO,EDITTIME, ROWNUM AS rowno FROM (
     SELECT * FROM DOC_WAVE_DETAILS WHERE EDITTIME >= TO_DATE(?,'yyyy-mm-dd hh24:mi:ss')
  ORDER BY EDITTIME) WHERE ROWNUM <= 1000)wave WHERE wave.rowno >= 0
 sql;
@@ -1409,4 +1409,21 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
         $service->clearCancelledOrderTask();
     }
 
+    public function orderTrackingTest()
+    {
+        // 修改【安桥,锐活】 订单号
+        $orderHeaderService = new OracleDOCOrderHeaderService();
+        $orderTrackingService = new OrderTrackingService();
+        $query = $orderHeaderService->getQuery();
+
+        $orderHeaders = $query->whereIn('Doc_Order_Header.customerid',['ONKYO','RUIHUO'])
+            ->where('Doc_Order_Header.AddTime','>=',Carbon::parse('2021-01-01 00:00:00'))
+            ->get();
+        app(OrderService::class)->syncOrderByWMSOrderHeaders($orderHeaders);
+        app("OrderCommodityService")->syncOrderCommodity($orderHeaders);
+        app('OrderPackageService')->syncOrderPackage($orderHeaders);
+        app("OrderPackageCommoditiesService")->syncOrderPackageCommodities($orderHeaders);
+        $orderTrackingService->updateByWmsOrderHeaders($orderHeaders);
+    }
+
 }

+ 2 - 2
app/Services/OracleDOCOrderHeaderService.php

@@ -29,9 +29,9 @@ Class OracleDOCOrderHeaderService
             ->with(['oracleBASCustomer'=>function($query){
                 $query->selectRaw('BAS_CUSTOMER.CustomerID,BAS_CUSTOMER.Customer_Type,BAS_CUSTOMER.Descr_C,BAS_CUSTOMER.Active_Flag');
             },'oracleDOCOrderDetails'=>function($query){
-                $query->selectRaw('doc_order_details.orderNo,doc_order_details.customerid,doc_order_details.sku,doc_order_details.QtyOrdered,doc_order_details.Location');
+                $query->selectRaw('doc_order_details.orderNo,doc_order_details.customerid,doc_order_details.sku,doc_order_details.QtyOrdered,doc_order_details.Location,doc_order_details.OrderLineNo,doc_order_details.d_edi_03');
             }, 'actAllocationDetails'=>function($query){
-                $query->selectRaw('ACT_Allocation_Details.AllocationDetailsID,ACT_Allocation_Details.OrderNo,ACT_Allocation_Details.Qty_Each,ACT_Allocation_Details.PickToTraceID,ACT_Allocation_Details.CustomerID,ACT_Allocation_Details.Sku,ACT_Allocation_Details.Location');
+                $query->selectRaw('ACT_Allocation_Details.AllocationDetailsID,ACT_Allocation_Details.OrderNo,ACT_Allocation_Details.Qty_Each,ACT_Allocation_Details.PickToTraceID,ACT_Allocation_Details.CustomerID,ACT_Allocation_Details.Sku,ACT_Allocation_Details.Location,ACT_Allocation_Details.SkuLineNo');
             },'oracleBASCode'=>function($query){
                 $query->selectRaw('BAS_Codes.CodeID,BAS_Codes.CodeName_C,BAS_Codes.Code');
             },'orderType'=>function($query){

+ 13 - 6
app/Services/OrderTrackingService.php

@@ -343,7 +343,7 @@ class OrderTrackingService
         $BasSKUs_code_sku_map = $dataService->dataHeader(['customerid','sku'],$BasSKUs);
 
         $update_params = [];
-        $update_params[0] =['id','client','pick_up_at','order_remark','gross_weight','bulk','planning_sent_at'];
+        $update_params[0] =['id','client','pick_up_at','order_remark','gross_weight','bulk','planning_sent_at','web_order_number','order_client_code'];
         foreach ($orderHeaders as $orderHeader) {
             if($orderHeader->sostatus == '90'){continue;}
             $order_package_commodity_list = $order_package_commodity_order_code_map[$orderHeader->orderno] ?? false;
@@ -359,16 +359,23 @@ class OrderTrackingService
                 $owner =  $dataService->getKeyValue(['code'=>$orderHeader->customerid],$owner_code_map);
                 $basSku = $dataService->getKeyValue(['customerid'=>$owner->code,'sku'=>$order_package_commodity->commodity->sku],$BasSKUs_code_sku_map);
                 $gross_weight = round($basSku->grossweight * $order_package_commodity->amount,2) ;
-                $bulk = round($basSku->cube * $order_package_commodity->amount,2) ;
+                $bulk = round($basSku->cube * $order_package_commodity->amount,2);
+
+                $order_client_code = $order->client_code;
+                if($params['client']=='天猫'){
+                    $order_client_code = $this->get_d_edit_03($orderHeader,$order_package_commodity) ;
+                }
                 if($order_tracking->owner_id != $params['owner_id'] ||
                     $order_tracking->client !=$params['client'] ||
                     $order_tracking->order_remark != $params['order_remark'] ||
                     $order_tracking->pick_up_at != $params['pick_up_at'] ||
                     $order_tracking->gross_weight != $gross_weight ||
-                    $order_tracking->bulk != $bulk){
+                    $order_tracking->bulk != $bulk ||
+                    $order_tracking->client != $order_client_code){
                     $update_params[] = [
                         'id' => $order_tracking->id,
                         'client' => $params['client'],
+                        'order_client_code' => $order_client_code,
                         'pick_up_at' => $params['pick_up_at'],
                         'order_remark' => $params['order_remark'],
                         'web_order_number' => $params['web_order_number'],
@@ -445,8 +452,8 @@ class OrderTrackingService
             $client = $items[1][0];
             $order_remark = $items[3][0];
         }
-        if(mb_strpos($client,'天猫')!=false)$client='天猫';
-        if(mb_strpos($client,'京东')!=false)$client='京东';
+        if(mb_stristr($client,'天猫')!=false)$client='天猫';
+        if(mb_stristr($client,'京东')!=false)$client='京东';
         return [
             'owner_id' => $order->owner_id,
             'logistic_id' => $logistic['id'],
@@ -479,7 +486,7 @@ class OrderTrackingService
     {
         if($orderHeaders->count() == 0){return  collect();}
         $orderNos = data_get($orderHeaders,'*.orderno');
-        return OrderPackageCommodities::query()
+        return OrderTracking::query()
             ->with('commodities.package.order')
             ->whereIn('order_package_commodity_id',function($query)use($orderNos){
                 $query->from('order_package_commodities')->select('id')->whereIn('order_package_id',function($query)use($orderNos) {