SyncSWMSOrderIssueAndWorkOrderService.php 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  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. // TODO 这里遗留待处理
  18. $url = config('api.java.base') . config('api.java.reject.syncOrderIssue');
  19. $logisticNumbers = $this->getLogisticNumber($orderIssue->order_id);
  20. if (sizeof($logisticNumbers) == 0) {
  21. return;
  22. }
  23. $request = [
  24. 'packageCodes' => $logisticNumbers
  25. ];
  26. $this->sendMessage($request, $url, "问题件通知SWMS");
  27. }
  28. public function sendWorkOrder(WorkOrder $workOrder)
  29. {
  30. // TODO 这里遗留待处理
  31. $url = config('api.java.base') . config('api.java.reject.syncWorkOrder');
  32. $logisticNumbers = $this->getLogisticNumber($workOrder->order_id);
  33. if (sizeof($logisticNumbers) == 0) {
  34. return;
  35. }
  36. $request = [
  37. 'packageCodes' => $logisticNumbers
  38. ];
  39. $this->sendMessage($request, $url, "工单创建通知SWMS");
  40. }
  41. public function sendMessage($requestBody, $url, $type)
  42. {
  43. app('LogService')->log($type, "通知服务端", json_encode($requestBody));
  44. $http = Http::post($url, $requestBody);
  45. if (!$http->successful()) {
  46. app('LogService')->log($type, "sendPiece", '发送失败:' . $http->body());
  47. return;
  48. }
  49. $result = $http->json();
  50. if ($result["code"] != 200) {
  51. app('LogService')->log($type, "sendPiece", '服务端错误:' . $http->body());
  52. }
  53. }
  54. }