ProcessService.php 2.6 KB

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