|
|
@@ -25,6 +25,8 @@ class OrderPackageService
|
|
|
return app(BatchUpdateService::class)->batchUpdate('order_packages',$params);
|
|
|
}
|
|
|
|
|
|
+ /** @var OrderTrackingService $orderTrackingService */
|
|
|
+ public $orderTrackingService;
|
|
|
|
|
|
/**
|
|
|
* @param string $logistic_number
|
|
|
@@ -115,7 +117,7 @@ class OrderPackageService
|
|
|
$orderService = app('OrderService');
|
|
|
if(!$orderHeaders)return;
|
|
|
$orders = $orderService->getByWmsOrders($orderHeaders);
|
|
|
- $this->processCancelOrderPackages($orderHeaders); // 取消订单操作 及 过滤
|
|
|
+ // $this->processCancelOrderPackages($orderHeaders); // 取消订单操作 及 过滤
|
|
|
$packages = $this->getByOrderNos(data_get($orderHeaders,'*.orderno')); // 已有
|
|
|
$this->createOrderPackage($orderHeaders,$orders,$packages); // 创建package
|
|
|
$this->updatePackage($orderHeaders,$packages);
|
|
|
@@ -306,36 +308,34 @@ class OrderPackageService
|
|
|
return $map;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 删除取消的订单
|
|
|
+ * @param $orderHeaders
|
|
|
+ */
|
|
|
public function processCancelOrderPackages(&$orderHeaders)
|
|
|
{
|
|
|
+ $this->instant($this->orderTrackingService,'OrderTrackingService');
|
|
|
+
|
|
|
$cancelOrder = $orderHeaders->filter(function($orderHeader){
|
|
|
return $orderHeader->wms_status == '订单取消';
|
|
|
});
|
|
|
|
|
|
$orderPackages = OrderPackage::query()->whereIn('order_id',function($query)use($cancelOrder){
|
|
|
/** @var Builder $query */
|
|
|
- $query->from((new Order())->getTable())->where('code',data_get($cancelOrder,'*.orderno'));
|
|
|
+ $query->from((new Order())->getTable())->selectRaw('id')->whereIn('code',data_get($cancelOrder,'*.orderno'));
|
|
|
})->get();
|
|
|
|
|
|
if($orderPackages->count() == 0)return ;
|
|
|
|
|
|
- $updateParams = [['id','logistic_number']];
|
|
|
- foreach ($orderPackages as $orderPackage) {
|
|
|
- if(strstr($orderPackage['logistic_number'],'cancel'))continue;
|
|
|
- $updateParams[] = ['id'=>$orderPackage['id'],'logistic_number' => $orderPackage['logistic_number'].'_cancel'];
|
|
|
+ $orderPackage_list = $orderPackages->chunk(200);
|
|
|
+ foreach ($orderPackage_list as $orderPackageSet){
|
|
|
+ OrderPackage::query()->whereIn('id',data_get($orderPackageSet,'*.id'))->delete();
|
|
|
+ $items = OrderTracking::query()->whereIn('order_package_commodity_id',function($query)use($orderPackages){
|
|
|
+ /** @var Builder $query */
|
|
|
+ $query->from((new OrderPackageCommodities)->getTable())->selectRaw('id')->whereIn('order_package_id',data_get($orderPackages,'*.id'));
|
|
|
+ })->get();
|
|
|
+ $this->orderTrackingService->deleteOrderTracings($items);
|
|
|
}
|
|
|
|
|
|
- if(count($updateParams)>0)$this->batchUpdate($updateParams);
|
|
|
-
|
|
|
- $orderHeaders = $orderHeaders->filter(function($orderHeader){
|
|
|
- return $orderHeader->wms_status != '订单取消';
|
|
|
- });
|
|
|
-
|
|
|
- $items = OrderTracking::query()->whereIn('order_package_commodity_id',function($query)use($orderPackages){
|
|
|
- /** @var Builder $query */
|
|
|
- $query->from((new OrderPackageCommodities)->getTable())->selectRaw('id')->whereIn('order_package_id',data_get($orderPackages,'*.id'));
|
|
|
- })->get();
|
|
|
-
|
|
|
- app(OrderTrackingService::class)->deleteOrderTracings($items);
|
|
|
}
|
|
|
}
|