Selaa lähdekoodia

添加计件信息

zengjun 3 vuotta sitten
vanhempi
commit
5f3fce8f30
1 muutettua tiedostoa jossa 34 lisäystä ja 9 poistoa
  1. 34 9
      app/Http/Controllers/ReceivingTaskController.php

+ 34 - 9
app/Http/Controllers/ReceivingTaskController.php

@@ -5,13 +5,18 @@ namespace App\Http\Controllers;
 use App\DeliveryAppointmentCar;
 use App\Filters\ReceivingTaskFilters;
 use App\Http\Requests\Api\ReceivingTaskRequest;
+use App\Owner;
 use App\ReceivingTask;
 use App\ReceivingTaskItem;
 use App\Services\OwnerService;
 use App\Services\ReceivingTaskService;
 use App\Warehouse;
+use Illuminate\Support\Facades\Auth;
+use Illuminate\Support\Facades\Date;
 use Illuminate\Support\Facades\Gate;
 use Illuminate\Http\Request;
+use Illuminate\Support\Facades\Http;
+use Ramsey\Uuid\Uuid;
 
 class ReceivingTaskController extends Controller
 {
@@ -77,15 +82,6 @@ class ReceivingTaskController extends Controller
             return ['success' => false, 'errors' => ['appointment_number' => ['预约号没有对应的Asn号']]];
         }
 
-//        $receiving_task_items = ReceivingTaskItem::query()->whereIn('asn_no',$request->input('asn_nos') ?? [])->get()->map(function($item){
-//            return $item->asn_no;
-//        })->toArray();
-//        if (count($receiving_task_items) >0 ){
-//            return [
-//                'success' => false,'errors' => ['appointment_number' => ['勾选的asn号'.json_encode($receiving_task_items).'已再其他开单入库中有关联']]
-//            ];
-//        }
-
         if ($delivery_appointment_car->deliveryAppointment->owner_id != $request->input('owner_id')) {
             return ['success' => false, 'errors' => ['appointment_number' => ['预约号与货主为必填项']]];
         }
@@ -98,12 +94,41 @@ class ReceivingTaskController extends Controller
             $receiving_task = $this->service->createReceivingTask($delivery_appointment_car, $request->all());
             if (!$receiving_task->id) return ['success' => false, 'message' => '生成入库单任务失败,请重新尝试'];
             $receiving_task->loadMissing(['wareHouse', 'owner', 'deliveryAppointmentCar']);
+            $this->sendPiece($request->input('owner_id'),$receiving_task->number);
             return ['success' => true, 'data' => $receiving_task];
         } catch (\Exception $e) {
             return ['success' => false, 'message' => '生成入库单任务失败,请重新尝试'];
         }
     }
 
+    public function sendPiece($ownerId,$taskId){
+        $url = config('api.java.base').config('api.java.piece.log.record');
+        $owner = Owner::query()->where("id",$ownerId)->first();
+        $warehouseId = $owner->warehouse_id ?? null;
+        $request = [
+            "user_type" => 0,
+            "job_type" => "开单",
+            "job_name" => "开单",
+            "form_number" => 1,
+            "piece_time" => new Date(),
+            "message_id" => $taskId,
+            "user_id" => Auth::user()['id'],
+            "warehouse_id" => $warehouseId,
+            "owner_id" => $ownerId,
+            "item_number" => 0,
+        ];
+        app('LogService')->log("开单",  "通知服务端", json_encode($request));
+        $http = Http::post($url, $request);
+        if (!$http->successful()) {
+            app('LogService')->log("开单",  "sendPiece", '发送失败:'.$http->body());
+            return;
+        }
+        $result = $http->json();
+        if ($result["code"] != 200) {
+            app('LogService')->log("开单",  "sendPiece", '服务端错误:'.$http->body());
+        }
+    }
+
     /**
      * 根据预约号获取Asn单号
      * @param Request $request