|
|
@@ -147,9 +147,12 @@ class ScreenService extends Service
|
|
|
$tmp_online = $online[$value['id']] ?? 0;
|
|
|
$tmp_coordinate = $gps[$value['id']] ?? 0;
|
|
|
$tmp_exception = $exception[$value['id']] ?? 0;
|
|
|
- $data['data'][$key]['is_online'] = Screen::$online[$tmp_online] ?? '';
|
|
|
- $data['data'][$key]['coordinate'] = Screen::$gps[$tmp_coordinate] ?? '';
|
|
|
- $data['data'][$key]['is_exception'] = Screen::$exception[$tmp_exception] ?? '';
|
|
|
+ $data['data'][$key]['is_online'] = $tmp_online;
|
|
|
+ $data['data'][$key]['coordinate'] = $tmp_coordinate;
|
|
|
+ $data['data'][$key]['is_exception'] = $tmp_exception;
|
|
|
+ $data['data'][$key]['is_online_name'] = Screen::$online[$tmp_online] ?? '';
|
|
|
+ $data['data'][$key]['coordinate_name'] = Screen::$gps[$tmp_coordinate] ?? '';
|
|
|
+ $data['data'][$key]['is_exception_name'] = Screen::$exception[$tmp_exception] ?? '';
|
|
|
}
|
|
|
|
|
|
return $data;
|
|
|
@@ -184,6 +187,7 @@ class ScreenService extends Service
|
|
|
->leftJoin('device as b','b.id','a.device_id')
|
|
|
->leftJoin('device_type as c','c.id','b.device_type_id')
|
|
|
->where('a.screen_id',$data['screen_id'])
|
|
|
+ ->where('a.del_time',0)
|
|
|
->select('a.id','b.id as device_id','b.title','b.code','b.gateway_id','b.device_type_id','b.remark','c.title as device_type_name');
|
|
|
|
|
|
$list = $this->limit($model,'',$data);
|
|
|
@@ -222,6 +226,8 @@ class ScreenService extends Service
|
|
|
if(empty($one)) return [false,'仓网关不存在!'];
|
|
|
if(empty($two)) return [false,'设备网关不存在!'];
|
|
|
if($one->gateway_id != $two->gateway_id) return [false,'设备网关与仓网关不一致!'];
|
|
|
+
|
|
|
+ return [true, ''];
|
|
|
}
|
|
|
|
|
|
public function screenRemoveDevice($data){
|
|
|
@@ -276,4 +282,54 @@ class ScreenService extends Service
|
|
|
|
|
|
return [true,['node_one' => $posts_a,'node_two'=>$posts_b,'node_three'=>$posts_c]];
|
|
|
}
|
|
|
+
|
|
|
+ public function screenHistoryList($data){
|
|
|
+ if(empty($data['screen_id'])) return [false,'请选择仓或台'];
|
|
|
+ if(empty($data['device_type_id'])) return [false,'设备类型不能为空'];
|
|
|
+ if($data['device_type_id'] == DeviceType::type_one && empty($data['type'])) return [false,'传感器类型时需传递TYPE'];
|
|
|
+ if(empty($data['time'][0]) || empty($data['time'][1])) return [false,'时间不能为空'];
|
|
|
+
|
|
|
+ //获取仓或台的设备ID
|
|
|
+ $device = ScreenDevice::where('del_time',0)
|
|
|
+ ->where('screen_id',$data['screen_id'])
|
|
|
+ ->select('device_id')
|
|
|
+ ->get()->toArray();
|
|
|
+ $device = array_column($device,'device_id');
|
|
|
+
|
|
|
+ //设备的分组信息 按照设备类型
|
|
|
+ $device = Device::whereIn('id',$device)
|
|
|
+ ->where('device_type_id',$data['device_type_id'])
|
|
|
+ ->select('code','device_type_id')
|
|
|
+ ->get()->toArray();
|
|
|
+
|
|
|
+ $time = $this->changeDateToTimeStampAboutRange($data['time']);
|
|
|
+ $model = SystemL::whereIn('device_no', array_column($device,'code'))
|
|
|
+ ->select('data_point_name','value','time','device_no')
|
|
|
+ ->orderBy('id','desc');
|
|
|
+ $model->where('time','>=',$time[0] * 1000);
|
|
|
+ $model->where('time','<',$time[1] * 1000);
|
|
|
+ if(! empty($data['type'])){
|
|
|
+ if($data['type'] == 1){
|
|
|
+ $model->where('data_point_name','LIKE', '%'. '温度' .'%');
|
|
|
+ }else{
|
|
|
+ $model->where('data_point_name','LIKE', '%'. '湿度' .'%');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $list = $this->limit($model,'',$data);
|
|
|
+ $list = $this->fillHistoryData($list);
|
|
|
+
|
|
|
+ return [true,$list];
|
|
|
+ }
|
|
|
+
|
|
|
+ public function fillHistoryData($data){
|
|
|
+ if(empty($data['data'])) return $data;
|
|
|
+
|
|
|
+ foreach ($data['data'] as $key => $value){
|
|
|
+ $time = $value['time'] / 1000;
|
|
|
+ $data['data'][$key]['time'] = date("Y-m-d H:i:s",$time);
|
|
|
+ }
|
|
|
+
|
|
|
+ return $data;
|
|
|
+ }
|
|
|
}
|