diff --git a/Service/AlarmService.cs b/Service/AlarmService.cs index 6d9cc03..8f45631 100644 --- a/Service/AlarmService.cs +++ b/Service/AlarmService.cs @@ -52,10 +52,15 @@ namespace LY.App.Service { // 排除掉不在范围内的报警信息 var O4entity = entity.Where(s => s.device_type == "O4" || s.serial_number == "O4" || s.device_type == "UAV" || !string.IsNullOrEmpty(s.device_type)); - 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 O4entity) + { + if (!entity.Exists(s => s.serial_number == item.serial_number)) + { + entity.Add(item); + } + } } if (entity.Any()) { @@ -423,12 +428,12 @@ namespace LY.App.Service var pageitem = await _db.Ado.SqlQueryAsync(string.Format(coutsql, tablesql) + string.Format(page, tablesql, (input.pageNum - 1) * input.pageSize, input.pageSize)); var temp = await _db.Queryable() - .Where(s => pageitem.Item2.Contains(s.BatchId)).SplitTable().Select(s => new { s.BatchId, s.freq, s.Id,s.positionId,s.PostionName,s.alarmLevel, s.device_type }).ToListAsync(); + .Where(s => pageitem.Item2.Contains(s.BatchId)).SplitTable().Select(s => new { s.BatchId, s.freq, s.Id, s.positionId, s.PostionName, s.alarmLevel, s.device_type }).ToListAsync(); var query = await _db.Queryable() .Where(s => pageitem.Item2.Contains(s.BatchId)).SplitTable() - .GroupBy(s => new { s.BatchId, s.serial_number}) + .GroupBy(s => new { s.BatchId, s.serial_number }) .Select(st => new AlarmRepDto { batchId = st.BatchId.ToString(), @@ -444,7 +449,7 @@ namespace LY.App.Service { s.duration = s.duration == 0 ? 1 : s.duration; s.Frequency = temp.Where(m => m.BatchId == long.Parse(s.batchId)).OrderByDescending(o => o.Id).FirstOrDefault().freq; - s.positionId=temp.Where(m => m.BatchId == long.Parse(s.batchId)).OrderByDescending(o => o.Id).FirstOrDefault().positionId; + s.positionId = temp.Where(m => m.BatchId == long.Parse(s.batchId)).OrderByDescending(o => o.Id).FirstOrDefault().positionId; s.positionName = temp.Where(m => m.BatchId == long.Parse(s.batchId)).OrderByDescending(o => o.Id).FirstOrDefault().PostionName; s.alarmLevel = temp.Where(m => m.BatchId == long.Parse(s.batchId)).Any(o => o.alarmLevel == 1) ? 1 : 0; s.model = temp.Where(m => m.BatchId == long.Parse(s.batchId)).OrderByDescending(o => o.Id).FirstOrDefault().device_type;