From 57237a5048358009d063c8c2a1071ea8592a916a Mon Sep 17 00:00:00 2001 From: Jing Li Date: Wed, 23 Nov 2022 20:55:48 +0800 Subject: [PATCH] Update --- .../Commands/SoilMonitoringLogFixCommand.php | 4 ++- .../WaterQualityMonitoringLogFixCommand.php | 34 ++++++++++++------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/app/Console/Commands/SoilMonitoringLogFixCommand.php b/app/Console/Commands/SoilMonitoringLogFixCommand.php index c0711de..2c91ff5 100644 --- a/app/Console/Commands/SoilMonitoringLogFixCommand.php +++ b/app/Console/Commands/SoilMonitoringLogFixCommand.php @@ -76,7 +76,9 @@ class SoilMonitoringLogFixCommand extends Command $log->save(); - $linkosDeviceLogService->handleSoilMonitoringDailyLog($device, $time); + if ($log->wasChanged()) { + $linkosDeviceLogService->handleSoilMonitoringDailyLog($device, $time); + } } catch (Throwable $e) { report($e); } diff --git a/app/Console/Commands/WaterQualityMonitoringLogFixCommand.php b/app/Console/Commands/WaterQualityMonitoringLogFixCommand.php index 5fb2c20..5dc94b1 100644 --- a/app/Console/Commands/WaterQualityMonitoringLogFixCommand.php +++ b/app/Console/Commands/WaterQualityMonitoringLogFixCommand.php @@ -45,10 +45,6 @@ class WaterQualityMonitoringLogFixCommand extends Command ->get(); foreach ($devices as $device) { - if (WaterQualityMonitoringLog::where('device_id', $device->id)->where('monitored_at', $time)->first()) { - continue; - } - $last = WaterQualityMonitoringLog::where('device_id', $device->id) ->where('monitored_at', $time->copy()->subHour()) ->first(); @@ -58,19 +54,31 @@ class WaterQualityMonitoringLogFixCommand extends Command } try { - WaterQualityMonitoringLog::create([ + $log = WaterQualityMonitoringLog::firstOrCreate([ 'device_id' => $device->id, - 'agricultural_base_id' => $device->agricultural_base_id, - 'chlorine' => $last->chlorine, - 'conductivity' => $last->conductivity, - 'oxygen' => $last->oxygen, - 'ph' => $last->ph, - 'temperature' => $last->temperature, - 'turbidity' => $last->turbidity, 'monitored_at' => $time, + ], [ + 'agricultural_base_id' => $device->agricultural_base_id, ]); - $linkosDeviceLogService->handleWaterQualityMonitoringDailyLog($device, $time); + foreach ([ + 'chlorine', + 'conductivity', + 'oxygen', + 'ph', + 'temperature', + 'turbidity', + ] as $key) { + if (is_null($log->{$key})) { + $log->{$key} = $last->{$key}; + } + } + + $log->save(); + + if ($log->wasChanged()) { + $linkosDeviceLogService->handleWaterQualityMonitoringDailyLog($device, $time); + } } catch (Throwable $e) { report($e); }