StorageService.php 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <?php
  2. namespace App\Services;
  3. use App\StationTask;
  4. use App\StationTaskMaterialBox;
  5. use App\Traits\ServiceAppAop;
  6. use App\Storage;
  7. use Illuminate\Support\Collection;
  8. class StorageService
  9. {
  10. use ServiceAppAop;
  11. protected $modelClass=Storage::class;
  12. /**
  13. * 填充缓存架
  14. *
  15. * @param \Illuminate\Database\Eloquent\Collection $stations
  16. */
  17. public function paddingCacheShelf($stations)
  18. {
  19. $collection = new Collection();
  20. $stationCollection = new Collection();
  21. $blacklist = [];
  22. foreach ($stations as $station){
  23. $box = app("MaterialBoxService")->getAnEmptyBox($blacklist);
  24. if (!$box)continue;
  25. $task = StationTask::query()->create([
  26. 'status' => "待处理",
  27. 'station_id' => $station->id,
  28. ]);
  29. $collection->add(StationTaskMaterialBox::query()->create([
  30. 'station_id' => $station->id,
  31. 'material_box_id'=>$box->id,
  32. 'status'=>"待处理",
  33. 'type' => '取',
  34. 'station_task_id' => $task->id,
  35. ]));
  36. $stationCollection->add($station->code);
  37. $blacklist[] = $box->id;
  38. }
  39. app("ForeignHaiRoboticsService")->fetchGroup_multiLocation($stationCollection,$collection,'','立架出至缓存架');
  40. }
  41. /**
  42. * 标记指定库位为占用
  43. *
  44. * @param string $location
  45. */
  46. public function markOccupy($location)
  47. {
  48. }
  49. }