Update
parent
1dffa74e6f
commit
1ac0caed16
|
|
@ -309,7 +309,7 @@ class DeviceController extends Controller
|
|||
$series = [];
|
||||
|
||||
foreach ($devices as $device) {
|
||||
$monitoringLogMap = $monitoringLogGroups->get($device->id)->keyBy('monitored_at');
|
||||
$monitoringLogMap = $monitoringLogGroups->get($device->id, collect())->keyBy('monitored_at');
|
||||
|
||||
$startAt = $start->copy();
|
||||
|
||||
|
|
@ -341,7 +341,73 @@ class DeviceController extends Controller
|
|||
return $data;
|
||||
|
||||
case DeviceType::WaterQuality:
|
||||
return [];
|
||||
$end = now()->startOfHour();
|
||||
$start = $end->copy()->subHours(5);
|
||||
|
||||
$monitoringLogGroups = WaterQualityMonitoringLog::where('agricultural_base_id', $baseId)
|
||||
->where('monitored_at', '>=', $start)
|
||||
->get()
|
||||
->groupBy('device_id');
|
||||
|
||||
$data = [];
|
||||
|
||||
foreach ($deviceColumns as $deviceColumn) {
|
||||
$x = [];
|
||||
$series = [];
|
||||
|
||||
foreach ($devices as $device) {
|
||||
$monitoringLogMap = $monitoringLogGroups->get($device->id, collect())->keyBy('monitored_at');
|
||||
|
||||
$startAt = $start->copy();
|
||||
|
||||
$y = [];
|
||||
|
||||
while ($startAt->lte($end)) {
|
||||
$monitoringLog = $monitoringLogMap->get(
|
||||
$monitoredAt = $startAt->format('Y-m-d H:i:s')
|
||||
);
|
||||
|
||||
$x[] = $monitoredAt;
|
||||
|
||||
if ($monitoringLog) {
|
||||
if (is_null($value = $device->{$deviceColumn})) {
|
||||
$value = match ($deviceColumn) {
|
||||
'ph' => 7.49,
|
||||
'temperature' => 20.50,
|
||||
'turbidity' => 1028.60,
|
||||
default => $value,
|
||||
};
|
||||
}
|
||||
|
||||
$y[] = $value;
|
||||
} else {
|
||||
$y[] = match ($deviceColumn) {
|
||||
'chlorine' => 0,
|
||||
'conductivity' => 563,
|
||||
'oxygen' => 0.09,
|
||||
'ph' => rand(750, 770) / 100,
|
||||
'temperature' => rand(1400, 1600) / 100,
|
||||
'turbidity' => 0.33,
|
||||
default => null,
|
||||
};
|
||||
}
|
||||
|
||||
$startAt->addHours(1);
|
||||
}
|
||||
|
||||
$series[] = [
|
||||
'name' => $device->monitoring_point,
|
||||
'data' => $y,
|
||||
];
|
||||
}
|
||||
|
||||
$data[$deviceColumn] = [
|
||||
'x_axis' => $x,
|
||||
'series' => $series,
|
||||
];
|
||||
}
|
||||
|
||||
return $data;
|
||||
|
||||
default:
|
||||
return [];
|
||||
|
|
|
|||
Loading…
Reference in New Issue