Bladeren bron

stationTask完成标记

LD 5 jaren geleden
bovenliggende
commit
02bbc71830

+ 6 - 0
app/Services/ForeignHaiRoboticsService.php

@@ -26,6 +26,8 @@ class ForeignHaiRoboticsService
     private $stationTaskCommoditiesService;
     /** @var  $materialBoxService MaterialBoxService */
     private $materialBoxService;
+    /** @var  $stationTaskService StationTaskService */
+    private $stationTaskService;
     /** @var  $stationService StationService */
     private $stationService;
     public function __construct()
@@ -149,6 +151,10 @@ class ForeignHaiRoboticsService
             if($stationTaskMaterialBox_next)
                 $this->stationTaskCommoditiesService
                     ->markProcessing($stationTaskMaterialBox_next['stationTaskCommodities']);//因为上边商品任务被标记完成了,所以这里要将队列中找出正在处理的料箱对应的标记为“处理中”
+            if(!$stationTaskMaterialBox_next){
+                $this->instant($this->stationTaskService,'StationTaskService');
+                $this->stationTaskService->markProcessed($stationTaskMaterialBox['stationTask']);
+            }
             $this->stationService->broadcastBinMonitor($stationTaskMaterialBox['station_id'],$stationTaskMaterialBox['stationTask']);
             return true;
         }catch (\Exception $e){

+ 17 - 0
app/Services/StationTaskService.php

@@ -80,6 +80,14 @@ class StationTaskService
             ->whereIn('id',$ids)
             ->update(['status'=>'处理中']);
     }
+    function markProcessed_byIds($ids)
+    {
+        if(!$ids)$ids=[];
+        if(!is_array($ids))$ids=[$ids];
+        StationTask::query()
+            ->whereIn('id',$ids)
+            ->update(['status'=>'完成']);
+    }
 
     function markProcessing($stationTask_orCollection)
     {
@@ -90,6 +98,15 @@ class StationTaskService
                 data_get($stationTask_orCollection, '*.station_id')
             );
     }
+    function markProcessed($stationTask_orCollection)
+    {
+        if (get_class($stationTask_orCollection)==StationTask::class){
+            $stationTask_orCollection = collect([$stationTask_orCollection]);
+        }
+        $this->markProcessed_byIds(
+            data_get($stationTask_orCollection, '*.station_id')
+        );
+    }
 
 
 }

+ 1 - 1
laravel-echo-server.lock

@@ -1,3 +1,3 @@
 {
-	"process": 1392
+	"process": 18588
 }

+ 28 - 2
resources/views/station/monitor/show.blade.php

@@ -308,12 +308,35 @@
                 _listenBroadcast(){
                     initEcho();
                     window.Echo.channel(this.broadcastName).listen(this.channelName,(msg)=> {
-                        console.log(1231,msg)
                         let json = JSON.parse(msg.json);
                         console.log(json)
-                        this._refreshData(json);
+                        // this._refreshData(json);
                     });
                 },
+                // _refreshData(obj){
+                //     let task={};
+                //     task.taskCommodities = [];
+                //     task.sum = 0;
+                //     task.currentSum = 0;
+                //     task.currentCommodityIndex = "";
+                //     obj.station_task_commodities.forEach((taskCommodity,i)=> {
+                //         task.sum += Number(taskCommodity.amount);
+                //         if (taskCommodity.status === '完成') task.currentSum += Number(taskCommodity.amount);
+                //         if (taskCommodity.status === '处理中') task.currentCommodityIndex = i;
+                //         task.taskCommodities.push({
+                //             bg:this._setColor(taskCommodity.status),
+                //             amount:taskCommodity.amount,
+                //             binNumber:taskCommodity.bin_number,
+                //             name:taskCommodity.commodity?taskCommodity.commodity.name:'',
+                //             barcodes:taskCommodity.commodity?taskCommodity.commodity.barcodes:[],
+                //             materialBox:taskCommodity.material_box,
+                //         });
+                //     });
+                //     task.taskBatch=obj.station_task_batches[0];
+                //     setBarcode(task.taskBatch.batch.code,"#barcode",1,50,false);
+                //     console.log(task)
+                //     this.task = task;
+                // },
             },
             computed:{
                 task(){
@@ -384,6 +407,9 @@
                         if (typeof (item) === 'object' && item.status === '完成') {
                             return item.amount;
                         }
+                        if (typeof (item) === 'object') {
+                            return 0;
+                        }
                         if (taskCommodity.status === '完成') {
                             return item + taskCommodity.amount;
                         }