OrderTrackingController.php 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Logistic;
  4. use App\Services\LogService;
  5. use App\Services\OrderTrackingService;
  6. use App\Services\OwnerService;
  7. use Exception;
  8. use Illuminate\Http\Request;
  9. use Illuminate\Support\Facades\Gate;
  10. use Illuminate\Support\Facades\Http;
  11. class OrderTrackingController extends Controller
  12. {
  13. public function index(Request $request)
  14. {
  15. if (!Gate::allows('订单管理-跟踪'))
  16. return redirect(url('/'));
  17. $owners = app(OwnerService::class)->getAuthorizedOwners();
  18. $service = app('OrderTrackingService');
  19. $trackOrders = $service->paginate($request->input());
  20. $logistics = Logistic::all();
  21. return view('order.tracking.index', compact('owners', 'trackOrders','logistics'));
  22. }
  23. public function logisticUpdateApi(Request $request)
  24. {
  25. if (!Gate::allows('订单管理-跟踪-物流公司编辑'))
  26. return redirect(url('/'));
  27. try {
  28. $bool = app(OrderTrackingService::class)->updateOrderTracingAndSyc($request->input('id'),$request->input('param'),$request->input('value'));
  29. LogService::log(__METHOD__, __FUNCTION__, '更新成功' . json_encode($request->getContent()) );
  30. return $bool;
  31. } catch (\Exception $e) {
  32. LogService::log(__METHOD__, __FUNCTION__, '更新失败' . json_encode($request->getContent()) .'||'.$e->getMessage().'||'.$e->getTraceAsString());
  33. return ['success' => false];
  34. }
  35. }
  36. public function warehouseUpdateApi(Request $request)
  37. {
  38. if (!Gate::allows('订单管理-跟踪-仓库编辑'))
  39. return redirect(url('/'));
  40. try {
  41. $bool = app(OrderTrackingService::class)->updateOrderTracingAndSyc($request->input('id'),$request->input('param'),$request->input('value'));
  42. LogService::log(__METHOD__, __FUNCTION__, '更新成功' . json_encode($request->getContent()));
  43. return $bool;
  44. } catch (\Exception $e) {
  45. LogService::log(__METHOD__, __FUNCTION__, '更新失败' . json_encode($request->getContent()) .'||'.$e->getMessage().'||'.$e->getTraceAsString());
  46. return ['success' => false];
  47. }
  48. }
  49. public function export(Request $request)
  50. {
  51. if (!Gate::allows('订单管理-跟踪'))
  52. return redirect(url('/'));
  53. /** @var OrderTrackingService $service */
  54. $service = app(OrderTrackingService::class);
  55. $sql = $service->getSql($request->input());
  56. $row = ['公司','订单号','WEB+订单号','提货日期','销售','客户','SKU','物料描述','数量','订单备注','重量','体积',
  57. '托盘合计','运输方式','运输单号','到达城市','应送达时间','是否赶上卡班','到货情况','签收日期','签收单情况','备注'];
  58. $column = ['owners_name','order_client_code','web_order_number','pick_up_at','sale','client','sku','sku_name','amount','order_remark',
  59. 'gross_weight','bulk','pallet_total','logistic_name','logistic_number','city','planning_sent_at','is_on_duty_shift','is_arrival','signed_at','receive_bill_status','remark'];
  60. $mergeColumn = ['M'];
  61. $rule = ["pick_up_at"=> "mysqlDate",'planning_sent_at'=>"mysqlDate"];
  62. $post = Http::post(config('go.export.url'),['type'=>'unify','sql'=>$sql, 'connection'=>'mysql','rule' => json_encode($rule),
  63. 'row'=>json_encode($row,JSON_UNESCAPED_UNICODE), 'column'=>json_encode($column),
  64. 'mergeColumn'=>json_encode($mergeColumn),'datum'=>'pick_up_at','createFormat'=>'merge']);
  65. if ($post->status() == 500){
  66. throw new Exception($post->header("Msg"));
  67. }
  68. return response($post,200, [
  69. "Content-type"=>"application/octet-stream",
  70. "Content-Disposition"=>"attachment; filename=订单跟踪件-".date('ymdHis').'.xlsx',
  71. ]);
  72. }
  73. }