Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

eric2h 3 лет назад
Родитель
Сommit
17c5ad301b

+ 3 - 1
app/Http/Controllers/api/thirdPart/haochuang/SortingController.php

@@ -6,6 +6,7 @@ use App\Batch;
 use App\CommodityBarcode;
 use App\Exceptions\Exception;
 use App\Http\Controllers\Controller;
+use App\Jobs\SendPieceOwnerJob;
 use App\OracleDOCWaveDetails;
 use App\Order;
 use App\OrderBin;
@@ -194,7 +195,8 @@ SQL;
                                             $warehouseId, date("Y-m-d H:i:s"), $number);
 
         try{
-            (new WaveService())->sendOwnerPiece($batch_id,UserToken::getUser($token)->id ?? '0',$warehouseId,$ownerId,date("Y-m-d H:i:s"));
+            SendPieceOwnerJob::dispatch($batch_id,UserToken::getUser($token)->id ?? '0',$warehouseId,$ownerId,date("Y-m-d H:i:s"));
+//            (new WaveService())->sendOwnerPiece($batch_id,UserToken::getUser($token)->id ?? '0',$warehouseId,$ownerId,date("Y-m-d H:i:s"));
         }catch (\Exception $e){
             app('LogService')->log("二次分拣货主计件",  "上传失败", $batch_id.$warehouseId.$ownerId.date("Y-m-d H:i:s").$e->getMessage());
         }

+ 42 - 2
app/Http/Controllers/api/thirdPart/hengli/OrderIssueController.php

@@ -5,24 +5,64 @@ namespace App\Http\Controllers\api\thirdPart\hengli;
 
 
 use App\Http\Controllers\Controller;
+use App\OrderIssue;
+use App\OrderPackage;
 use App\Services\OrderIssueService;
 use App\Services\WorkOrderService;
+use App\WorkOrder;
 use Illuminate\Http\Request;
 
 class OrderIssueController extends Controller
 {
-    public function checkInterceptPackage(Request $request)
+    public function checkInterceptPackage(Request $request): array
     {
         /** @var WorkOrderService $workOrderService */
         $workOrderService = app(WorkOrderService::class);
         /** @var OrderIssueService $workOrderService */
         $orderIssueService = app(OrderIssueService::class);
         $logisticNumber = $request['expressCode'] ?? null;
-        if ($workOrderService->isIntercept($logisticNumber) || $workOrderService->isExists($logisticNumber)) {
+        if ($workOrderService->isIntercept($logisticNumber) || $orderIssueService->isExists($logisticNumber)) {
             // 显示在问题件已拦截
             $orderIssueService->intercept($logisticNumber);
             return ['success' => 'true','data'=> true];
         }
         return ['success' => 'true','data'=> false];
     }
+
+    public function interceptExpressCodes(): array
+    {
+        $interceptExpressCodes = [];
+
+        $orderIssueQuery = OrderIssue::query()
+            ->select("order_id")
+            ->where('order_issue_type_id',1)
+            ->where(function ($query) {
+                $query->whereNotIn('order_issues.final_status', ['已解决', '已归档'])
+                    ->orWhereNull('order_issues.final_status');
+            });
+
+        $orderPackages = OrderPackage::query()
+            ->select('logistic_number')
+            ->whereIn('order_id',$orderIssueQuery)
+            ->get();
+
+        foreach ($orderPackages as $orderPackage){
+            $interceptExpressCodes[] = $orderPackage->logistic_number;
+        }
+
+        $workOrderQuery = WorkOrder::query()
+            ->select("order_id")
+            ->where('order_issue_type_id',1)
+            ->where('status','!=',5);
+
+        $orderPackages = OrderPackage::query()
+            ->select('logistic_number')
+            ->whereIn('order_id',$workOrderQuery)
+            ->get();
+
+        foreach ($orderPackages as $orderPackage){
+            $interceptExpressCodes[] = $orderPackage->logistic_number;
+        }
+        return array_values(array_unique($interceptExpressCodes));
+    }
 }

+ 47 - 0
app/Jobs/SendPieceOwnerJob.php

@@ -0,0 +1,47 @@
+<?php
+
+namespace App\Jobs;
+
+use App\Services\WaveService;
+use App\WorkOrder;
+use Illuminate\Bus\Queueable;
+use Illuminate\Contracts\Queue\ShouldQueue;
+use Illuminate\Foundation\Bus\Dispatchable;
+use Illuminate\Queue\InteractsWithQueue;
+use Illuminate\Queue\SerializesModels;
+
+class SendPieceOwnerJob implements ShouldQueue
+{
+    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
+
+    private $batchId;
+    private $userId;
+    private $warehouseId;
+    private $ownerId;
+    private $date;
+    /**
+     * Create a new job instance.
+     *
+     * @return void
+     */
+    public function __construct($batch_id,$userId, $warehouseId, $ownerId, $date)
+    {
+        $this->batchId = $batch_id;
+        $this->userId = $userId;
+        $this->warehouseId = $warehouseId;
+        $this->ownerId = $ownerId;
+        $this->date = $date;
+    }
+
+    /**
+     * Execute the job.
+     *
+     * @return void
+     */
+    public function handle()
+    {
+        /** @var WaveService $service */
+        $service = app(WaveService::class);
+        $service->sendOwnerPiece($this->batchId,$this->userId,$this->warehouseId,$this->ownerId,$this->date);
+    }
+}

+ 1 - 0
routes/api/thirdPart/hengli.php

@@ -10,4 +10,5 @@ use Illuminate\Support\Facades\Route;
 Route::group(['prefix'=>'weight'],function(){
     Route::ANY('new', "PackageController@new_");        //称重上传
     Route::ANY('checkIntercept','OrderIssueController@checkInterceptPackage');
+    Route::ANY('intercept','OrderIssueController@interceptExpressCodes');
 });