|
@@ -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{
|