首页分组数据
This commit is contained in:
parent
ecf20b76bf
commit
c0036c4b98
|
|
@ -39,6 +39,11 @@
|
||||||
首页趋势数据
|
首页趋势数据
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="F:langguanApi.Common.Redis.RedisKeylist.Today">
|
||||||
|
<summary>
|
||||||
|
缓存今日数据
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="F:langguanApi.Common.Redis.RedisKeylist.CleanData">
|
<member name="F:langguanApi.Common.Redis.RedisKeylist.CleanData">
|
||||||
<summary>
|
<summary>
|
||||||
缓存清洁数据
|
缓存清洁数据
|
||||||
|
|
@ -1753,7 +1758,7 @@
|
||||||
</member>
|
</member>
|
||||||
<member name="M:langguanApi.Service.BaseService`1.FindListyFilter(MongoDB.Driver.FilterDefinition{`0})">
|
<member name="M:langguanApi.Service.BaseService`1.FindListyFilter(MongoDB.Driver.FilterDefinition{`0})">
|
||||||
<summary>
|
<summary>
|
||||||
filterdefinition
|
filter查找 流式数据
|
||||||
</summary>
|
</summary>
|
||||||
<param name="filter"></param>
|
<param name="filter"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
|
|
@ -1873,6 +1878,18 @@
|
||||||
<param name="day"></param>
|
<param name="day"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:langguanApi.Service.Hj212Service.GetTodayData">
|
||||||
|
<summary>
|
||||||
|
今日排放数据
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:langguanApi.Service.Hj212Service.GetWeekData(System.Collections.Generic.List{System.String},System.Collections.Generic.List{System.String})">
|
||||||
|
<summary>
|
||||||
|
一周之内的排放数据
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:langguanApi.Service.Hj212Service.Add(langguanApi.Model.HJ212,System.String)">
|
<member name="M:langguanApi.Service.Hj212Service.Add(langguanApi.Model.HJ212,System.String)">
|
||||||
<summary>
|
<summary>
|
||||||
新加数据
|
新加数据
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,10 @@
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string Trend = "tred";
|
public static string Trend = "tred";
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// 缓存今日数据
|
||||||
|
/// </summary>
|
||||||
|
public static string Today = "today";
|
||||||
|
/// <summary>
|
||||||
/// 缓存清洁数据
|
/// 缓存清洁数据
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string CleanData = "cleandata";
|
public static string CleanData = "cleandata";
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,8 @@
|
||||||
using langguanApi.Model;
|
using langguanApi.Model;
|
||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.AspNetCore.Mvc.RazorPages;
|
using Microsoft.AspNetCore.Mvc.RazorPages;
|
||||||
|
using Microsoft.Extensions.Options;
|
||||||
|
using MongoDB.Bson;
|
||||||
using MongoDB.Driver;
|
using MongoDB.Driver;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
|
|
||||||
|
|
@ -184,16 +186,27 @@ namespace langguanApi.Service
|
||||||
{
|
{
|
||||||
FilterDefinition<T> filters = Builders<T>.Filter.Where(filter);
|
FilterDefinition<T> filters = Builders<T>.Filter.Where(filter);
|
||||||
return await _collection.Find(filters).ToListAsync();
|
return await _collection.Find(filters).ToListAsync();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// filterdefinition
|
/// filter查找 流式数据
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="filter"></param>
|
/// <param name="filter"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<List<T>> FindListyFilter(FilterDefinition<T> filter)
|
public async Task<List<T>> FindListyFilter(FilterDefinition<T> filter)
|
||||||
{
|
{
|
||||||
return await _collection.Find(filter).ToListAsync();
|
List<T> result = new List<T>();
|
||||||
|
var cursor = await _collection.FindAsync(filter);
|
||||||
|
while (await cursor.MoveNextAsync())
|
||||||
|
{
|
||||||
|
var batch = cursor.Current;
|
||||||
|
foreach (var document in batch)
|
||||||
|
{
|
||||||
|
result.Add(document);
|
||||||
|
// Console.WriteLine(document.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 是否存在
|
/// 是否存在
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,12 @@
|
||||||
using langguanApi.Extensions.AutoDI;
|
using langguanApi.Extensions.AutoDI;
|
||||||
using langguanApi.Model;
|
using langguanApi.Model;
|
||||||
using langguanApi.Model.Dto;
|
using langguanApi.Model.Dto;
|
||||||
|
using MongoDB.Bson;
|
||||||
|
using MongoDB.Driver;
|
||||||
|
using NPOI.HSSF.Record;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
namespace langguanApi.Service
|
namespace langguanApi.Service
|
||||||
{
|
{
|
||||||
|
|
@ -21,8 +25,6 @@ namespace langguanApi.Service
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<object> GetIndexData(int day = 7)
|
public async Task<object> GetIndexData(int day = 7)
|
||||||
{
|
{
|
||||||
Stopwatch sw = new Stopwatch();
|
|
||||||
sw.Start();
|
|
||||||
Expression<Func<Model.HJ212, bool>> exp = filter => filter.CreateDateTime >= DateTime.Now.AddDays(-day);
|
Expression<Func<Model.HJ212, bool>> exp = filter => filter.CreateDateTime >= DateTime.Now.AddDays(-day);
|
||||||
var result = (await base.GetListWithExp(exp)).ToList();
|
var result = (await base.GetListWithExp(exp)).ToList();
|
||||||
var temp = result.Select(s => new
|
var temp = result.Select(s => new
|
||||||
|
|
@ -32,15 +34,13 @@ namespace langguanApi.Service
|
||||||
s.a34004,
|
s.a34004,
|
||||||
date = s.CreateDateTime.AddHours(8).ToString("MM-dd")
|
date = s.CreateDateTime.AddHours(8).ToString("MM-dd")
|
||||||
}).ToList();
|
}).ToList();
|
||||||
sw.Stop();
|
|
||||||
Console.WriteLine($"GetIndexData:{sw.ElapsedMilliseconds}ms");
|
|
||||||
return temp.GroupBy(g => new { g.date })
|
return temp.GroupBy(g => new { g.date })
|
||||||
.Select(s => new
|
.Select(s => new
|
||||||
{
|
{
|
||||||
s.Key.date,
|
s.Key.date,
|
||||||
a34001 = s.Sum(t => t.a34001),
|
a34001 = Math.Round(s.Sum(t => t.a34001), 2),
|
||||||
a34002 = s.Sum(t => t.a34002),
|
a34002 = Math.Round(s.Sum(t => t.a34002), 2),
|
||||||
a34004 = s.Sum(t => t.a34004)
|
a34004 = Math.Round(s.Sum(t => t.a34004), 2)
|
||||||
}).ToList();
|
}).ToList();
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -54,6 +54,61 @@ namespace langguanApi.Service
|
||||||
// list.Add(new columnView() { hour = s.Key.date, type = "a34004", value = Math.Round(v3, 2) });
|
// list.Add(new columnView() { hour = s.Key.date, type = "a34004", value = Math.Round(v3, 2) });
|
||||||
//});
|
//});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 今日排放数据
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<object> GetTodayData()
|
||||||
|
{
|
||||||
|
Expression<Func<Model.Device, bool>> exp = filter => filter.DeviceType == 1 || filter.DeviceType == 2;
|
||||||
|
var devices = (await _deviceSerive.GetListWithExp(exp)).ToList();
|
||||||
|
var tody = Convert.ToDateTime(DateTime.Now.ToString("D").ToString());
|
||||||
|
Expression<Func<Model.HJ212, bool>> expall = filter => devices.Select(s => s.deviceMN).Contains(filter.deviceMN) && filter.CreateDateTime >= tody;
|
||||||
|
var result = (await base.GetListWithExp(expall)).ToList();
|
||||||
|
var vocList = devices.Where(s => s.DeviceType == 1).Select(s => s.deviceMN).ToList();
|
||||||
|
var cemsList = devices.Where(s => s.DeviceType == 2).Select(s => s.deviceMN).ToList();
|
||||||
|
var voc = Math.Round(result.Where(s => vocList.Contains(s.deviceMN)).ToList().Select(s => s.a34004).Sum(), 2);
|
||||||
|
var cems = Math.Round(result.Where(s => vocList.Contains(s.deviceMN)).ToList().Select(s => s.a34002).Sum(), 2);
|
||||||
|
return new
|
||||||
|
{
|
||||||
|
today = new { voc, cems },
|
||||||
|
week = await GetWeekData(vocList, cemsList)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 一周之内的排放数据
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<object> GetWeekData(List<string> vocList, List<string> cemsList)
|
||||||
|
{
|
||||||
|
// Expression<Func<Model.HJ212, bool>> exp = filter => filter.CreateDateTime >= DateTime.Now.AddDays(-7);
|
||||||
|
|
||||||
|
var filter = Builders<Model.HJ212>.Filter.In(s => s.deviceMN, vocList.Concat(cemsList))
|
||||||
|
& Builders<Model.HJ212>.Filter.Gte(s => s.CreateDateTime, DateTime.Now.AddDays(-7));
|
||||||
|
var result = await base.FindListyFilter(filter);
|
||||||
|
var voc = result.Where(s => vocList.Contains(s.deviceMN)).Select(s => new
|
||||||
|
{
|
||||||
|
s.a34001,
|
||||||
|
date = s.CreateDateTime.ToString("MM-dd")
|
||||||
|
}).GroupBy(s => s.date)
|
||||||
|
.Select(s => new
|
||||||
|
{
|
||||||
|
s.Key,
|
||||||
|
value = Math.Round(s.Sum(t => t.a34001))
|
||||||
|
});
|
||||||
|
var cems = result.Where(s => cemsList.Contains(s.deviceMN)).Select(s => new
|
||||||
|
{
|
||||||
|
s.a34002,
|
||||||
|
date = s.CreateDateTime.ToString("MM-dd")
|
||||||
|
}).GroupBy(s => s.date)
|
||||||
|
.Select(s => new
|
||||||
|
{
|
||||||
|
s.Key,
|
||||||
|
value = Math.Round(s.Sum(t => t.a34002))
|
||||||
|
});
|
||||||
|
return new { voc, cems };
|
||||||
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 新加数据
|
/// 新加数据
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,6 @@ namespace langguanApi.Service
|
||||||
Yesterday = 0.8,
|
Yesterday = 0.8,
|
||||||
LastWeek = 0.6,
|
LastWeek = 0.6,
|
||||||
};
|
};
|
||||||
|
|
||||||
Expression<Func<Model.HJ212, bool>> filter = exp => true;
|
Expression<Func<Model.HJ212, bool>> filter = exp => true;
|
||||||
// 首页设备报警数据
|
// 首页设备报警数据
|
||||||
var alerts = await _alertService.IndexData();
|
var alerts = await _alertService.IndexData();
|
||||||
|
|
@ -69,15 +68,9 @@ namespace langguanApi.Service
|
||||||
yesterday = 0.8,
|
yesterday = 0.8,
|
||||||
lastWeek = 0.6
|
lastWeek = 0.6
|
||||||
};
|
};
|
||||||
var day = new
|
var d1 = await _hj212Service.GetTodayData();
|
||||||
{
|
Func<Task<object>> getTodayFunc = async () => await _hj212Service.GetTodayData();
|
||||||
day = new { voc = "70mg/m3", cemes = "100mg/m3" },
|
var today = await _cacheManager.GetConvertVale(RedisKeylist.Today, getTodayFunc, 60 * 30);
|
||||||
week = new
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
return new ApiResult
|
return new ApiResult
|
||||||
{
|
{
|
||||||
code = 0,
|
code = 0,
|
||||||
|
|
@ -92,14 +85,18 @@ namespace langguanApi.Service
|
||||||
},
|
},
|
||||||
title = _configuration.GetValue<string>("Home:Title"),
|
title = _configuration.GetValue<string>("Home:Title"),
|
||||||
},
|
},
|
||||||
weather,
|
|
||||||
devices,
|
devices,
|
||||||
cleanData,
|
weather,
|
||||||
ariQuality,
|
ariQuality,
|
||||||
rate = new { },
|
rate = new[] {
|
||||||
|
new { key = "cems", val = 0.7 } ,
|
||||||
|
new { key = "VOC", val = 0.6 }
|
||||||
|
},
|
||||||
trend,
|
trend,
|
||||||
// trend = await _hj212Service.GetIndexData(),
|
|
||||||
alerts,
|
alerts,
|
||||||
|
cleanData,
|
||||||
|
today,
|
||||||
getViewTop = "",
|
getViewTop = "",
|
||||||
detections
|
detections
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue