stationService=null; $this->stationTypeService=null; $this->stationTaskBatchTypeService=null; $this->batchService=null; $this->stationTaskService=null; } /** * @param $batches Batch[] * @param Collection $stationTasks_toAttach * @return Collection * @throws Exception */ function createByBatches(array $batches, Collection $stationTasks_toAttach): Collection { $this->stationService=app('StationService'); $this->stationTypeService=app('StationTypeService'); $this->stationTaskBatchTypeService=app('StationTaskBatchTypeService'); $this->batchService=app('BatchService'); $stationTaskBatches_toCreate=new Collection(); $id_stationTaskBatchType=$this->stationTaskBatchTypeService->firstByWhere('name','U型线分捡'); $batches_handled=collect(); foreach ($batches as $batch){ if ($batch['status']=='未处理'){ $stationType=$this->stationTypeService->getByBatch($batch); $station=$this->stationService->getStation_byType($stationType['name']); $stationTaskBatches_toCreate->push([ 'batch_id'=>$batch['id'], 'station_id'=>$station['id'], 'station_task_batch_type_id'=> $id_stationTaskBatchType, 'status'=>'待处理' ]); $batches_handled->push($batch); } } $this->batchService->updateWhereIn('id',data_get($batches_handled,'*.id'),['status'=>'处理中']); $this->insert($stationTaskBatches_toCreate->toArray()); $this->stationTaskService->registerSubTasks($stationTasks_toAttach, $stationTaskBatches_toCreate->map(function ($stationMissionBatch){ return [$stationMissionBatch]; }) ); return $stationTaskBatches_toCreate; } public function insert(array $stationMissionBatches): bool { $inserted = StationTaskBatch::query()->insert($stationMissionBatches); LogService::log(__METHOD__,__FUNCTION__,json_encode($stationMissionBatches). '||'.json_encode(array_slice(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS),0,3))); return $inserted; } }