ProcessController.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Commodity;
  4. use App\Exports\WaybillExport;
  5. use App\Owner;
  6. use App\Process;
  7. use Carbon\Carbon;
  8. use Illuminate\Database\Eloquent\Builder;
  9. use Illuminate\Http\Request;
  10. use Illuminate\Support\Facades\Gate;
  11. use Maatwebsite\Excel\Facades\Excel;
  12. class ProcessController extends Controller
  13. {
  14. public function conditionQuery(Request $request,$processes){
  15. $today=Carbon::now()->subDays(15);
  16. if ($request->input('commodity_barcode')){
  17. $barcode=$request->input('commodity_barcode');
  18. $processes=$processes->with('commodity')->whereHas('commodity',function (Builder $query)use($barcode){
  19. $query->where('barcode','like',$barcode.'%');
  20. });
  21. }
  22. if ($request->input('date_start')){
  23. $processes=$processes->where('created_at','>=',$request->input('date_start'));
  24. }
  25. if ($request->input('date_end')){
  26. $processes=$processes->where('created_at','<=',$request->input('date_end'));
  27. }
  28. if ($request->input('owner_id')){
  29. $processes=$processes->where('owner_id',$request->input('owner_id'));
  30. }
  31. if ($request->input('wms_code')){
  32. $processes=$processes->where('wms_code','like','%'.$request->input('wms_code').'%')->where('created_at','>',$today->format('Y-m-d'));
  33. }
  34. $processes=$processes->paginate($request->input('paginate')??50);
  35. return $processes;
  36. }
  37. /**
  38. * Display a listing of the resource.
  39. * @param Request $request
  40. * @return \Illuminate\Http\Response
  41. */
  42. public function index(Request $request)
  43. {
  44. $processes=Process::with('tutorials')->orderBy('processes.id','DESC');
  45. if ($request->input('checkSign')){
  46. $excel=$this->isExport($request,$processes);
  47. return $excel;
  48. }
  49. $processes=$this->conditionQuery($request,$processes);
  50. $owners=Owner::select('id','name')->get();
  51. return view('process.index',['processes'=>$processes,'owners'=>$owners]);
  52. }
  53. //获取导出数据
  54. public function isExport(Request $request,$processes){
  55. if ($request->input('checkSign')=="-1"){
  56. $processes=$this->conditionQuery($request,$processes);
  57. $excel=$this->export($processes);
  58. return $excel;
  59. }
  60. $id = explode( ',',$request->input('checkSign'));
  61. $processes=$processes->whereIn('id',$id)->get();
  62. $excel=$this->export($processes);
  63. return $excel;
  64. }
  65. /**
  66. * Show the form for creating a new resource.
  67. *
  68. * @return \Illuminate\Http\Response
  69. */
  70. public function create()
  71. {
  72. //
  73. }
  74. /**
  75. * Store a newly created resource in storage.
  76. *
  77. * @param \Illuminate\Http\Request $request
  78. * @return \Illuminate\Http\Response
  79. */
  80. public function store(Request $request)
  81. {
  82. //
  83. }
  84. /**
  85. * Display the specified resource.
  86. *
  87. * @param int $id
  88. * @return \Illuminate\Http\Response
  89. */
  90. public function show($id)
  91. {
  92. //
  93. }
  94. /**
  95. * Show the form for editing the specified resource.
  96. *
  97. * @param int $id
  98. * @return \Illuminate\Http\Response
  99. */
  100. public function edit($id)
  101. {
  102. //
  103. }
  104. /**
  105. * Update the specified resource in storage.
  106. *
  107. * @param \Illuminate\Http\Request $request
  108. * @param int $id
  109. * @return \Illuminate\Http\Response
  110. */
  111. public function update(Request $request, $id)
  112. {
  113. //
  114. }
  115. /**
  116. * Remove the specified resource from storage.
  117. *
  118. * @param int $id
  119. * @return \Illuminate\Http\Response
  120. */
  121. public function destroy($id)
  122. {
  123. //
  124. }
  125. //执行
  126. public function export($processes){
  127. if(!Gate::allows('二次加工管理-查询')){ return '没有权限'; }
  128. $row=[[
  129. 'id'=>'ID',
  130. 'code'=>'任务号',
  131. 'owner_name'=>'货主',
  132. 'bill_type'=>'单据类型',
  133. 'wms_code'=>'单据号',
  134. 'process_method_name'=>'加工类型',
  135. 'amount'=>'预期数量',
  136. 'unit_price'=>'单价',
  137. 'created_at'=>'提交日期',
  138. 'commodity_barcode'=>'商品编码',
  139. 'commodity_name'=>'商品名称',
  140. 'completed_amount'=>'实际数量',
  141. 'status'=>'状态',
  142. ]];
  143. $list=[];
  144. $i=0;
  145. foreach ($processes as $process){
  146. $w=[
  147. 'id'=>$process->id,
  148. 'code'=>$process->code ,
  149. 'owner_name'=>$process->owner_name ,
  150. 'bill_type'=>$process->bill_type ,
  151. 'wms_code'=>$process->wms_code ,
  152. 'process_method_name'=>$process->process_method_name,
  153. 'amount'=>$process->amount,
  154. 'unit_price'=>$process->unit_price,
  155. 'created_at'=>$process->created_at ,
  156. 'commodity_barcode'=>$process->commodity_barcode,
  157. 'commodity_name'=>$process->commodity_name ,
  158. 'completed_amount'=>$process->completed_amount,
  159. 'status'=>$process->status,
  160. ];
  161. $list[$i]=$w;
  162. $i++;
  163. }
  164. return Excel::download(new WaybillExport($row,$list),date('YmdHis', time()).'-二次加工单.xls');
  165. }
  166. }