ProcessService.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. <?php
  2. namespace App\Services;
  3. use App\Process;
  4. use App\Services\common\QueryService;
  5. use Carbon\Carbon;
  6. use Illuminate\Http\Request;
  7. Class ProcessService
  8. {
  9. private function conditionQuery(Request $request){
  10. $processes=Process::filterAuthorities()->with(['tutorials','signs','signUnitPrice','processesContents'=>function($query){
  11. return $query->with(['commodity'=>function($query){
  12. return $query->with('barcodes');
  13. }]);
  14. }])->orderBy('processes.id','DESC');
  15. if ($request->input('commodity_barcode')){
  16. $barcode=$request->input('commodity_barcode');
  17. $processes=$processes->whereHas('processesContents',function ($query)use($barcode){
  18. $query->whereHas('commodity',function ($builder)use($barcode){
  19. $builder->whereHas('barcodes',function ($builder)use($barcode){
  20. $builder->where('code','like',$barcode);
  21. });
  22. });
  23. });
  24. $request->offsetUnset('commodity_barcode');
  25. }
  26. if ($request->input('wms_code')){
  27. $wms_code=$request->input('wms_code');
  28. $processes=$processes->whereHas('processesContents',function ($builder)use ($wms_code){
  29. $builder->where('wms_code','like',$wms_code);
  30. });
  31. $request->offsetUnset('wms_code');
  32. }
  33. if (!$request->is_accomplish){
  34. $processes=$processes->where('status','!=','交接完成');
  35. }else $request->offsetUnset('is_accomplish');
  36. $columnQueryRules=[
  37. 'date_start' => ['alias' => 'created_at' , 'startDate' => ' 00:00:00'],
  38. 'date_end' => ['alias' => 'created_at' , 'endDate' => ' 23:59:59'],
  39. 'code' => ['like' => ''],
  40. 'owner_id' => ['multi' => ','],
  41. ];
  42. $processes = app(QueryService::class)->query($request,$processes,$columnQueryRules);
  43. return $processes;
  44. }
  45. public function paginate(Request $request){
  46. return $this->conditionQuery($request)->paginate($request->paginate ?? 50);
  47. }
  48. public function get(Request $request){
  49. return $this->conditionQuery($request)->get();
  50. }
  51. public function some(Request $request){
  52. return Process::filterAuthorities()->with(['processesContents'=>function($query){
  53. return $query->with(['commodity'=>function($query){
  54. return $query->with('barcodes');
  55. }]);
  56. }])->orderBy('processes.id','DESC')->whereIn('processes.id',explode(',',$request->data))->get();
  57. }
  58. }