|
|
@@ -3,7 +3,6 @@
|
|
|
namespace App\Services;
|
|
|
|
|
|
use App\Exports\Export;
|
|
|
-use App\LogisticTiming;
|
|
|
use App\OracleDOCOrderHeader;
|
|
|
use App\Order;
|
|
|
use App\OrderPackageCommodities;
|
|
|
@@ -38,7 +37,8 @@ class OrderTrackingService
|
|
|
$query->with(['commodity', 'package.order.logistic']);
|
|
|
},])->whereHas('owner', function ($query) use ($owner_ids) {
|
|
|
$query->whereIn('id', $owner_ids); //货主
|
|
|
- })->orderByDesc('created_at');
|
|
|
+ })->orderByDesc('order_trackings.created_at')
|
|
|
+ ->orderBy('order_trackings.order_client_code');
|
|
|
|
|
|
$queryParam = [
|
|
|
'start_at' => ['alias' => 'pick_up_at', 'startDate' => ' 00:00:00'],
|
|
|
@@ -94,9 +94,8 @@ class OrderTrackingService
|
|
|
|
|
|
if ($params['ids'] ?? false) {
|
|
|
$ids = explode(',', $params['ids']);
|
|
|
- $query->whereIn('id', $ids);
|
|
|
+ $query->whereIn('order_trackings.id', $ids);
|
|
|
}
|
|
|
-
|
|
|
return $query;
|
|
|
}
|
|
|
|
|
|
@@ -105,59 +104,29 @@ class OrderTrackingService
|
|
|
return $this->getConditionQuery($params)->paginate($params['paginate'] ?? 50);
|
|
|
}
|
|
|
|
|
|
- public function export($params)
|
|
|
+ public function getSql($params)
|
|
|
{
|
|
|
- if ($params['data'] ?? false) { // 按id
|
|
|
- $trackOrders = $this->getConditionQuery($params);
|
|
|
- } else {
|
|
|
- $trackOrders = $this->getConditionQuery($params);
|
|
|
+ if($params['data'] ?? false){
|
|
|
+ $params['ids'] = $params['data'];
|
|
|
}
|
|
|
- return $this->downLoadAsExec($trackOrders->get());
|
|
|
+ $order_tracking_colnums = "case order_trackings.order_client_code when order_trackings.web_order_number then '' when order_trackings.order_client_code then order_trackings.order_client_code end order_client_code,";
|
|
|
+ $order_tracking_colnums .= 'order_trackings.web_order_number,order_trackings.pick_up_at,order_trackings.sale,order_trackings.client,order_trackings.order_remark,order_trackings.gross_weight,order_trackings.bulk,';
|
|
|
+ $order_tracking_colnums .= 'order_trackings.pallet_total,order_trackings.planning_sent_at,order_trackings.is_on_duty_shift,order_trackings.is_arrival,order_trackings.signed_at,order_trackings.receive_bill_status,order_trackings.remark';
|
|
|
+ return $this->getConditionQuery($params)->selectRaw($order_tracking_colnums)
|
|
|
+ ->leftJoin('order_package_commodities','order_trackings.order_package_commodity_id','order_package_commodities.id')
|
|
|
+ ->selectRaw('order_package_commodities.amount amount')
|
|
|
+ ->leftJoin('order_packages','order_package_commodities.order_package_id','order_packages.id')
|
|
|
+ ->selectRaw('order_packages.logistic_number logistic_number')
|
|
|
+ ->leftJoin('orders','order_packages.order_id','orders.id')
|
|
|
+ ->selectRaw('orders.city city')
|
|
|
+ ->leftJoin('logistics','orders.logistic_id','logistics.id')
|
|
|
+ ->selectRaw("case logistics.code when 'ZT' then '新杰物流' else logistics.name end logistic_name")
|
|
|
+ ->leftJoin('commodities','order_package_commodities.commodity_id','commodities.id')
|
|
|
+ ->selectRaw('commodities.sku sku,commodities.name sku_name')
|
|
|
+ ->leftJoin('owners','orders.owner_id','owners.id')
|
|
|
+ ->selectRaw('owners.name owners_name')
|
|
|
+ ->sql();
|
|
|
}
|
|
|
-
|
|
|
- private function downLoadAsExec($trackOrders)
|
|
|
- {
|
|
|
- $row = [[
|
|
|
- 'owner_name' => '公司', 'order_client_code' => '订单号', 'web_order_number' => 'WEB+订单号', 'pick_up_at' => '提货日期', 'sale' => '销售',
|
|
|
- 'client' => '客户', 'sku' => 'sku', 'sku_name' => '物料描述', 'sku_amount' => '数量', 'order_remark' => '订单备注',
|
|
|
- 'gross_weight' => '重量', 'bulk' => '体积', 'pallet_total' => '托盘合计', 'package_logistic' => '运输方式', 'package_logistic_number' => '运输单号',
|
|
|
- 'order_city' => '到达城市', 'planning_sent_at' => '应送达时间', 'is_on_duty_shift' => '是否赶上卡班', 'is_arrival' => '到货情况', 'signed_at' => '签收日期',
|
|
|
- 'receive_bill_status' => '签收单情况', 'remark' => '备注']];
|
|
|
-
|
|
|
- $list = [];
|
|
|
- $i = 0;
|
|
|
-
|
|
|
- foreach ($trackOrders as $trackOrder) {
|
|
|
- $logisticName = $trackOrder['commodities']['package']['order']['logistic']['name'];
|
|
|
- $logistic_number = $trackOrder['commodities']['package']['logistic_number'];
|
|
|
- $list[$i]['owner_name'] = $trackOrder['owner']['name'] ?? '';
|
|
|
- $list[$i]['order_client_code'] = $trackOrder['web_order_number'] ? '' : $trackOrder['order_client_code'];
|
|
|
- $list[$i]['web_order_number'] = $trackOrder['web_order_number'] ?? '';
|
|
|
- $list[$i]['pick_up_at'] = $trackOrder['pick_up_at'] ?? '';
|
|
|
- $list[$i]['sale'] = $trackOrder['sale'] ?? '';
|
|
|
- $list[$i]['client'] = $trackOrder['client'] ?? '';
|
|
|
- $list[$i]['sku'] = $trackOrder['commodities']['commodity']['sku'];
|
|
|
- $list[$i]['sku_name'] = $trackOrder['commodities']['commodity']['name'];
|
|
|
- $list[$i]['sku_amount'] = $trackOrder['commodities']['amount'];
|
|
|
- $list[$i]['order_remark'] = $trackOrder['order_remark'];
|
|
|
- $list[$i]['gross_weight'] = $trackOrder['gross_weight'];
|
|
|
- $list[$i]['bulk'] = $trackOrder['bulk'];
|
|
|
- $list[$i]['pallet_total'] = $trackOrder['pallet_total'];
|
|
|
- $list[$i]['package_logistic'] = $trackOrder['commodities']['package']['order']['logistic']['name'];
|
|
|
- $list[$i]['package_logistic_number'] = $logisticName == '新杰物流' ? ( $trackOrder['web_order_number'] ? $trackOrder['web_order_number'] : $trackOrder['order_client_code']) : $logistic_number;
|
|
|
- $list[$i]['order_city'] = $trackOrder['commodities']['package']['order']['city'];
|
|
|
- $list[$i]['planning_sent_at'] = $trackOrder['planning_sent_at'];
|
|
|
- $list[$i]['is_on_duty_shift'] = $trackOrder['is_on_duty_shift'];
|
|
|
- $list[$i]['is_arrival'] = $trackOrder['is_arrival'];
|
|
|
- $list[$i]['signed_at'] = $trackOrder['signed_at'];
|
|
|
- $list[$i]['receive_bill_status'] = $trackOrder['receive_bill_status'];
|
|
|
- $list[$i]['remark'] = $trackOrder['remark'];
|
|
|
- $i++;
|
|
|
- }
|
|
|
-
|
|
|
- return Excel::download(new Export($row, $list), date('YmdHis', time()) . '-订单跟踪.xlsx');
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* @param $startData
|
|
|
*/
|