get(); // 物联平台目前只有水质监测设备和气象监测设备 LinkosDeviceLog::orderBy('reported_at', 'asc')->lazy()->each(function ($log) use ($devices, $linkosDeviceLogService) { if (empty($log->data)) { return; } foreach ($devices as $device) { if ($device->sn !== $log->device_id) { continue; } match ($device->type) { DeviceType::Soil => $linkosDeviceLogService->handleSoilMonitoringLog($device, $log->data, $log->reported_at), DeviceType::Meteorological => $linkosDeviceLogService->handleMeteorologicalMonitoringLog($device, $log->data, $log->reported_at), DeviceType::WaterQuality => $linkosDeviceLogService->handleWaterQualityMonitoringLog($device, $log->data, $log->reported_at), }; } }); $now = now(); $date = Carbon::parse('2022-06-01'); while ($date->lt($now)) { foreach ($devices as $device) { match ($device->type) { DeviceType::Soil => $linkosDeviceLogService->handleSoilMonitoringDailyLog($device, $date), DeviceType::Meteorological => $linkosDeviceLogService->handleMeteorologicalMonitoringDailyLog($device, $date), DeviceType::WaterQuality => $linkosDeviceLogService->handleWaterQualityMonitoringDailyLog($device, $date), }; } $date->addDay(); } return Command::SUCCESS; } }