diff --git a/Service/AlarmService.cs b/Service/AlarmService.cs index b57e374..de34ec1 100644 --- a/Service/AlarmService.cs +++ b/Service/AlarmService.cs @@ -47,9 +47,14 @@ namespace LY.App.Service await _redisService.SetAsync(key, deviceinfo, TimeSpan.FromDays(1)); } var entity = input.data.Adapt>(); - entity = entity.Where(s => checkDistance(s.drone_lat, s.drone_lon, deviceinfo.Lat, deviceinfo.Lon) == true).ToList(); if (entity.Any()) { + var O4entity = entity.Where(s => s.device_type == "O4" || s.serial_number == "O4"); + entity = entity.Where(s => checkDistance(s.drone_lat, s.drone_lon, deviceinfo.Lat, deviceinfo.Lon) == true).ToList(); + if (O4entity.Any()) + { + entity.AddRange(O4entity); + } foreach (var item in entity) { item.BatchId = await GetBatId(item.serial_number); @@ -109,6 +114,7 @@ namespace LY.App.Service /// private bool checkDistance(double lat, double lon, double d_lat, double d_lon) { + if (lat == 0 || lon == 0) return false; var maxDistance = Convert.ToDouble(_config["MaxDistance"]); var distance = GisHelper.HaversineDistance(lat, lon, d_lat, d_lon); return distance < maxDistance;