Bladeren bron

提交以同步分支

Zhouzhendong 5 jaren geleden
bovenliggende
commit
efdfe5390a

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

@@ -4,6 +4,7 @@ namespace App\Http\Controllers;
 
 
 use App\Authority;
+use App\Batch;
 use App\Commodity;
 use App\CommodityBarcode;
 use App\Console\Commands\SyncWMSOrderTask;
@@ -14,6 +15,7 @@ use App\InventoryAccount;
 use App\LaborReport;
 use App\Log;
 use App\Logistic;
+use App\MaterialBox;
 use App\OracleActAllocationDetails;
 use App\OracleDOCOrderHeader;
 use App\OracleDocOrderPackingSummary;
@@ -41,11 +43,19 @@ use App\Services\OrderService;
 use App\Services\OrderTrackingOwnerService;
 use App\Services\OrderTrackingService;
 use App\Services\OwnerService;
+use App\Services\StationService;
 use App\Services\StoreService;
 use App\Services\WarehouseService;
+use App\Station;
+use App\StationTask;
+use App\StationTaskBatch;
+use App\StationTaskChildren;
+use App\StationTaskCommodity;
+use App\StationTaskMaterialBox;
 use App\User;
 use App\Warehouse;
 use Carbon\Carbon;
+use Faker\Provider\Barcode;
 use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Support\Facades\Auth;
 use Illuminate\Support\Facades\Cache;
@@ -91,10 +101,44 @@ class TestController extends Controller
             app(BatchUpdateService::class)->batchUpdate('inventory_accounts',$updateParams);
         }
     }
+    public function ter()
+    {
+        echo phpinfo();
+    }
     public static function zzd()
     {
-        $a = 1;
-        $test = $a->loadMissing(["taskCommodities.commodity.barcodes","taskBatches.batch","taskMaterialBoxes.box"]);
+        $task = factory(StationTask::class)->create();
+        $materialBox = factory(MaterialBox::class)->create();
+        $commodity = factory(\App\Commodity::class)->create([
+            "owner_id" => 1,
+        ]);
+        factory(CommodityBarcode::class,2)->create([
+            "commodity_id"=>$commodity->id
+        ]);
+        $taskCommodity = factory(StationTaskCommodity::class)->create([
+            'station_id' => 1,
+            'material_box_id' => $materialBox->id,
+            'commodity_id' => $commodity->id,
+            'order_id'=>1,
+        ]);
+        factory(StationTaskChildren::class)->create([
+            "station_task_id" => $task->id,
+            "station_task_table_type" => "station_task_commodities",
+            "station_task_table_id" => $taskCommodity->id,
+        ]);
+        $batch = factory(Batch::class)->create();
+        $taskBatch = factory(StationTaskBatch::class)->create([
+            'batch_id' => $batch->id,
+            'station_id' => 1,
+            'station_task_batch_type_id' => 1,
+        ]);
+        factory(StationTaskChildren::class)->create([
+            "station_task_id" => $task->id,
+            "station_task_table_type" => "station_task_batches",
+            "station_task_table_id" => $taskBatch->id,
+        ]);
+        $s = new StationService();
+        $s->broadcastBinMonitor(2,$task,$commodity->id);
     }
 
     public function updateLaborRemark(){

+ 2 - 4
app/Services/StationService.php

@@ -7,7 +7,6 @@ namespace App\Services;
 use App\Events\BroadcastToStation;
 use App\Station;
 use App\StationTask;
-use App\StationTaskCommodity;
 use App\StationType;
 use Exception;
 use Illuminate\Support\Facades\Cache;
@@ -33,9 +32,8 @@ class StationService
         broadcast(new BroadcastToStation($station_id,$json_data));
     }
 
-    function broadcastBinMonitor($station_id, StationTask $stationTask, int $currentStationTaskCommodity_id){
-        $stationTask->loadMissing(["taskCommodities.commodity.barcodes","taskBatches.batch","taskMaterialBoxes.box"]);
-        $stationTask->currentId = $currentStationTaskCommodity_id;
+    function broadcastBinMonitor($station_id, StationTask $stationTask){
+        $stationTask->loadMissing(["taskCommodities.commodity.barcodes","taskCommodities.materialBox","taskBatches.batch"/*,"taskMaterialBoxes.box"*/]);
         $stationTask->toJson();
         $this->broadcast($station_id, $stationTask->toJson());
         //...

+ 2 - 2
app/StationTask.php

@@ -6,7 +6,7 @@ use Illuminate\Database\Eloquent\Model;
 
 class StationTask extends Model
 {
-    protected $fillable = ['station_id', 'station_type_id'];
+    protected $fillable = ['status'];
 
 
     public function taskCommodities()
@@ -20,7 +20,7 @@ class StationTask extends Model
             ->where("station_task_table_type","station_task_batches");
     }
     public function taskMaterialBoxes()
-    {   //任务料箱 目前为单个,取值时应取第一个即可
+    {   //任务料箱
         return $this->belongsToMany(StationTaskMaterialBox::class,"station_task_children","station_task_id","station_task_table_id")
             ->where("station_task_table_type","station_task_material_boxes");
     }

+ 1 - 1
app/StationTaskBatch.php

@@ -6,7 +6,7 @@ use Illuminate\Database\Eloquent\Model;
 
 class StationTaskBatch extends Model
 {
-    protected $fillable=['batch_id','station_id','station_mission_batch_type_id','status'];
+    protected $fillable=['batch_id','station_id','station_task_batch_type_id','status'];
 
     public function batch()
     {   //波次

+ 15 - 0
app/StationTaskChildren.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace App;
+
+use Illuminate\Database\Eloquent\Model;
+
+class StationTaskChildren extends Model
+{
+    protected $table="station_task_children";
+    protected $fillable=[
+        "station_task_id",
+        "station_task_table_type",
+        "station_task_table_id",
+    ];
+}

+ 5 - 1
app/StationTaskCommodity.php

@@ -6,10 +6,14 @@ use Illuminate\Database\Eloquent\Model;
 
 class StationTaskCommodity extends Model
 {
-    protected $fillable= ['station_id','material_box_id','commodity_id','amount','order_id','status','station_id'];
+    protected $fillable= ['station_id','material_box_id','commodity_id','amount','order_id','status',"bin_number"];
 
     public function commodity()
     {   //商品
         return $this->hasOne(Commodity::class,"id","commodity_id");
     }
+    public function materialBox()
+    {   //料箱
+        return $this->hasOne(MaterialBox::class,"id","material_box_id");
+    }
 }

+ 7 - 0
bootstrap/cache/packages.php

@@ -103,4 +103,11 @@
       0 => 'Te7aHoudini\\LaravelTrix\\LaravelTrixServiceProvider',
     ),
   ),
+  'yajra/laravel-oci8' => 
+  array (
+    'providers' => 
+    array (
+      0 => 'Yajra\\Oci8\\Oci8ServiceProvider',
+    ),
+  ),
 );

+ 12 - 10
bootstrap/cache/services.php

@@ -35,11 +35,12 @@
     31 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
     32 => 'Overtrue\\LaravelPinyin\\ServiceProvider',
     33 => 'Te7aHoudini\\LaravelTrix\\LaravelTrixServiceProvider',
-    34 => 'App\\Providers\\AppServiceProvider',
-    35 => 'App\\Providers\\AuthServiceProvider',
-    36 => 'App\\Providers\\BroadcastServiceProvider',
-    37 => 'App\\Providers\\EventServiceProvider',
-    38 => 'App\\Providers\\RouteServiceProvider',
+    34 => 'Yajra\\Oci8\\Oci8ServiceProvider',
+    35 => 'App\\Providers\\AppServiceProvider',
+    36 => 'App\\Providers\\AuthServiceProvider',
+    37 => 'App\\Providers\\BroadcastServiceProvider',
+    38 => 'App\\Providers\\EventServiceProvider',
+    39 => 'App\\Providers\\RouteServiceProvider',
   ),
   'eager' => 
   array (
@@ -64,11 +65,12 @@
     18 => 'NunoMaduro\\Collision\\Adapters\\Laravel\\CollisionServiceProvider',
     19 => 'Overtrue\\LaravelPinyin\\ServiceProvider',
     20 => 'Te7aHoudini\\LaravelTrix\\LaravelTrixServiceProvider',
-    21 => 'App\\Providers\\AppServiceProvider',
-    22 => 'App\\Providers\\AuthServiceProvider',
-    23 => 'App\\Providers\\BroadcastServiceProvider',
-    24 => 'App\\Providers\\EventServiceProvider',
-    25 => 'App\\Providers\\RouteServiceProvider',
+    21 => 'Yajra\\Oci8\\Oci8ServiceProvider',
+    22 => 'App\\Providers\\AppServiceProvider',
+    23 => 'App\\Providers\\AuthServiceProvider',
+    24 => 'App\\Providers\\BroadcastServiceProvider',
+    25 => 'App\\Providers\\EventServiceProvider',
+    26 => 'App\\Providers\\RouteServiceProvider',
   ),
   'deferred' => 
   array (

File diff suppressed because it is too large
+ 402 - 113
composer.lock


+ 13 - 0
database/factories/BarcodeFactory.php

@@ -0,0 +1,13 @@
+<?php
+
+/** @var \Illuminate\Database\Eloquent\Factory $factory */
+
+use App\CommodityBarcode;
+use Faker\Generator as Faker;
+
+$factory->define(CommodityBarcode::class, function (Faker $faker) {
+    return [
+        'code' => md5(\Illuminate\Support\Str::random(8)).date('Ymd'),
+        'commodity_id'=>factory(\App\Commodity::class),
+    ];
+});

+ 4 - 1
database/factories/BatchFactory.php

@@ -7,6 +7,9 @@ use Faker\Generator as Faker;
 
 $factory->define(Batch::class, function (Faker $faker) {
     return [
-        //
+        'code' => \Illuminate\Support\Str::random(8).md5(date('Ymd')),
+        'type' => "无",
+        'wms_created_at' => $faker->dateTime,
+        "remark" => \Illuminate\Support\Str::random(20),
     ];
 });

+ 1 - 1
database/factories/MaterialBoxFactory.php

@@ -7,6 +7,6 @@ use Faker\Generator as Faker;
 
 $factory->define(MaterialBox::class, function (Faker $faker) {
     return [
-        //
+        'code'=>md5(\Illuminate\Support\Str::random(5)).date('Ymd')
     ];
 });

+ 16 - 0
database/factories/StationTaskBatchFactory.php

@@ -0,0 +1,16 @@
+<?php
+
+/** @var \Illuminate\Database\Eloquent\Factory $factory */
+
+use App\StationTaskBatch;
+use Faker\Generator as Faker;
+
+$factory->define(StationTaskBatch::class, function (Faker $faker) {
+    $status = ['待处理','挂起','处理中','完成','异常','取消'];
+    return [
+        'batch_id' => factory(\App\Batch::class),
+        'station_id' => factory(\App\Station::class),
+        'station_task_batch_type_id' => factory(\App\StationTaskBatchType::class),
+        "status"=>$status[array_rand($status)],
+    ];
+});

+ 14 - 0
database/factories/StationTaskChildrenFactory.php

@@ -0,0 +1,14 @@
+<?php
+
+/** @var \Illuminate\Database\Eloquent\Factory $factory */
+
+use App\StationTaskChildren;
+use Faker\Generator as Faker;
+
+$factory->define(StationTaskChildren::class, function (Faker $faker) {
+    return [
+        "station_task_id" => factory(\App\StationTask::class),
+        "station_task_table_type" => \Illuminate\Support\Str::random(5),
+        "station_task_table_id" => rand(1,5),
+    ];
+});

+ 19 - 0
database/factories/StationTaskCommodityFactory.php

@@ -0,0 +1,19 @@
+<?php
+
+/** @var \Illuminate\Database\Eloquent\Factory $factory */
+
+use App\StationTaskCommodity;
+use Faker\Generator as Faker;
+
+$factory->define(StationTaskCommodity::class, function (Faker $faker) {
+    $status = ['待处理','挂起','处理中','完成','异常','取消'];
+    return [
+        'station_id' => factory(\App\Station::class),
+        'material_box_id' => factory(\App\MaterialBox::class),
+        'commodity_id' => factory(\App\Commodity::class),
+        'amount'=>rand(1,1000),
+        "bin_number"=>rand(1,24),
+        'order_id'=>factory(\App\Order::class),
+        "status"=>$status[array_rand($status)],
+    ];
+});

+ 2 - 1
database/factories/StationTaskFactory.php

@@ -6,7 +6,8 @@ use App\StationTask;
 use Faker\Generator as Faker;
 
 $factory->define(StationTask::class, function (Faker $faker) {
+    $status = ['待处理','挂起','处理中','完成','异常','取消'];
     return [
-        //
+        "status"=>$status[array_rand($status)],
     ];
 });

+ 0 - 3
laravel-echo-server.lock

@@ -1,3 +0,0 @@
-{
-	"process": 9872
-}

+ 25 - 11
resources/views/station/monitor/show.blade.php

@@ -35,7 +35,7 @@
                         </div>
                         <div class="row">
                             <div class="col py-3 h4">
-                                料箱号:<b>@{{ task.taskMaterialBox.materialBox.code }}</b>
+                                料箱号:<b>@{{ task.currentCommodityIndex ? task.taskCommodities[task.currentCommodityIndex]['materialBox']['code'] : '' }}</b>
                             </div>
                         </div>
                         <div class="row pt-2">
@@ -72,7 +72,7 @@
                                     </tr>
                                     <tr class="text-muted" v-for="(taskCommodity,i) in task.taskCommodities">
                                         <td>@{{ i+1 }}</td>
-                                        <td>@{{ taskCommodity.commodityName }}</td>
+                                        <td>@{{ taskCommodity.name }}</td>
                                         <td>@{{ taskCommodity.amount }}</td>
                                         <td><small v-for="barcode in taskCommodity.barcodes">@{{ barcode.code }}</small><br></td>
                                     </tr>
@@ -95,19 +95,15 @@
                 broadcastName : "{{config('database.redis.options.prefix').'presence-station-'.$station->id}}",
                 channelName : ".App\\Events\\BroadcastToStation",
                 task : {
-                    materialBoxNumber : "",
                     currentCommodityIndex : "",
-                    taskCommodities:[],
+                    taskCommodities:[
+                        {amount:"",binNumber:"",name:"",barcodes:[]},
+                    ],
                     taskBatch:{
                         batch:{
                             code:"",
                         },
                     },
-                    taskMaterialBox:{
-                        materialBox:{
-                            code:""
-                        },
-                    },
                     wall:{},
                     box:{},
                 },
@@ -126,7 +122,7 @@
                 $('.body').on('mouseenter', function () {
                     $('.navbar,.nav1,.nav2').hide();
                 });
-                //this._broadcast();
+                this._broadcast();
                 this._renderingWall(2,2,6);
                 this._renderingBox(2,4);
                 setBarcode("W201209000056","#barcode",2,50,false);
@@ -135,7 +131,8 @@
                 _broadcast(){
                     initEcho();
                     window.Echo.channel(this.broadcastName).listen(this.channelName,(msg)=> {
-
+                        let json = JSON.parse(msg.json);
+                        this._refreshData(json);
                     });
                 },
                 _changeTask(){
@@ -143,6 +140,23 @@
                 },
                 _replaceTask(){
 
+                },
+                _refreshData(obj){
+                    let task={};
+                    task.taskCommodities = [];
+                    task.sum = 0;
+                    task.currentSum = 0;
+                    task.currentCommodityIndex = "";
+                    obj.task_commodities.forEach(function (taskCommodity) {
+                        task.taskCommodities.push({
+                            amount:taskCommodity.amount,
+                            binNumber:taskCommodity.binNumber,
+                            name:taskCommodity.commodity?taskCommodity.commodity.name:'',
+                            barcodes:taskCommodity.commodity?taskCommodity.commodity.barcodes:[],
+                        });
+                    });
+                    task.taskBatch=obj.task_batches.length>0?obj.task_batches[0]:{};
+                    this.task = task;
                 },
                 //渲染墙格口
                 _renderingWall(amount, row, column){

Some files were not shown because too many files changed in this diff