stationTaskBatchService=null; $this->stationRuleBatchService=null; $this->stationTaskMaterialBoxService=null; $this->stationTaskCommodityService=null; $this->stationTaskService=null; } public function get(array $params) { $query = Batch::query(); foreach ($params as $column=>$param){ if (is_array($param))$query->whereIn($column,$param); else $query->where($column,$param); } return $query->get(); } public function updateWhereIn($key,$values,$updateKeyValues){ Batch::query()->whereIn($key,$values)->update($updateKeyValues); } /** * 为波次附加任务,已附加的重复任务不影响 * @param $batches * @throws Exception */ public function assignTasks($batches) { try{ LogService::log(__METHOD__,'assignTasks','波次任务分配1:'.json_encode($batches)); $batches = collect($batches); $this->instant($this->stationTaskBatchService,'StationTaskBatchService'); $this->instant($this->stationRuleBatchService,'StationRuleBatchService'); $this->instant($this->stationTaskService,'StationTaskService'); $this->instant($this->stationTaskCommodityService,'StationTaskCommodityService'); $this->instant($this->stationTaskMaterialBoxService,'StationTaskMaterialBoxService'); $batches_shouldProcess = $this->stationRuleBatchService->getBatches_shouldProcess($batches); //按规则过滤需要的波次 if($batches_shouldProcess->isEmpty()) return; LogService::log(__METHOD__,'assignTasks','波次任务分配2:'.json_encode($batches)); $stationTasks = $this->stationTaskService->create($batches_shouldProcess->count()); //生成总任务 LogService::log(__METHOD__,'assignTasks','波次任务分配3:'.json_encode($batches)); $stationTaskBatches=$this->stationTaskBatchService->createByBatches($batches_shouldProcess,$stationTasks); //注册波次任务 LogService::log(__METHOD__,'assignTasks','波次任务分配4:'.json_encode($batches)); $stationTaskMaterialBoxes=$this->stationTaskMaterialBoxService->createByBatches($batches_shouldProcess,$stationTasks); //注册料箱任务 LogService::log(__METHOD__,'assignTasks','波次任务分配5:'.json_encode($stationTaskMaterialBoxes).json_encode($batches)); $stationTaskCommodities=$this->stationTaskCommodityService->createByBatches($batches_shouldProcess,$stationTasks); //注册商品任务 LogService::log(__METHOD__,'assignTasks','波次任务分配6:'.json_encode($batches)); $ran=$this->stationTaskBatchService->runMany($stationTaskBatches);//执行波次任务 LogService::log(__METHOD__,'assignTasks','波次任务分配7:'.json_encode($batches)); }catch(Exception $e){ throw new ErrorException('注册任务失败: '.json_encode($batches). $e->getMessage()); } } public function getBatchByCodes($codes) { if(empty($codes))return collect(); if(count($codes) == 0)return collect(); return Batch::query()->whereIn('code',$codes)->get(); } }