From 71f4247eceb8f3eba8bedd15043a76f7bc4f297d Mon Sep 17 00:00:00 2001 From: Jing Li Date: Wed, 23 Nov 2022 20:49:09 +0800 Subject: [PATCH] Update --- .../Commands/SoilMonitoringLogFixCommand.php | 30 +++++++++++-------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/app/Console/Commands/SoilMonitoringLogFixCommand.php b/app/Console/Commands/SoilMonitoringLogFixCommand.php index 3006454..c0711de 100644 --- a/app/Console/Commands/SoilMonitoringLogFixCommand.php +++ b/app/Console/Commands/SoilMonitoringLogFixCommand.php @@ -45,10 +45,6 @@ class SoilMonitoringLogFixCommand extends Command ->get(); foreach ($devices as $device) { - if (SoilMonitoringLog::where('device_id', $device->id)->where('monitored_at', $time)->first()) { - continue; - } - $last = SoilMonitoringLog::where('device_id', $device->id) ->where('monitored_at', $time->copy()->subHour()) ->first(); @@ -58,18 +54,28 @@ class SoilMonitoringLogFixCommand extends Command } try { - SoilMonitoringLog::create([ + $log = SoilMonitoringLog::firstOrCreate([ 'device_id' => $device->id, - 'agricultural_base_id' => $device->agricultural_base_id, - 'conductivity' => $last->conductivity, - 'humidity' => $last->humidity, - 'temperature' => $last->temperature, - 'n' => $last->n, - 'p' => $last->p, - 'k' => $last->k, 'monitored_at' => $time, + ], [ + 'agricultural_base_id' => $device->agricultural_base_id, ]); + foreach ([ + 'conductivity', + 'humidity', + 'temperature', + 'n', + 'p', + 'k', + ] as $key) { + if (is_null($log->{$key})) { + $log->{$key} = $last->{$key}; + } + } + + $log->save(); + $linkosDeviceLogService->handleSoilMonitoringDailyLog($device, $time); } catch (Throwable $e) { report($e);