|
|
@@ -25,9 +25,17 @@ class OrderService
|
|
|
return app(BatchUpdateService::class)->batchUpdate('orders',$params);
|
|
|
}
|
|
|
|
|
|
- public function insert($params){
|
|
|
- app('LogService')->log(__METHOD__,__FUNCTION__,'批量创建 Order'.json_encode($params));
|
|
|
- return Order::query()->insert($params);
|
|
|
+ public function insert(array $params){
|
|
|
+ if(!$params)return true;
|
|
|
+ if(count($params)==0) return true;
|
|
|
+ try {
|
|
|
+ $bool= Order::query()->insert($params);
|
|
|
+ app('LogService')->log(__METHOD__, __FUNCTION__, '批量创建 Order' . json_encode($params));
|
|
|
+ return $bool;
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ app('LogService')->log(__METHOD__, __FUNCTION__, '批量创建 Order error' . json_encode($params).json_encode($e->getMessage()).json_encode($e->getTraceAsString()));
|
|
|
+ return false;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private function preciseQuery(array $params,$sql){
|
|
|
@@ -754,15 +762,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 [];
|
|
|
/**
|
|
|
@@ -937,4 +945,80 @@ class OrderService
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public function batchDeleteUnnecessaryOrder(){
|
|
|
+ $start_id = 0;
|
|
|
+ $step = 1000;
|
|
|
+ while(true){
|
|
|
+ $order_map = [];
|
|
|
+
|
|
|
+ $package_del = []; $orderCommodities = []; $bin = []; $batch = []; $order = [];
|
|
|
+ $package_update= []; $orderCommodities_update= []; $bin_update= []; $batch_update= []; $order_update = [];
|
|
|
+ $orders = Order::query()->with('packages.commodities','orderCommodities','bin','batch')->where('id','>',$start_id)->where('id','<',$start_id+$step)->get();
|
|
|
+ $this->getOrderMap($orders,$order_map);
|
|
|
+
|
|
|
+ if(count($order_map) == 0)continue;
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // OrderPackages
|
|
|
+ public function batchDeleteUnnecessaryOrderPackages($order_map)
|
|
|
+ {
|
|
|
+ $packages = collect();
|
|
|
+ $del_packages= collect();
|
|
|
+ $update_packages = collect();
|
|
|
+ foreach ($order_map as $key =>$items) {
|
|
|
+ $orderPackage = null;
|
|
|
+ $items->packages->each(function($packages){
|
|
|
+
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // Batch
|
|
|
+ public function batchDeleteUnnecessaryBatch($order_map,&$batch_order_no_map)
|
|
|
+ {
|
|
|
+ foreach ($order_map as $items) {
|
|
|
+ collect($items)->each(function($order)use(&$batch_order_no_map){
|
|
|
+ $bin = $order->batch;
|
|
|
+ if($bin ?? false){
|
|
|
+ $batch_order_no_map[$order->code][] = $bin;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // OrderCommodities
|
|
|
+ public function batchDeleteUnnecessaryOrderCommodities($order_map,&$orderCommodities_map)
|
|
|
+ {
|
|
|
+ foreach ($order_map as $items) {
|
|
|
+ collect($items)->each(function($order)use(&$orderCommodities_map){
|
|
|
+ $orderCommodities = $order->orderCommodities;
|
|
|
+ if($bin ?? false){
|
|
|
+ $orderCommodities_map[$order->code][] = $orderCommodities;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // Bin
|
|
|
+ public function batchDeleteUnnecessaryBin($order_map,&$bin_order_no_map)
|
|
|
+ {
|
|
|
+ foreach ($order_map as $items) {
|
|
|
+ collect($items)->each(function($order)use(&$bin_order_no_map){
|
|
|
+ $bin = $order->bin;
|
|
|
+ if($bin ?? false){
|
|
|
+ $bin_order_no_map[$order->code][] = $bin;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public function getOrderMap($orders,&$orderMap)
|
|
|
+ {
|
|
|
+ $orders->each(function($items,$key)use(&$orderMap){
|
|
|
+ // $items $order集合
|
|
|
+ if($items->count()>1){
|
|
|
+ $order_map[$key] = $items; // 保留超过2个orders
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
}
|