|
|
@@ -47,13 +47,14 @@ class OrderPackageCommoditiesService
|
|
|
|
|
|
public function getByWmsOrder($orderHeaders){
|
|
|
$order_no = data_get($orderHeaders,'*.orderno');
|
|
|
- return OrderPackageCommodities::query()
|
|
|
- ->with('package.order','commodity')
|
|
|
- ->whereIn('order_package_id',function($query) use ($order_no){
|
|
|
- $query->from('order_packages')->select('id')->whereIn('order_id',function($query)use($order_no){
|
|
|
- $query->from('orders')->select('id')->whereIn('code',$order_no);
|
|
|
- });
|
|
|
- })->get();
|
|
|
+ return $this->getByOrderNos($order_no);
|
|
|
+// return OrderPackageCommodities::query()
|
|
|
+// ->with('package.order','commodity')
|
|
|
+// ->whereIn('order_package_id',function($query) use ($order_no){
|
|
|
+// $query->from('order_packages')->select('id')->whereIn('order_id',function($query)use($order_no){
|
|
|
+// $query->from('orders')->select('id')->whereIn('code',$order_no);
|
|
|
+// });
|
|
|
+// })->get();
|
|
|
}
|
|
|
|
|
|
public function batchUpdateItself($column, array $params)
|
|
|
@@ -63,10 +64,41 @@ class OrderPackageCommoditiesService
|
|
|
|
|
|
public function getByOrderNos($orderNos)
|
|
|
{
|
|
|
- $orderQuery = Order::query()->select('id')->whereIn('code',$orderNos);
|
|
|
- $orderPackageIds = OrderPackage::query()->select('id')->whereIn('order_id',$orderQuery)->get()->toArray();
|
|
|
- return OrderPackageCommodities::query()->with('package.order','commodity')
|
|
|
- ->whereIn('order_package_id',$orderPackageIds)->get();
|
|
|
+ $orderIds = [];
|
|
|
+ $order_chunks = array_chunk($orderNos,100);
|
|
|
+ foreach ($order_chunks as $order_chunk) {
|
|
|
+ $ids = Order::query()->select('id')->whereIn('code',$order_chunk)->get()->map(function ($order){
|
|
|
+ return $order->id;
|
|
|
+ })->toArray();
|
|
|
+ $orderIds = array_merge($orderIds,$ids);
|
|
|
+ }
|
|
|
+ $orderPackageIds = null;
|
|
|
+ $orderId_chunks = array_chunk($orderIds,150);
|
|
|
+ foreach ($orderId_chunks as $orderId_chunk){
|
|
|
+ $items= OrderPackage::query()->select('id')->whereIn('order_id',$orderId_chunk)->get()->map(function ($orderPackage){
|
|
|
+ return $orderPackage->id;
|
|
|
+ })->toArray();
|
|
|
+ if ($orderPackageIds == null){
|
|
|
+ $orderPackageIds =$items;
|
|
|
+ }else{
|
|
|
+ $orderPackageIds = array_merge($orderPackageIds,$items);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ $order_package_commodities = null;
|
|
|
+ $orderPackageId_chunks = array_chunk($orderPackageIds,150);
|
|
|
+ foreach ($orderPackageId_chunks as $orderPackageId_chunk){
|
|
|
+ $items = OrderPackageCommodities::query()->with('package.order','commodity')->whereIn('order_package_id',$orderPackageId_chunk)->get();
|
|
|
+ if ($order_package_commodities == null){
|
|
|
+ $order_package_commodities= $items;
|
|
|
+ }else{
|
|
|
+ $order_package_commodities = $order_package_commodities->concat($items);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return $order_package_commodities;
|
|
|
+// $orderQuery = Order::query()->select('id')->whereIn('code',$orderNos);
|
|
|
+// $orderPackageIds = OrderPackage::query()->select('id')->whereIn('order_id',$orderQuery)->get()->toArray();
|
|
|
+// return OrderPackageCommodities::query()->with('package.order','commodity')
|
|
|
+// ->whereIn('order_package_id',$orderPackageIds)->get();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -462,6 +494,7 @@ class OrderPackageCommoditiesService
|
|
|
$inner_params = $this->filterInnerParams($orderAllocationDetails,$orderCommodities); // 创建
|
|
|
|
|
|
$delete_params = $this->filterDeleteParams($orderAllocationDetails,$orderCommodities); // 删除
|
|
|
+
|
|
|
unset($orderAllocationDetails,$orderCommodities);
|
|
|
if(count($inner_params)>0)
|
|
|
$this->createOrderCommodities($inner_params,$package_map,$commodities,$owner_id_map); // 创建 3s
|
|
|
@@ -480,6 +513,7 @@ class OrderPackageCommoditiesService
|
|
|
public function regroupOrderCommodities(&$orderCommodities):array
|
|
|
{
|
|
|
$params = [];
|
|
|
+ if ($orderCommodities == null || count($orderCommodities) == 0) return $params;
|
|
|
$orderCommodities->each(function($orderCommodity)use(&$params){
|
|
|
$order_no = $orderCommodity->package->order->code ?? '';
|
|
|
$logistic_number = $orderCommodity->package->logistic_number ?? '';
|
|
|
@@ -624,7 +658,7 @@ class OrderPackageCommoditiesService
|
|
|
];
|
|
|
}
|
|
|
if(count($create_params)>0){
|
|
|
- $inner_array = array_chunk($create_params,5000);
|
|
|
+ $inner_array = array_chunk($create_params,1000);
|
|
|
foreach ($inner_array as $item) {
|
|
|
try {
|
|
|
$bool = $this->insert($item);
|