Forráskód Böngészése

调整插入的数据

cqpCow 1 éve
szülő
commit
e6d06b90c9
2 módosított fájl, 32 hozzáadás és 17 törlés
  1. 8 4
      app/Service/ScreenService.php
  2. 24 13
      app/Service/SystemlService.php

+ 8 - 4
app/Service/ScreenService.php

@@ -134,18 +134,22 @@ class ScreenService extends Service
         if(empty($data['data'])) return $data;
 
         $screen_id = array_column($data['data'],'id');
-        $gateway_id = ScreenGateway::whereIn('screen_id',$screen_id)
+        $gateway = ScreenGateway::whereIn('screen_id',$screen_id)
             ->where('del_time',0)
-            ->pluck('screen_id','gateway_id')
+            ->select('screen_id','gateway_id')
+            ->get()
             ->toArray();
         //获取仓是否在线离线状态
-        $online = SystemlService::getIsOnlineStatus($gateway_id);
+        $online = SystemlService::getIsOnlineStatus($gateway);
         //获取Gps信号判断状态
         $gps = SystemlService::getGpsStatus($screen_id);
         //获取是否异常状态判断
         $exception = SystemlService::getExceptionStatus($screen_id);
 
-        $g_map = array_flip($gateway_id);
+        $g_map = [];
+        foreach ($gateway as $value){
+            $g_map[$value['screen_id']] = $value['gateway_id'];
+        }
         foreach ($data['data'] as $key => $value){
             $data['data'][$key]['gateway_id'] = $g_map[$value['id']] ?? 0;
             $tmp_online = $online[$value['id']] ?? 0;

+ 24 - 13
app/Service/SystemlService.php

@@ -47,24 +47,34 @@ class SystemlService extends Service
         if(empty($map)) return [];
 
         //仓是否在线
-        $result = [];
+        $result = $screen_id = $gateway = $tmp = [];
         foreach ($map as $value){
-            $result[$value] = 0;
+            $result[$value['screen_id']] = 0;
+//            $gateway[] = $value['gateway_id'];
+//            $tmp[$value['screen_id']] = $value['gateway_id'];
+            $screen_id[] = $value['screen_id'];
         }
-
+;
         //设备 和 仓的关系
-        $return = [];
-        $device = Device::where('del_time',0)
-            ->whereIn('gateway_id',array_keys($map))
-            ->select('code','gateway_id')->get()->toArray();
-        foreach ($device as $value){
-            if(isset($map[$value['gateway_id']])){
-                $return[$value['code']] = $map[$value['gateway_id']];
-            }
-        }
+        $return = ScreenDevice::from('screen_device as a')
+            ->leftJoin('device as b','b.id','a.device_id')
+            ->whereIn('a.screen_id',$screen_id)
+            ->where('a.del_time',0)
+            ->pluck('a.screen_id','b.code')
+            ->toArray();
+//        $device = Device::where('del_time',0)
+//            ->whereIn('gateway_id',$gateway)
+//            ->select('code','gateway_id')->get()->toArray();dump($tmp);die;
+//        foreach ($device as $value){
+//            foreach ($tmp as $k_screen_id => $v){
+//                if($value['gateway_id'] == $v){
+//                    $return[$value['code']] = $k_screen_id;
+//                }
+//            }
+//        }
 
         //获取最新设备的数据
-        $data = self::getLastData(array_column($device,'code'));
+        $data = self::getLastData(array_keys($return));
         foreach ($data as $key => $value){
             if(isset($return[$key])){
                 $result[$return[$key]] = 1;
@@ -103,6 +113,7 @@ class SystemlService extends Service
                     //计算偏差值
                     try {
                         $meter = self::calculateDistance($tmp_coordinate,$value['value']);
+
                         if($meter > 200){
                             $result[$tmp['screen_id']] = 2;
                         }else{