| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- <?php
- namespace App\Services;
- use App\StationTask;
- use App\StationTaskMaterialBox;
- use App\Traits\ServiceAppAop;
- use App\Storage;
- use Illuminate\Database\Eloquent\Builder;
- use Illuminate\Support\Collection;
- class StorageService
- {
- use ServiceAppAop;
- protected $modelClass=Storage::class;
- /**
- * 填充缓存架
- *
- * @param \Illuminate\Database\Eloquent\Collection $stations
- */
- public function paddingCacheShelf($stations)
- {
- $collection = new Collection();
- $stationCollection = new Collection();
- $blacklist = [];
- foreach ($stations as $station){
- $box = app("MaterialBoxService")->getAnEmptyBox($blacklist);
- if (!$box)continue;
- $task = StationTask::query()->create([
- 'status' => "待处理",
- 'station_id' => $station->id,
- ]);
- $collection->add(StationTaskMaterialBox::query()->create([
- 'station_id' => $station->id,
- 'material_box_id'=>$box->id,
- 'status'=>"待处理",
- 'type' => '取',
- 'station_task_id' => $task->id,
- ]));
- $stationCollection->add($station->code);
- $blacklist[] = $box->id;
- }
- app("ForeignHaiRoboticsService")->fetchGroup_multiLocation($stationCollection,$collection,'','立架出至缓存架');
- }
- /**
- * 标记指定库位为占用
- *
- * @param string $location
- *
- * @return int
- */
- public function markOccupy($location)
- {
- return Storage::query()->whereHas("station",function (Builder $query)use($location){
- $query->where("code",$location);
- })->update(["status"=>1]);
- }
- }
|