BatchService.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace App\Services;
  3. use App\Batch;
  4. use Exception;
  5. Class BatchService
  6. {
  7. /** @var StationTaskBatchService $stationTaskBatchService */
  8. private $stationTaskBatchService;
  9. public function __construct(){
  10. $this->stationTaskBatchService=null;
  11. }
  12. public function get(array $params)
  13. {
  14. $query = Batch::query();
  15. foreach ($params as $column=>$param){
  16. if (is_array($param))$query->whereIn($column,$param);
  17. else $query->where($column,$param);
  18. }
  19. return $query->get();
  20. }
  21. public function insert(array $insert)
  22. {
  23. $result = Batch::query()->insert($insert);
  24. if($result)$this->assignTasks($insert);
  25. return $result;
  26. }
  27. public function updateWhereIn($key,$values,$updateKeyValues){
  28. Batch::query()->whereIn($key,$values)->update($updateKeyValues);
  29. }
  30. /**
  31. * 为波次附加任务,已附加的重复任务不影响
  32. * @param Batch[] $batches
  33. * @throws Exception
  34. */
  35. public function assignTasks(array $batches)
  36. {
  37. $this->stationTaskBatchService=app('StationTaskBatchService');
  38. //按规则过滤需要的波次
  39. //分配
  40. $stationTaskBatches=$this->stationTaskBatchService->createByBatches($batches); //注册波次任务
  41. //注册料箱任务
  42. //注册商品任务
  43. //注册总任务
  44. //执行总任务
  45. }
  46. }