SyncSWMSOrderIssueAndWorkOrderService.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace App\Services;
  3. use App\OrderIssue;
  4. use App\OrderPackage;
  5. use App\WorkOrder;
  6. use Illuminate\Support\Facades\Http;
  7. class SyncSWMSOrderIssueAndWorkOrderService
  8. {
  9. private function getLogisticNumber($orderId)
  10. {
  11. return OrderPackage::query()->where("order_id", $orderId)->get()->map(function ($item) {
  12. return $item->logistic_number;
  13. });
  14. }
  15. public function sendOrderIssue(OrderIssue $orderIssue)
  16. {
  17. $url = config('api.java.base') . config('api.java.reject.syncOrderIssue');
  18. $logisticNumbers = $this->getLogisticNumber($orderIssue->order_id);
  19. if(sizeof($logisticNumbers) == 0){
  20. return;
  21. }
  22. $request = [
  23. $logisticNumbers
  24. ];
  25. $this->sendMessage($request, $url, "问题件通知SWMS");
  26. }
  27. public function sendWorkOrder(WorkOrder $workOrder)
  28. {
  29. $url = config('api.java.base') . config('api.java.reject.syncWorkOrder');
  30. $logisticNumbers = $this->getLogisticNumber($workOrder->order_id);
  31. if(sizeof($logisticNumbers) == 0){
  32. return;
  33. }
  34. $request = [
  35. $logisticNumbers
  36. ];
  37. $this->sendMessage($request, $url, "工创建通知SWMS");
  38. }
  39. public function sendMessage($requestBody, $url, $type)
  40. {
  41. app('LogService')->log("二次分拣计件", "通知服务端", json_encode($requestBody));
  42. $http = Http::post($url, $requestBody);
  43. if (!$http->successful()) {
  44. app('LogService')->log($type, "sendPiece", '发送失败:' . $http->body());
  45. return;
  46. }
  47. $result = $http->json();
  48. if ($result["code"] != 200) {
  49. app('LogService')->log($type, "sendPiece", '服务端错误:' . $http->body());
  50. }
  51. }
  52. }