DataSyncToU8Service.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace App\Service;
  3. use App\Jobs\ProcessDataJob;
  4. use App\Model\PurchaseOrder;
  5. use App\Model\Supplier;
  6. use App\Model\U8Job;
  7. class DataSyncToU8Service extends Service
  8. {
  9. public function add($data,$user){
  10. list($status,$msg) = $this->orderRule($data);
  11. if(!$status) return [$status,$msg];
  12. dd((new U8ServerService())->U8PO_PomainSave($data['id']));
  13. try{
  14. $job = ProcessDataJob::dispatch($data)->onQueue($data['job']);
  15. if(! $job) return [false,'任务没有进入队列!'];
  16. }catch (\Throwable $e){
  17. return [false,$e->getMessage()];
  18. }
  19. return [true,''];
  20. }
  21. public function orderRule(&$data){
  22. if(empty($data['type'])) return [false,'type不能为空!'];
  23. if(! in_array($data['type'],U8Job::$type)) return [false,'type不能存在!'];
  24. if(empty($data['id'])) return [false,'同步数据不能为空!'];
  25. $data['job'] = U8Job::$job[$data['type']] ?? "";
  26. if(empty($data['job'])) return [false,'未找到同步任务!'];
  27. if($data['type'] == U8Job::one){
  28. //采购同步校验
  29. $bool = PurchaseOrder::whereIn('id',$data['id'])
  30. ->where('del_time',0)
  31. ->where('supplier',0)
  32. ->exists();
  33. if($bool) return [false,'同步的采购单供应商不能为空!'];
  34. }
  35. return [true, ''];
  36. }
  37. }