This commit is contained in:
chenbo 2024-02-20 15:22:16 +08:00
parent e6c36a5d60
commit ba9844d3c5
1 changed files with 55 additions and 16 deletions

View File

@ -98,8 +98,9 @@ class RemoteRequestLogic extends BaseLogic
public static function getAlarmData($deviceList = []) public static function getAlarmData($deviceList = [])
{ {
$list = [];
// 获取设备报警信息 // 获取设备报警信息
foreach ($deviceList as &$device) { foreach ($deviceList as $device) {
$device['alarm_value'] = ''; // 警告数据 $device['alarm_value'] = ''; // 警告数据
$device['alarm_time'] = ''; // 警告时间 $device['alarm_time'] = ''; // 警告时间
$device['alarm_resolution'] = ''; // 解决方案 $device['alarm_resolution'] = ''; // 解决方案
@ -109,15 +110,21 @@ class RemoteRequestLogic extends BaseLogic
continue; continue;
} }
$temp = self::requestAlarmData($device); $temp = self::requestAlarmData($device);
if (empty($temp)) { if (empty($temp['values'])) {
$list[] = $device;
continue; continue;
} }
$device['alarm_value'] = $temp[2];
$device['alarm_time'] = date('Y-m-d H:i:s', time()); // todo 对接接口字段 foreach ($temp['values'][4] as $key => $value) {
$device['alarm_reason'] = ''; // todo 对接接口字段 $device['alarm_value'] = $value;
$device['alarm_resolution'] = 'test'; // todo 对接接口字段 $device['alarm_time'] = date('Y-m-d H:i:s', $temp['timestamps'][$key]/1000);
$device['alarm_reason'] = $temp['values'][0][$key]; // todo 对接接口字段
$device['alarm_resolution'] = $temp['values'][2][$key]; // todo 对接接口字段
$list[] = $device;
} }
return $deviceList;
}
return $list;
} }
public static function requestAlarmData($device = []) public static function requestAlarmData($device = [])
@ -128,7 +135,7 @@ class RemoteRequestLogic extends BaseLogic
] ]
]); ]);
$monitor = json_decode($response->getContent(), true); $monitor = json_decode($response->getContent(), true);
return $monitor['data']['values']; return $monitor['data'];
} }
public static function getAlarmCount($deviceList = []) public static function getAlarmCount($deviceList = [])
@ -167,45 +174,77 @@ class RemoteRequestLogic extends BaseLogic
$datas = []; $datas = [];
// 空气温度 ambient_temperature // 空气温度 ambient_temperature
$ambientTemperatureDevice = Device::whereIn('id', $deviceIds)->where('monitor_item', 'ambient_temperature')->find(); $ambientTemperatureDevice = Device::whereIn('id', $deviceIds)->where('monitor_item', 'ambient_temperature,ambient_humidity')->find();
if (!empty($ambientTemperatureDevice)) { if (!empty($ambientTemperatureDevice)) {
$ambientTemperatureDevice['RangeMonitorData'] = self::requestRangeMonitorData($ambientTemperatureDevice); $rangeData = self::requestRangeMonitorData($ambientTemperatureDevice);
if (!empty($rangeData)) {
$ambientTemperatureDevice['RangeMonitorData'] = $rangeData[4];
} else {
$ambientTemperatureDevice['RangeMonitorData'] = [];
}
} else { } else {
$ambientTemperatureDevice['RangeMonitorData'] = []; $ambientTemperatureDevice['RangeMonitorData'] = [];
} }
// 空气湿度 ambient_humidity // 空气湿度 ambient_humidity
$ambientHumidityDevice = Device::whereIn('id', $deviceIds)->where('monitor_item', 'ambient_humidity')->find(); $ambientHumidityDevice = Device::whereIn('id', $deviceIds)->where('monitor_item', 'ambient_temperature,ambient_humidity')->find();
if (!empty($ambientHumidityDevice)) { if (!empty($ambientHumidityDevice)) {
$ambientHumidityDevice['RangeMonitorData'] = self::requestRangeMonitorData($ambientHumidityDevice); $rangeData = self::requestRangeMonitorData($ambientHumidityDevice);
if (!empty($rangeData)) {
$ambientHumidityDevice['RangeMonitorData'] = $rangeData[4];
} else {
$ambientHumidityDevice['RangeMonitorData'] = [];
}
} else { } else {
$ambientHumidityDevice['RangeMonitorData'] = []; $ambientHumidityDevice['RangeMonitorData'] = [];
} }
// 氮气 nitrogen // 氮气 nitrogen
$NDevice = Device::whereIn('id', $deviceIds)->where('monitor_item', 'nitrogen')->find(); $NDevice = Device::whereIn('id', $deviceIds)->where('monitor_item', 'nitrogen')->find();
if (!empty($NDevice)) { if (!empty($NDevice)) {
$NDevice['RangeMonitorData'] = self::requestRangeMonitorData($NDevice); $rangeData = self::requestRangeMonitorData($NDevice);
if (!empty($rangeData)) {
$NDevice['RangeMonitorData'] = $rangeData[4];
} else {
$NDevice['RangeMonitorData'] = [];
}
} else { } else {
$NDevice['RangeMonitorData'] = []; $NDevice['RangeMonitorData'] = [];
} }
// 防火 fireproof // 防火 fireproof
$fireproofDevice = Device::whereIn('id', $deviceIds)->where('monitor_item', 'fireproof')->find(); $fireproofDevice = Device::whereIn('id', $deviceIds)->where('monitor_item', 'fireproof')->find();
if (!empty($fireproofDevice)) { if (!empty($fireproofDevice)) {
$fireproofDevice['RangeMonitorData'] = self::requestRangeMonitorData($fireproofDevice); $rangeData = self::requestRangeMonitorData($fireproofDevice);
if (!empty($rangeData)) {
$fireproofDevice['RangeMonitorData'] = $rangeData[4];
} else { } else {
$fireproofDevice['RangeMonitorData'] = []; $fireproofDevice['RangeMonitorData'] = [];
} }
} else {
$fireproofDevice['RangeMonitorData'] = [];
}
// 甲烷 methane // 甲烷 methane
$methaneDevice = Device::whereIn('id', $deviceIds)->where('monitor_item', 'methane')->find(); $methaneDevice = Device::whereIn('id', $deviceIds)->where('monitor_item', 'methane')->find();
if (!empty($methaneDevice)) { if (!empty($methaneDevice)) {
$methaneDevice['RangeMonitorData'] = self::requestRangeMonitorData($methaneDevice); $rangeData = self::requestRangeMonitorData($methaneDevice);
if (!empty($rangeData)) {
$methaneDevice['RangeMonitorData'] = $rangeData[4];
} else { } else {
$methaneDevice['RangeMonitorData'] = []; $methaneDevice['RangeMonitorData'] = [];
} }
} else {
$methaneDevice['RangeMonitorData'] = [];
}
// 噪音 noise // 噪音 noise
$noiseDevice = Device::whereIn('id', $deviceIds)->where('monitor_item', 'noise')->find(); $noiseDevice = Device::whereIn('id', $deviceIds)->where('monitor_item', 'noise')->find();
if (!empty($noiseDevice)) { if (!empty($noiseDevice)) {
$noiseDevice['RangeMonitorData'] = self::requestRangeMonitorData($noiseDevice); $rangeData = self::requestRangeMonitorData($noiseDevice);
if (!empty($rangeData)) {
$noiseDevice['RangeMonitorData'] = $rangeData[4];
} else {
$noiseDevice['RangeMonitorData'] = [];
}
} else { } else {
$noiseDevice['RangeMonitorData'] = []; $noiseDevice['RangeMonitorData'] = [];
} }