From 6fab2df9fba1a9679cd3899cd8c7011aeca58203 Mon Sep 17 00:00:00 2001 From: yanghongwei Date: Sat, 23 Aug 2025 01:06:19 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=86=E8=8A=82=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Service/AlarmService.cs | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/Service/AlarmService.cs b/Service/AlarmService.cs index 61cc6f9..7df44a2 100644 --- a/Service/AlarmService.cs +++ b/Service/AlarmService.cs @@ -404,22 +404,33 @@ 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 }).ToListAsync(); + + var query = await _db.Queryable() .Where(s => pageitem.Item2.Contains(s.BatchId)).SplitTable() - .GroupBy(s => new { s.BatchId, s.serial_number, s.device_type, s.positionId, s.PostionName, s.freq, s.alarmLevel }) + .GroupBy(s => new { s.BatchId, s.serial_number, s.device_type }) .Select(st => new AlarmRepDto { batchId = st.BatchId.ToString(), startTime = SqlFunc.AggregateMin(st.CreateTime), endTime = SqlFunc.AggregateMax(st.CreateTime), sn = st.serial_number, - Frequency = SqlFunc.AggregateMax(st.freq), - duration = (SqlFunc.AggregateMax(st.CreateTime) - SqlFunc.AggregateMin(st.CreateTime)).TotalSeconds == 0 ? 1 : (SqlFunc.AggregateMax(st.CreateTime) - SqlFunc.AggregateMin(st.CreateTime)).TotalSeconds, + Frequency = 0, + duration = (SqlFunc.AggregateMax(st.CreateTime) - SqlFunc.AggregateMin(st.CreateTime)).TotalSeconds, model = st.device_type, IsWhitelist = SqlFunc.AggregateMax(st.IsWhitelist), - alarmLevel = SqlFunc.AggregateMax(st.alarmLevel) }).OrderByDescending(s => s.batchId).ToListAsync(); - return new ApiResult() + + query.ForEach(s => + { + 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.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; + }); return new ApiResult() { code = 0, data = new