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

设备上下线功能,接口修复

Zhouzhendong 6 лет назад
Родитель
Сommit
232f88f584

+ 2 - 0
app/Http/Controllers/TestController.php

@@ -6,8 +6,10 @@ namespace App\Http\Controllers;
 use App\Batch;
 use App\Events\CancelOrder;
 use App\Events\WmsReceiveNewEvent;
+use App\Jobs\MeasuringMachineQueue;
 use App\Jobs\ProcessReceiveCombined;
 use App\Logistic;
+use App\MeasuringMachine;
 use App\Order;
 use App\Package;
 use App\Rejected;

+ 1 - 1
app/Http/Controllers/api/thirdPart/flux/PackageController.php

@@ -37,7 +37,7 @@ class PackageController extends Controller
                 $package->owner_id=$owner->id;
                 $packagePaperBox=new Package();
                 $paperBox_id=$packagePaperBox->checkPaperBox($package->length,$package->width,$package->height,$owner->id);
-                $package->paperBox_id=$paperBox_id;
+                if ($paperBox_id) $package->paperBox_id=$paperBox_id;
             }else{
                 $package->status='记录异常';
             }

+ 5 - 0
app/Http/Controllers/api/thirdPart/weight/PackageController.php

@@ -5,6 +5,7 @@ namespace App\Http\Controllers\Api\thirdPart\weight;
 use App\Events\WeightEvent;
 use App\Http\Controllers\Controller;
 use App\Http\Controllers\LogisticNumberFeatureController;
+use App\Jobs\MeasuringMachineQueue;
 use App\Jobs\WeightQueue;
 use App\MeasuringMachine;
 use App\Package;
@@ -42,6 +43,8 @@ class PackageController extends Controller
             $measuringMachineStatus=new MeasuringMachine();
             $measuringMachineStatus->changeStatus($measuringMachine);
         }
+        $measuringMachine->touch();
+        MeasuringMachineQueue::dispatch($measuringMachine)->delay(\Carbon\Carbon::now()->addMinutes(30));
 
         $package=Package::where('logistic_number',$request['barcode'])->first();
         if (isset($request['length'])&&isset($request['width'])&&isset($request['height'])){
@@ -143,6 +146,8 @@ class PackageController extends Controller
             ]);
             if ($logistic)$createPackage->logistic_id=$logistic->id;
             if ($createPackage->save()){
+                $measuringMachine->touch();
+                MeasuringMachineQueue::dispatch($measuringMachine)->delay(\Carbon\Carbon::now()->addMinutes(30));
                 WeightQueue::dispatch($createPackage)->delay(Carbon::now()->addMinutes(1440));
                 $response=["msg"=>"保存成功",
                     "code"=>200,

+ 52 - 0
app/Jobs/MeasuringMachineQueue.php

@@ -0,0 +1,52 @@
+<?php
+
+namespace App\Jobs;
+
+use App\Events\WeightEvent;
+use App\MeasuringMachine;
+use App\Package;
+use Carbon\Carbon;
+use Illuminate\Bus\Queueable;
+use Illuminate\Queue\SerializesModels;
+use Illuminate\Queue\InteractsWithQueue;
+use Illuminate\Contracts\Queue\ShouldQueue;
+use Illuminate\Foundation\Bus\Dispatchable;
+
+class MeasuringMachineQueue implements ShouldQueue
+{
+    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
+
+    protected $measuringMachine;
+    /**
+     * Create a new job instance.
+     *
+     * @param MeasuringMachine$measuringMachine
+     *
+     * @return void
+     */
+    public function __construct(MeasuringMachine $measuringMachine)
+    {
+        $this->measuringMachine=$measuringMachine;
+    }
+
+    /**
+     * Execute the job.
+     *
+     * @return void
+     */
+    public function handle()
+    {
+        if ($this->measuringMachine->updated_at<Carbon::now()->subMinutes(30)){
+            $this->measuringMachine->status="离线";
+            $this->measuringMachine->save();
+            $package=Package::with('owner','paperBox','measuringMachine')->
+            where('measuring_machine_id',$this->measuringMachine->id)->orderBy('id','DESC')->first();
+            if (!$package){
+                $package=new Package();
+                if ($this->measuringMachine)$package->measuringMachine=$this->measuringMachine;
+            }
+            event(new WeightEvent($package));
+        }
+    }
+
+}

+ 8 - 0
app/MeasuringMachine.php

@@ -2,6 +2,7 @@
 
 namespace App;
 
+use App\Events\WeightEvent;
 use Illuminate\Database\Eloquent\Model;
 
 class MeasuringMachine extends Model
@@ -15,5 +16,12 @@ class MeasuringMachine extends Model
     public function changeStatus(MeasuringMachine $measuringMachine){
         $measuringMachine->status='在线';
         $measuringMachine->save();
+        /*$package=Package::with('owner','paperBox','measuringMachine')->
+        where('measuring_machine_id',$measuringMachine->id)->orderBy('id','DESC')->first();
+        if (!$package){
+            $package=new Package();
+            if ($measuringMachine)$package->measuringMachine=$measuringMachine;
+        }
+        event(new WeightEvent($package));*/
     }
 }

+ 35 - 0
database/migrations/2020_03_03_094732_create_failed_jobs_table.php

@@ -0,0 +1,35 @@
+<?php
+
+use Illuminate\Support\Facades\Schema;
+use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Database\Migrations\Migration;
+
+class CreateFailedJobsTable extends Migration
+{
+    /**
+     * Run the migrations.
+     *
+     * @return void
+     */
+    public function up()
+    {
+        Schema::create('failed_jobs', function (Blueprint $table) {
+            $table->bigIncrements('id');
+            $table->text('connection');
+            $table->text('queue');
+            $table->longText('payload');
+            $table->longText('exception');
+            $table->timestamp('failed_at')->useCurrent();
+        });
+    }
+
+    /**
+     * Reverse the migrations.
+     *
+     * @return void
+     */
+    public function down()
+    {
+        Schema::dropIfExists('failed_jobs');
+    }
+}

+ 3 - 2
tests/webApi/flux.http

@@ -5,10 +5,11 @@
 ## * 'ptr' and 'ptrp' create a POST request with a simple or parameter-like body;
 ## * 'mptr' and 'fptr' create a POST request to submit a form with a text or file field (multipart/form-data);
 
-POST http://bswas/api/thirdPart/flux/package/new
+POST https://testwas.baoshi56.com/api/thirdPart/flux/package/new
 Content-Type: application/json
 
-{"request":{"TASKID":"ad5","Orderno":"ad5","palletid":"ad5","SOReference5":"ad5","Customer":"BOAO","Consigneename":"22","CarrierID":"1","USERDEFINE1":"TESTFLUX","USERDEFINE2":null,"USERDEFINE3":null}}
+{"request":{"TASKID":"3509760355826","Orderno":"SO200302002282","palletid":"3509760355826","SOReference5":"3509760355826",
+  "Customer":"BILI","Consigneename":"吴凡","CarrierID":"YUNDA","USERDEFINE1":"W200302000204","USERDEFINE2":"09.[BILI]截单波次","USERDEFINE3":null}}
 
 ###