调整设备数据6小时

dev
vine_liutk 2022-11-07 09:57:00 +08:00
parent 6cc61656cd
commit 153e830ed3
1 changed files with 17 additions and 13 deletions

View File

@ -116,11 +116,12 @@ class DeviceController extends Controller
$data = $log->toArray();
break;
case DeviceType::Soil://土壤设备
//当天
$dataList = SoilMonitoringLog::where('device_id', $deviceId)->whereDate('monitored_at', now())->get()->keyBy('monitored_at')->toArray();
//当前时间往前推6个小时;
$startTime = now()->subHours(6);
$dataList = SoilMonitoringLog::where('device_id', $deviceId)->where('monitored_at', '>=', $startTime)->get()->keyBy('monitored_at')->toArray();
$data = [];
for ($i = 0; $i < 24; $i++) {
$_key = date('Y-m-d').' '.str_pad($i, 2, '0', STR_PAD_LEFT).':00:00';
for ($i = 5; $i >= 0; $i--) {
$_key = now()->subHours($i)->format('Y-m-d H').':00:00';
$data[$_key] = null;
if (isset($dataList[$_key])) {
$data[$_key] = $dataList[$_key][$deviceColumn] ?? null;
@ -129,10 +130,11 @@ class DeviceController extends Controller
break;
case DeviceType::WaterQuality://水质设备
//当天
$dataList = WaterQualityMonitoringLog::where('device_id', $deviceId)->whereDate('monitored_at', now())->get()->keyBy('monitored_at')->toArray();
$startTime = now()->subHours(6);
$dataList = WaterQualityMonitoringLog::where('device_id', $deviceId)->where('monitored_at', '>=', $startTime)->get()->keyBy('monitored_at')->toArray();
$data = [];
for ($i = 0; $i < 24; $i++) {
$_key = date('Y-m-d').' '.str_pad($i, 2, '0', STR_PAD_LEFT).':00:00';
for ($i = 5; $i >= 0; $i--) {
$_key = now()->subHours($i)->format('Y-m-d H').':00:00';
$data[$_key] = null;
if (isset($dataList[$_key])) {
$data[$_key] = $dataList[$_key][$deviceColumn] ?? null;
@ -167,7 +169,8 @@ class DeviceController extends Controller
$data = DeviceResource::collection($deviceData);
break;
case DeviceType::Soil->value:
$dataList = SoilMonitoringLog::where('agricultural_base_id', $baseId)->whereDate('monitored_at', now())->get()->groupBy('device_id');
$startTime = now()->subHours(6);
$dataList = SoilMonitoringLog::where('agricultural_base_id', $baseId)->where('monitored_at', '>=', $startTime)->get()->groupBy('device_id');
foreach ($deviceData as $device) {
$_dataList = $dataList->get($device->id);
@ -175,8 +178,8 @@ class DeviceController extends Controller
if ($_dataList) {
$_dataList = $_dataList->keyBy('monitored_at')->toArray();
}
for ($i = 0; $i < 24; $i++) {
$_key = date('Y-m-d').' '.str_pad($i, 2, '0', STR_PAD_LEFT).':00:00';
for ($i = 5; $i >= 0; $i--) {
$_key = now()->subHours($i)->format('Y-m-d H').':00:00';
$data[$device->monitoring_point][$_key] = null;
if (isset($_dataList[$_key])) {
$data[$device->monitoring_point][$_key] = $_dataList[$_key][$deviceColumn] ?? null;
@ -185,7 +188,8 @@ class DeviceController extends Controller
}
break;
case DeviceType::WaterQuality->value:
$dataList = WaterQualityMonitoringLog::where('agricultural_base_id', $baseId)->whereDate('monitored_at', now())->get()->groupBy('device_id');
$startTime = now()->subHours(6);
$dataList = WaterQualityMonitoringLog::where('agricultural_base_id', $baseId)->where('monitored_at', '>=', $startTime)->get()->groupBy('device_id');
foreach ($deviceData as $device) {
$_dataList = $dataList->get($device->id);
@ -193,8 +197,8 @@ class DeviceController extends Controller
if ($_dataList) {
$_dataList = $_dataList->keyBy('monitored_at')->toArray();
}
for ($i = 0; $i < 24; $i++) {
$_key = date('Y-m-d').' '.str_pad($i, 2, '0', STR_PAD_LEFT).':00:00';
for ($i = 5; $i >= 0; $i--) {
$_key = now()->subHours($i)->format('Y-m-d H').':00:00';
$data[$device->monitoring_point][$_key] = null;
if (isset($_dataList[$_key])) {
$data[$device->monitoring_point][$_key] = $_dataList[$_key][$deviceColumn] ?? null;