Przeglądaj źródła

Merge remote-tracking branch 'origin/master'

eric2h 3 lat temu
rodzic
commit
6f934d6ae6

+ 40 - 11
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
 {
@@ -54,7 +59,11 @@ class ReceivingTaskController extends Controller
         }
         $appointment_number = $request->input('appointment_number', null);
 
-        $delivery_appointment_car = DeliveryAppointmentCar::query()->with('deliveryAppointment')->where('appointment_number', $appointment_number)->first();
+        $delivery_appointment_car = DeliveryAppointmentCar::query()->with('deliveryAppointment')
+            ->where('status','!=',2)
+            ->where('appointment_number', $appointment_number)
+            ->orderByDesc('id')
+            ->first();
 
         if (!$delivery_appointment_car || !$delivery_appointment_car->deliveryAppointment) {
             return ['success' => false, 'errors' => ['appointment_number' => ['对应预约号未找到']]];
@@ -73,17 +82,8 @@ 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' => ['预约号与货主必填项']]];
+            return ['success' => false, 'errors' => ['appointment_number' => ['预约号与货主为必填项']]];
         }
 
         if (ReceivingTask::query()->where('delivery_appointment_car_id', $delivery_appointment_car->id)->exists()) {
@@ -94,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

+ 2 - 2
app/Services/OrderIssueTypeService.php

@@ -22,7 +22,7 @@ class OrderIssueTypeService
     public function getOrderIssueType()
     {
         return OrderIssueType::query()->whereIn('name',[
-            '联系不上','其他','仓库问题','撤销丢件','二次加工','全检问题','系统问题','延迟发货','仓库丢件','快递方式更改','无记录','双面单'
+            '联系不上','其他','仓库问题','撤销丢件','二次加工','全检问题','系统问题','延迟发货','仓库丢件','快递方式更改','无记录','双面单','无异常'
         ])->get();
     }
 
@@ -57,7 +57,7 @@ class OrderIssueTypeService
     public function getAllOrderIssueTypes(){
         return OrderIssueType::query()->whereIn('name',[
             '拦截', '信息更改', '快递异常', '错漏发', '破损', '快递丢件',
-            '联系不上','其他','仓库问题','撤销丢件','二次加工','全检问题','系统问题','延迟发货','仓库丢件','快递方式更改','无记录','双面单','取消拦截'
+            '联系不上','其他','仓库问题','撤销丢件','二次加工','全检问题','系统问题','延迟发货','仓库丢件','快递方式更改','无记录','双面单','取消拦截','无异常'
         ])->get();
     }
 }

+ 3 - 9
app/Services/RejectedService.php

@@ -68,15 +68,9 @@ class RejectedService
             'id' => ['multi' => ','],
         ];
         if ($param['id_quality_label'] ?? false) {
-            if ($param['id_quality_label'] == 1) {
-                $rejectedBills->whereDoesntHave('items', function ($query) {
-                    $query->where('id_quality_label', 2);
-                });
-            } else {
-                $rejectedBills->whereHas('items', function ($query) {
-                    $query->where('id_quality_label', 2);
-                });
-            }
+            $rejectedBills->whereHas('items', function ($query)use ($param) {
+                $query->where('id_quality_label', $param['id_quality_label']);
+            });
             unset($param['id_quality_label']);
         }
         if (isset($param["is_checked"])){