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 insert(array $insert) { $result = Batch::query()->insert($insert); if($result)$this->assignTasks($insert); return $result; } public function updateWhereIn($key,$values,$updateKeyValues){ Batch::query()->whereIn($key,$values)->update($updateKeyValues); } /** * 为波次附加任务,已附加的重复任务不影响 * @param Batch[] $batches * @throws Exception */ public function assignTasks(array $batches) { $this->stationTaskBatchService=app('StationTaskBatchService'); $this->stationRuleBatchService=app('StationRuleBatchService'); $this->stationTaskService=app('StationTaskService'); $this->stationTaskCommodityService=app('StationTaskCommodityService'); $this->stationTaskMaterialBoxService=app('StationTaskMaterialBoxService'); $batches_canProcess = $this->stationRuleBatchService->getBatches_canProcess($batches); //按规则过滤需要的波次 if($batches_canProcess->isEmpty()) return; $stationTasks = $this->stationTaskService->create($batches_canProcess->count()); //生成总任务 $stationTaskBatches=$this->stationTaskBatchService->createByBatches($batches_canProcess,$stationTasks); //注册波次任务 $this->stationTaskCommodityService->createByBatches($batches_canProcess,$stationTasks); //注册商品任务 $this->stationTaskMaterialBoxService->createByBatches($batches_canProcess,$stationTasks); //注册料箱任务 $this->stationTaskBatchService->runMany($stationTaskBatches);//执行波次任务 } public function getBatchByCodes($codes) { if(empty($codes))return collect(); if(count($codes) == 0)return collect(); return Batch::query()->whereIn('code',$codes)->get(); } }