|
|
@@ -1476,30 +1476,37 @@ TEXT;
|
|
|
|
|
|
public function orderPackageUnique()
|
|
|
{
|
|
|
- // select logistic_number,count(1) counts from order_packages where id >= 1590001 GROUP BY logistic_number HAVING counts > 1;
|
|
|
- $orderPackages = OrderPackage::query()->selectRaw('count(1) counts,logistic_number')->where('id','>=','1590000')->groupBy('logistic_number')->having('counts','>','1')->get();
|
|
|
- dd($orderPackages);
|
|
|
+ $logistic_numbers = [
|
|
|
+ '73228304758416','73228442802297','75432924540039','75432988921246','EA470967879CN','EA470967896CN','SF1801569733319','SF1889450021688','YT3153735030684'
|
|
|
+ ];
|
|
|
+
|
|
|
+ $orderPackages = OrderPackage::query()->selectRaw('count(1) counts,logistic_number')->whereIn('logistic_number',$logistic_numbers)->groupBy('logistic_number')->having('counts','>','1')->get();
|
|
|
foreach ($orderPackages as $orderPackage) {
|
|
|
- $items = OrderPackage::query()->where('logistic_number',$orderPackage['logistic_number'])->get();
|
|
|
- $orderPackage = $items->first();
|
|
|
+ $items = OrderPackage::query()->where('logistic_number',$orderPackage['logistic_number'])->with('order')->get();
|
|
|
+ if($order = Order::query()->whereIn('id',data_get($items,'*.id'))->where('wms_status','!=','订单取消')->first()){
|
|
|
+ $saveOrderPackage = OrderPackage::query()->where('order_id',$order['id'])->where('logistic_number',$orderPackage['logistic_number'])->first();
|
|
|
+ }else{
|
|
|
+ $saveOrderPackage = $items->first();
|
|
|
+ }
|
|
|
+
|
|
|
foreach ($items as $item) {
|
|
|
- $orderPackage['batch_number'] = $item['batch_number'] ?? $orderPackage['batch_number'];
|
|
|
- $orderPackage['batch_rule'] = $item['batch_rule'] ?? $orderPackage['batch_rule'];
|
|
|
- $orderPackage['bulk'] = $item['bulk'] ?? $orderPackage['bulk'];
|
|
|
- $orderPackage['weight'] = $item['weight'] ?? $orderPackage['weight'];
|
|
|
- $orderPackage['length'] = $item['length'] ?? $orderPackage['length'];
|
|
|
- $orderPackage['width'] = $item['width'] ?? $orderPackage['width'];
|
|
|
- $orderPackage['height'] = $item['height'] ?? $orderPackage['height'];
|
|
|
- $orderPackage['measuring_machine_id'] = $item['measuring_machine_id'] ?? $orderPackage['measuring_machine_id'];
|
|
|
- $orderPackage['weighed_at'] = $item['weighed_at'] ?? $orderPackage['weighed_at'];
|
|
|
- $orderPackage['owner_id'] = $item['owner_id'] ?? $orderPackage['owner_id'];
|
|
|
- $orderPackage['received_at'] = $item['received_at'] ?? $orderPackage['received_at'];
|
|
|
- $orderPackage['transfer_status'] = $item['transfer_status'] ?? $orderPackage['transfer_status'];
|
|
|
- $orderPackage['status'] = $item['status'] != '无' ? $item['status'] : $orderPackage['transfer_status'];
|
|
|
- $orderPackage['uploaded_to_wms'] = $item['uploaded_to_wms'] != '否' ? $item['uploaded_to_wms'] : $orderPackage['transfer_status'];
|
|
|
+ $saveOrderPackage['batch_number'] = $item['batch_number'] ?? $saveOrderPackage['batch_number'];
|
|
|
+ $saveOrderPackage['batch_rule'] = $item['batch_rule'] ?? $saveOrderPackage['batch_rule'];
|
|
|
+ $saveOrderPackage['bulk'] = $item['bulk'] ?? $saveOrderPackage['bulk'];
|
|
|
+ $saveOrderPackage['weight'] = $item['weight'] ?? $saveOrderPackage['weight'];
|
|
|
+ $saveOrderPackage['weighed_at'] = $item['weighed_at'] ?? $saveOrderPackage['weighed_at'];
|
|
|
+ $saveOrderPackage['length'] = $item['length'] ?? $saveOrderPackage['length'];
|
|
|
+ $saveOrderPackage['width'] = $item['width'] ?? $saveOrderPackage['width'];
|
|
|
+ $saveOrderPackage['height'] = $item['height'] ?? $saveOrderPackage['height'];
|
|
|
+ $saveOrderPackage['measuring_machine_id'] = $item['measuring_machine_id'] ?? $saveOrderPackage['measuring_machine_id'];
|
|
|
+ $saveOrderPackage['owner_id'] = $item['owner_id'] ?? $saveOrderPackage['owner_id'];
|
|
|
+ $saveOrderPackage['received_at'] = $item['received_at'] ?? $saveOrderPackage['received_at'];
|
|
|
+ $saveOrderPackage['transfer_status'] = $item['transfer_status'] ?? $saveOrderPackage['transfer_status'];
|
|
|
+ $saveOrderPackage['status'] = $item['status'] != '无' ? $item['status'] : $saveOrderPackage['transfer_status'];
|
|
|
+ $saveOrderPackage['uploaded_to_wms'] = $item['uploaded_to_wms'] != '否' ? $item['uploaded_to_wms'] : $saveOrderPackage['uploaded_to_wms'];
|
|
|
}
|
|
|
- $orderPackages_filter = $items->filter(function($item)use($orderPackage){
|
|
|
- if($orderPackage['id'] === $item['id'])return false;
|
|
|
+ $orderPackages_filter = $items->filter(function($item)use($saveOrderPackage){
|
|
|
+ if($saveOrderPackage['id'] === $item['id'])return false;
|
|
|
return true;
|
|
|
});
|
|
|
$ids = $orderPackages_filter->map(function($item){
|
|
|
@@ -1507,7 +1514,24 @@ TEXT;
|
|
|
});
|
|
|
LogService::log('order_packages','order_packages_logistic_number_unique_delete',json_encode($orderPackages_filter));
|
|
|
OrderPackage::query()->whereIn('id',$ids)->delete();
|
|
|
- $orderPackage->save();
|
|
|
+ $saveOrderPackage->save();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public function syncOrderPackages()
|
|
|
+ {
|
|
|
+ /** @var OracleDOCOrderHeaderService $docOrderHeaderService */
|
|
|
+ $docOrderHeaderService = app(OracleDOCOrderHeaderService::class);
|
|
|
+ /** @var OrderService $orderService */
|
|
|
+ $orderService = app(OrderService::class);
|
|
|
+ $orderPackages = OrderPackage::query()->whereNotNull('weight')->whereIn('order_id',function($query){
|
|
|
+ /** @var Builder $query */
|
|
|
+ $query->from((new Order())->getTable())->selectRaw('id')->where('wms_status','订单取消');
|
|
|
+ })->get();
|
|
|
+ foreach ($orderPackages as $orderPackage) {
|
|
|
+ $actAllocationDetails = OracleActAllocationDetails::query()->selectRaw('orderno')->where('PickToTraceID',$orderPackage['logistic_number'])->get();
|
|
|
+ $docOrderHeaders = $docOrderHeaderService->getQuery()->whereIn('DOC_Order_Header.OrderNo',data_get($actAllocationDetails,data_get($actAllocationDetails,'*.orderno')));
|
|
|
+ $orderService->syncOrder($docOrderHeaders);
|
|
|
}
|
|
|
}
|
|
|
|