service = app('OrderPackageService'); $this->orderService = app('OrderService'); $this->orderHeaderService = app('OracleDocOrderHeaderService'); } public function testSyncPackageByOrderHeaders() { /** * createOrDeletePackageByOrderHeader($orderHeaders) */ $orderHeader = OracleDOCOrderHeader::query() ->with('actAllocationDetails') ->where('sostatus',99) ->orderByDesc('AddTime') ->first(); $orderHeaders = OracleDOCOrderHeader::query() ->with('actAllocationDetails') ->where('sostatus',99) ->where('addtime','>=',$orderHeader->addtime) ->orderByDesc('AddTime') ->get(); if ($orderHeaders->count() == 0) { $this->assertNull($orderHeaders); return; } Logistic::query()->firstOrCreate(['code'=>$orderHeader->userdefine1,'name'=>'']); $owner = Owner::query()->firstOrCreate(['code'=>$orderHeader->customerid,'name'=>'']); Shop::query()->firstOrCreate(['name'=>$orderHeader->issuepartyname,'owner_id'=>$owner->id]); app('WarehouseService')->firstOrCreate(["code"=>$orderHeader->warehouseid],["code"=>$orderHeader->warehouseid,"name"=>$orderHeader->warehouseid]); $this->orderService->syncOrderByWMSOrderHeaders($orderHeaders); $this->service->syncPackageByOrderHeaders($orderHeaders); $packages = $this->service->getByWmsOrders($orderHeaders); $order_nos = array_unique(data_get($orderHeaders, '*.actAllocationDetails.*.picktotraceid')); foreach ($order_nos as $order_no) { $this->assertNotEmpty($packages->where('logistic_number', $order_no)); } } }