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

订单同步 方法名称 测试用例 修改

ajun 5 лет назад
Родитель
Сommit
31e710e1f6

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

@@ -835,7 +835,26 @@ where (commodities.owner_id,commodity_barcodes.code) in (select commodities.owne
 
     public function chageOrder()
     {
-
+        $carbon =Carbon::now()->subMinutes(30);
+        $orderHeader = OracleDOCOrderHeader::query()->selectRaw(implode(',',OracleDOCOrderHeaderService::$columns))
+            ->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');
+            }, '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');
+            },'oracleBASCode'=>function($query){
+                $query->selectRaw('BAS_Codes.CodeID,BAS_Codes.CodeName_C,BAS_Codes.Code');
+            }])
+            ->where('DOC_Order_Header.addTime','>=',$carbon)
+//            ->where('orderno','SO201112029795')
+            ->get();
+        var_dump($orderHeader->count());
+        var_dump((string)Carbon::now());
+        /** @var OrderService $orderService */
+        $orderService = app('OrderService');
+        $orderService->syncOrder($orderHeader);
+        var_dump((string)Carbon::now());
     }
 
 }

+ 1 - 1
app/Services/OrderPackageCommoditiesService.php

@@ -599,7 +599,7 @@ class OrderPackageCommoditiesService
         app('LogService')->log(__METHOD__,__FUNCTION__,'删除 OrderPackageCommodities'.json_encode($ids));
     }
     // TODO
-    public function createOrderCommodity(&$orderHeaders)
+    public function syncOrderPackageCommodities(&$orderHeaders)
     {
         /**
          * @var DataHandlerService $dataHandService

+ 12 - 8
app/Services/OrderPackageService.php

@@ -384,22 +384,22 @@ class OrderPackageService
     }
 
     // TODO
-    public function createPackageInfo(&$orderHeaders)
+    public function syncOrderPackage(&$orderHeaders)
     {
         /**
          * @var OrderPackageCommoditiesService $OrderPackageCommoditiesService
          */
         $OrderPackageCommoditiesService = app('OrderPackageCommoditiesService');
         var_dump('createPackageInfo--start'.(string)Carbon::now());
-        $this->createPackageByOrderHeader($orderHeaders);
+        $this->syncPackageByOrderHeaders($orderHeaders);
         var_dump('createPackageInfo--start'.(string)Carbon::now());
 
         var_dump('createOrderCommodity--start'.(string)Carbon::now());
-        $OrderPackageCommoditiesService->createOrderCommodity($orderHeaders);
+        $OrderPackageCommoditiesService->syncOrderPackageCommodities($orderHeaders);
         var_dump('createOrderCommodity--start'.(string)Carbon::now());
     }
     // TODO
-    public function createPackageByOrderHeader(&$orderHeaders)
+    public function syncPackageByOrderHeaders(&$orderHeaders)
     {
         /**
          * @var OrderService $orderService
@@ -414,8 +414,8 @@ class OrderPackageService
         $packages = $this->getByOrderNos(data_get($orderHeaders,'*.orderno'));          // 已有
         $this->createOrderPackage($orderHeaders,$orders,$packages);                     // 创建package
 
-        $package_created = $this->getByOrderNos(data_get($orderHeaders,'*.orderno'));   //
-        $del_ids = $this->deleteUnnecessaryPackage($orderHeaders,$package_created);     // 删除package
+//        $package_created = $this->getByOrderNos(data_get($orderHeaders,'*.orderno'));   //
+        $del_ids = $this->deleteUnnecessaryPackage($orderHeaders,$packages);     // 删除package
         $orderPackageCommodityService->deleteUnnecessaryOrderCommodities($del_ids);     // 删除 orderCommodity
 
         $orderTracking = OrderTracking::query()->whereHas('commodities.package',function($query)use($del_ids){
@@ -443,8 +443,12 @@ class OrderPackageService
         }
 
         if(count($inner_params)>0){
-            $this->insert($inner_params);
-            LogService::log(__METHOD__,__FUNCTION__,'批量添加 OrderPackage '.count($inner_params).' || '.json_encode($inner_params));
+            try {
+                $bool = $this->insert($inner_params);
+                $bool ? LogService::log(__METHOD__, __FUNCTION__, '批量添加 OrderPackage ' . count($inner_params) . ' || ' . json_encode($inner_params)) : null;
+            } catch (\Exception $e) {
+                LogService::log(__METHOD__, __FUNCTION__, '批量添加 OrderPackage error ' . count($inner_params) . ' || ' .json_encode($e->getMessage()). json_encode($inner_params).json_encode($e->getTraceAsString()));
+            }
         }
     }
     // TODO

+ 4 - 4
app/Services/OrderService.php

@@ -754,15 +754,15 @@ class OrderService
     }
 
     // TODO
-    public function createOrderInfo(&$orderHeaders)
+    public function syncOrder(&$orderHeaders)
     {
         /** @var OrderPackageService $packageService */
         $packageService = app("OrderPackageService");
-        $this->createOrderByWMSOrderHeaders($orderHeaders);
-        $packageService->createPackageInfo($orderHeaders);
+        $this->syncOrderByWMSOrderHeaders($orderHeaders);
+        $packageService->syncOrderPackage($orderHeaders);
     }
     // TODO
-    public function createOrderByWMSOrderHeaders(&$orderHeaders)
+    public function syncOrderByWMSOrderHeaders(&$orderHeaders)
     {
         if($orderHeaders->isEmpty())return [];
         /**

+ 33 - 0
tests/Services/OrderPackageCommoditiesService/SyncOrderPackageCommoditiesTest/SyncOrderPackageCommoditiesTest.php

@@ -0,0 +1,33 @@
+<?php
+
+namespace Tests\Services\OrderPackageService\SyncOrderPackageCommoditiesTest;
+
+use App\Services\OracleDOCOrderHeaderService;
+use App\Services\OrderPackageCommoditiesService;
+use Illuminate\Foundation\Testing\RefreshDatabase;
+use Illuminate\Foundation\Testing\WithFaker;
+use Tests\TestCase;
+
+class SyncOrderPackageCommoditiesTest extends TestCase
+{
+    /**
+     * @var OrderPackageCommoditiesService $service
+     * @var OracleDOCOrderHeaderService $orderHeaderService
+     */
+    public $service;
+    public $orderHeaderService;
+
+    public function setUp(): void
+    {
+        parent::setUp();
+        $this->service = app('OrderPackageCommoditiesService');
+        $this->orderHeaderService = app('OracleDocOrderHeaderService');
+    }
+
+    public function testExample()
+    {
+        $response = $this->get('/');
+
+        $response->assertStatus(200);
+    }
+}

+ 0 - 46
tests/Services/OrderPackageService/CreatePackageInfoTest/CreatePackageInfoTest.php

@@ -1,46 +0,0 @@
-<?php
-
-namespace Tests\Services\OrderPackageService\CreatePackageInfoTest;
-
-use App\Services\OracleDOCOrderHeaderService;
-use App\Services\OrderPackageService;
-use App\Services\OrderService;
-use Carbon\Carbon;
-use Illuminate\Foundation\Testing\RefreshDatabase;
-use Illuminate\Foundation\Testing\WithFaker;
-use Tests\TestCase;
-
-class CreatePackageInfoTest extends TestCase
-{
-    /**
-     * @var OrderPackageService $service
-     * @var OracleDOCOrderHeaderService $orderHeaderService
-     * @var OrderService $orderService
-     */
-    public $service;
-    public $orderService;
-    public $orderHeaderService;
-
-    public function setUp(): void
-    {
-        parent::setUp();
-        $this->service = app('OrderPackageService');
-        $this->orderService = app('OrderService');
-        $this->orderHeaderService = app('OracleDOCOrderHeaderService');
-    }
-
-    public function testCreatePackageInfo()
-    {
-        /**
-         * createPackageByOrderHeader($orderHeaders)
-         */
-
-        $carbon =Carbon::now()->subHours(10);
-        $date = '2020-09-18 18:13:50';
-        $orderHeaders = $this->orderHeaderService->getWMSOrderOnStartDate($carbon);
-        if ($orderHeaders->count() == 0) {
-            var_dump('查询数据为空');
-        }
-        $this->service->createPackageInfo($orderHeaders);
-    }
-}

+ 6 - 10
tests/Services/OrderPackageService/CreateOrderPackageTest/CreateOrderPackageTest.php → tests/Services/OrderPackageService/SyncOrderPackageTest/SyncOrderPackageTest.php

@@ -1,8 +1,7 @@
 <?php
 
-namespace Tests\Services\OrderPackageService\CreateOrderPackageTest;
+namespace Tests\Services\OrderPackageService\SyncOrderPackageTest;
 
-use App\OracleDOCOrderHeader;
 use App\Services\OracleDOCOrderHeaderService;
 use App\Services\OrderPackageService;
 use App\Services\OrderService;
@@ -11,7 +10,7 @@ use Illuminate\Foundation\Testing\RefreshDatabase;
 use Illuminate\Foundation\Testing\WithFaker;
 use Tests\TestCase;
 
-class CreateOrderPackageTest extends TestCase
+class SyncOrderPackageTest extends TestCase
 {
     /**
      * @var OrderPackageService $service
@@ -29,12 +28,11 @@ class CreateOrderPackageTest extends TestCase
         $this->orderService = app('OrderService');
         $this->orderHeaderService = app('OracleDOCOrderHeaderService');
     }
-
-    public function testCreateOrderPackage()
+    public function testSyncOrderPackage()
     {
         /*
-         * createOrderPackage($orderHeaders,$orders,$packages)
-         * */
+       * createOrderPackage($orderHeaders,$orders,$packages)
+       * */
 
         $carbon =Carbon::now()->subHours(10);
         $date = '2020-09-18 18:13:50';
@@ -45,7 +43,7 @@ class CreateOrderPackageTest extends TestCase
         }
         $orders = $this->orderService->getByWmsOrders($orderHeaders);
         $packages = $this->service->getByWmsOrders($orderHeaders);
-        $this->service->createOrderPackage($orderHeaders,$orders,$packages);
+        $this->service->syncOrderPackage($orderHeaders,$orders,$packages);
         $exits_packages  = $this->service->getByWmsOrders($orderHeaders);
         $exits_count = $exits_packages->count();
         $logistic_numbers = data_get($orderHeaders,'*.actAllocationDetails.*.picktotraceid');
@@ -57,6 +55,4 @@ class CreateOrderPackageTest extends TestCase
             $this->assertEquals($exits_package->count(),1);
         }
     }
-
-
 }

+ 9 - 8
tests/Services/OrderPackageService/CreatePackageByOrderHeaderTest/CreatePackageByOrderHeaderTest.php → tests/Services/OrderPackageService/SyncPackageByOrderHeadersTest/SyncPackageByOrderHeadersTest.php

@@ -1,6 +1,6 @@
 <?php
 
-namespace Tests\Services\OrderPackageService\CreatePackageByOrderHeaderTest;
+namespace Tests\Services\OrderPackageService\SyncPackageByOrderHeadersTest;
 
 use App\Services\OracleDOCOrderHeaderService;
 use App\Services\OrderPackageService;
@@ -10,7 +10,7 @@ use Illuminate\Foundation\Testing\RefreshDatabase;
 use Illuminate\Foundation\Testing\WithFaker;
 use Tests\TestCase;
 
-class CreatePackageByOrderHeaderTest extends TestCase
+class SyncPackageByOrderHeadersTest extends TestCase
 {
     /**
      * @var OrderPackageService $service
@@ -28,23 +28,24 @@ class CreatePackageByOrderHeaderTest extends TestCase
         $this->orderService = app('OrderService');
         $this->orderHeaderService = app('OracleDOCOrderHeaderService');
     }
-    public function testCreatePackageByOrderHeader()
+    public function testSyncPackageByOrderHeaders()
     {
         /**
-         * createPackageByOrderHeader($orderHeaders)
+         * createOrDeletePackageByOrderHeader($orderHeaders)
          */
-        $carbon =Carbon::now()->subHours(10);
+        $carbon = Carbon::now()->subHours(10);
         $date = '2020-09-18 18:13:50';
         $orderHeaders = $this->orderHeaderService->getWMSOrderOnStartDate($carbon);
         if ($orderHeaders->count() == 0) {
             var_dump('查询数据为空');
             return;
         }
-        $this->service->createPackageByOrderHeader($orderHeaders);
+        $this->service->syncPackageByOrderHeaders($orderHeaders);
         $packages = $this->service->getByWmsOrders($orderHeaders);
-        $order_nos =  array_unique(data_get($orderHeaders,'*.actAllocationDetails.*.picktotraceid'));
+        $order_nos = array_unique(data_get($orderHeaders, '*.actAllocationDetails.*.picktotraceid'));
         foreach ($order_nos as $order_no) {
-            $this->assertNotEmpty($packages->where('logistic_number',$order_no));
+            $this->assertNotEmpty($packages->where('logistic_number', $order_no));
+
         }
     }
 }

+ 5 - 35
tests/Services/OrderService/CreateOrderByWMSOrderHeadersTest/CreateOrderByWMSOrderHeadersTest.php → tests/Services/OrderService/SyncOrderByWMSOrderHeaderTest/SyncOrderByWMSOrderHeaderTest.php

@@ -1,9 +1,8 @@
 <?php
 
-namespace Tests\Services\OrderService\CreateOrderByWMSOrderHeadersTest;
+namespace Tests\Services\OrderService\SyncOrderByWMSOrderHeaderTest;
 
 use App\Logistic;
-use App\Order;
 use App\Owner;
 use App\Services\common\DataHandlerService;
 use App\Services\LogisticService;
@@ -19,7 +18,7 @@ use Illuminate\Foundation\Testing\RefreshDatabase;
 use Illuminate\Foundation\Testing\WithFaker;
 use Tests\TestCase;
 
-class CreateOrderByWMSOrderHeadersTest extends TestCase
+class SyncOrderByWMSOrderHeaderTest extends TestCase
 {
     /**
      * @var OrderService $service
@@ -43,24 +42,15 @@ class CreateOrderByWMSOrderHeadersTest extends TestCase
         $this->service=app(OrderService::class);
         $this->orderHeaderService=app(OracleDOCOrderHeaderService::class);
     }
-
-    public function testCreateOrderByWMSOrderHeaders()
+    public function testCreateOrUpdateOrderByWMSOrderHeaders()
     {
         $carbon =Carbon::now()->subHours(10);
         $date = '2020-09-18 18:13:50';
         $orderHeaders = $this->orderHeaderService->getWMSOrderOnStartDate($carbon);
-        $orders = $this->service->createOrderByWMSOrderHeaders($orderHeaders);
+        $this->service->syncOrderByWMSOrderHeaders($orderHeaders);
         $existOrders = $this->service->getByWmsOrders($orderHeaders);
         $collect =null;
-        if($existOrders->count()!==$orders->count()){
-            $collect = $existOrders->map(function($order)use($orders){
-                $_order = $orders->where($order->code)->first();
-                return $_order ?? $order;
-            });
-            $this->assertEquals($collect->count(),$orderHeaders->count());
-        }else{
-            $this->assertEquals($orderHeaders->counts(),$orders->count());
-        }
+
         foreach ($orderHeaders as $orderHeader) {
             $code = $orderHeader->orderno;
             $order = $collect->where('code',$code)->first();
@@ -95,24 +85,4 @@ class CreateOrderByWMSOrderHeadersTest extends TestCase
             $this->assertEquals((string)$order->created_at ,(string)$orderHeader->addtime);
         }
     }
-
-    /*
-            'code'                      => $orderHeader->orderno,
-            'warehouse_id'              => $warehouse->id ?? null,
-            'owner_id'                  => $owner->id ?? null,
-            'shop_id'                   => $shop->id ?? null,
-            'logistic_id'               => $logistic->id ?? null,
-            'consignee_name'            => $orderHeader->c_contact,
-            'consignee_phone'           => empty($orderHeader->c_tel2)?$orderHeader->c_tel1:$orderHeader->c_tel2,
-            'province'                  => $orderHeader->c_province,
-            'city'                      => $orderHeader->c_city,
-            'district'                  => $orderHeader->c_district,
-            'address'                   => $orderHeader->c_address1,
-            'client_code'               => $orderHeader->soreference1,
-            'wms_edittime'              => $orderHeader->edittime,
-            'wms_status'                => $orderHeader->oracleBASCode_codename_c ?? '',
-            'updated_at'                => (string)$date,
-            'created_at'                => $orderHeader->addtime,
-        ]);*/
-
 }

+ 25 - 7
tests/Services/OrderService/CreateOrderInfoTest/CreateOrderInfoTest.php → tests/Services/OrderService/SyncOrderTest/SyncOrderTest.php

@@ -1,30 +1,48 @@
 <?php
 
-namespace Tests\Services\OrderService\CreateOrderInfoTest;
+namespace Tests\Services\OrderService\SyncOrderTest;
 
+use App\Logistic;
+use App\Owner;
+use App\Services\common\DataHandlerService;
+use App\Services\LogisticService;
 use App\Services\OracleDOCOrderHeaderService;
 use App\Services\OrderService;
+use App\Services\OwnerService;
+use App\Services\ShopService;
+use App\Services\WarehouseService;
+use App\Shop;
+use App\Warehouse;
 use Carbon\Carbon;
 use Illuminate\Foundation\Testing\RefreshDatabase;
 use Illuminate\Foundation\Testing\WithFaker;
 use Tests\TestCase;
 
-class CreateOrderInfoTest extends TestCase
+class SyncOrderTest extends TestCase
 {
     /**
      * @var OrderService $service
      * @var OracleDOCOrderHeaderService $orderHeaderService
+     * @var DataHandlerService $dataHandlerService
+     * @var OwnerService $ownerService
+     * @var LogisticService $logisticService
+     * @var ShopService $shopService
+     * @var WarehouseService $warehouseService
      */
     public $service;
     public $orderHeaderService;
+    public $dataHandlerService;
+    public $ownerService;
+    public $logisticService;
+    public $shopService;
+    public $warehouseService;
     public function setUp(): void
     {
         parent::setUp();
-        $this->service=app('OrderService');
-        $this->orderHeaderService=app('OracleDocOrderHeaderService');
+        $this->service=app(OrderService::class);
+        $this->orderHeaderService=app(OracleDOCOrderHeaderService::class);
     }
-
-    public function testCreateOrderInfo()
+    public function testCreateOrUpdateOrderInfo()
     {
         $carbon =Carbon::now()->subHours(1);
         $date = '2020-05-18 18:13:50';
@@ -34,7 +52,7 @@ class CreateOrderInfoTest extends TestCase
         var_dump($orderHeader->count());
         var_dump((string)Carbon::now());
 
-        $this->service->createOrderInfo($orderHeader);
+        $this->service->syncOrder($orderHeader);
         var_dump((string)Carbon::now());
 
         $order = $this->service->getByWmsOrders($orderHeader);