数据库调整

This commit is contained in:
yanghongwei 2024-08-19 20:57:21 +08:00
parent ceea3b2291
commit fa9f138d82
5 changed files with 464 additions and 1 deletions

View File

@ -465,6 +465,42 @@
</summary>
<returns></returns>
</member>
<member name="T:langguanApi.Controllers.StatisticsController">
<summary>
统计数据控制器
</summary>
</member>
<member name="M:langguanApi.Controllers.StatisticsController.#ctor(langguanApi.Service.StatisticsService)">
<summary>
构造函数
</summary>
<param name="statisticsService"></param>
</member>
<member name="M:langguanApi.Controllers.StatisticsController.huanbao(System.Int32,System.Int32,System.String,System.DateTime,System.DateTime,System.Int32,System.Int32)">
<summary>
获取统计数据
</summary>
<param name="type">1,VOC,2CEM</param>
<param name="Organized">工序列表</param>
<param name="deviceId">deviceId</param>
<param name="startTime">startTime</param>
<param name="endTime">endTime</param>
<param name=""></param>
<returns></returns>
</member>
<member name="M:langguanApi.Controllers.StatisticsController.export(System.Int32,System.Int32,System.String,System.DateTime,System.DateTime,System.Int32,System.Int32)">
<summary>
导出统计数据
</summary>
<param name="type"></param>
<param name="Organized"></param>
<param name="deviceId"></param>
<param name="startTime"></param>
<param name="endTime"></param>
<param name="pageIndex"></param>
<param name="pageSize"></param>
<returns></returns>
</member>
<member name="T:langguanApi.Controllers.TransportController">
<summary>
清洁运输
@ -1604,6 +1640,16 @@
设备ID
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.CN">
<summary>
CN=2031是日数据CN=2051是分钟数据CN=2061是小时数据,
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.ST">
<summary>
CEMSST=31VOCST=27
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a34004">
<summary>
PM2.5浓度
@ -1644,6 +1690,136 @@
风向
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a34013">
<summary>
颗粒物mg/m³是烟尘
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a34013_ZsRtd">
<summary>
颗粒物折算mg/m³
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a01012">
<summary>
烟气温度°C
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a01014">
<summary>
烟气湿度(%
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a01013">
<summary>
烟气压力 (kPa)
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a01011">
<summary>
烟气流速m/s
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a21026_ZsRtd">
<summary>
二氧化硫折算mg/m³
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a21002">
<summary>
氮氧化物mg/m³
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a21002_ZsRtd">
<summary>
氮氧化物折算mg/m³
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a21026_Cou">
<summary>
SO2总量mg/m³
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a21002_Cou">
<summary>
NOX总量mg/m3
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a34013_Cou">
<summary>
烟尘总量(mg/m3)
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a00000_Cou">
<summary>
流量总量(mg/m3)
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.ReportTime">
<summary>
设备记录时间
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a24087">
<summary>
总烃 是碳氢化合物mg/m3
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a05002">
<summary>
甲烷ng/m³
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a24088">
<summary>
非甲烷总烃(mg/m³)
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a25002">
<summary>
苯(mg/m³)
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a25003">
<summary>
甲苯(mg/m³)
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a25005">
<summary>
二甲苯(mg/m³)
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a19001">
<summary>
氧(%)
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a00000">
<summary>
流量m3/s 是废气
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a05002_Cou">
<summary>
甲烷总量
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a24087_Cou">
<summary>
总烃(碳氢化合物 mg/m3
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a24088_Cou">
<summary>
非甲烷总烃
</summary>
</member>
<member name="P:langguanApi.Model.HJ212.a25002_Cou">
<summary>
</summary>
</member>
<member name="T:langguanApi.Model.InstrumentationDataFlag">
<summary>
检测仪器数据标记
@ -3128,6 +3304,30 @@
<param name="ids"></param>
<returns></returns>
</member>
<member name="T:langguanApi.Service.StatisticsService">
<summary>
Statistics service
</summary>
</member>
<member name="M:langguanApi.Service.StatisticsService.#ctor(langguanApi.Service.Hj212Service)">
<summary>
Constructor
</summary>
<param name="hj212Service"></param>
</member>
<member name="M:langguanApi.Service.StatisticsService.GetStatistics(System.Int32,System.Int32,System.String,System.Nullable{System.DateTime},System.Nullable{System.DateTime},System.Int32,System.Int32)">
<summary>
Get statistics
</summary>
<param name="type"></param>
<param name="Organized"></param>
<param name="deviceId"></param>
<param name="startTime"></param>
<param name="endTime"></param>
<param name="pageIndex"></param>
<param name="pageSize"></param>
<returns></returns>
</member>
<member name="T:langguanApi.Service.TransportService">
<summary>
TransportService 运输服务

View File

@ -0,0 +1,58 @@
using langguanApi.Service;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace langguanApi.Controllers
{
/// <summary>
/// 统计数据控制器
/// </summary>
[Route("api/[controller]")]
[ApiController]
public class StatisticsController : ControllerBase
{
private readonly StatisticsService _statisticsService;
/// <summary>
/// 构造函数
/// </summary>
/// <param name="statisticsService"></param>
public StatisticsController(StatisticsService statisticsService)
{
_statisticsService = statisticsService;
}
/// <summary>
/// 获取统计数据
/// </summary>
/// <param name="type">1,VOC,2CEM</param>
/// <param name="Organized">工序列表</param>
/// <param name="deviceId">deviceId</param>
/// <param name="startTime">startTime</param>
/// <param name="endTime">endTime</param>
/// <param name=""></param>
/// <returns></returns>
[HttpGet("huanbao")]
public async Task<IActionResult> huanbao(int type, int Organized, string deviceId, DateTime startTime, DateTime endTime, int pageIndex = 1, int pageSize = 10)
{
var result = await _statisticsService.GetStatistics(type, Organized, deviceId, startTime, endTime, pageIndex, pageSize);
return Ok(result);
}
/// <summary>
/// 导出统计数据
/// </summary>
/// <param name="type"></param>
/// <param name="Organized"></param>
/// <param name="deviceId"></param>
/// <param name="startTime"></param>
/// <param name="endTime"></param>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
[HttpGet("exporthuanbao")]
public async Task<IActionResult> export(int type, int Organized, string deviceId, DateTime startTime, DateTime endTime, int pageIndex = 1, int pageSize = 10)
{
var result = await _statisticsService.GetStatistics(type, Organized, deviceId, startTime, endTime, pageIndex, pageSize);
return Ok(result);
}
}
}

View File

@ -11,6 +11,14 @@ namespace langguanApi.Model
/// </summary>
public string deviceMN { get; set; }
/// <summary>
/// CN=2031是日数据CN=2051是分钟数据CN=2061是小时数据,
/// </summary>
public int CN { get; set; }
/// <summary>
/// CEMSST=31VOCST=27
/// </summary>
public int ST { get; set; }
/// <summary>
/// PM2.5浓度
/// </summary>
public double a34004 { get; set; }
@ -42,6 +50,120 @@ namespace langguanApi.Model
/// 风向
/// </summary>
public double a01008 { get; set; }
#region CEMS
/// <summary>
/// 颗粒物mg/m³是烟尘
/// </summary>
public double a34013 { get; set; }
/// <summary>
/// 颗粒物折算mg/m³
/// </summary>
public double a34013_ZsRtd { get; set; }
/// <summary>
/// 烟气温度°C
/// </summary>
public double a01012 { get; set; }
/// <summary>
/// 烟气湿度(%
/// </summary>
public double a01014 { get; set; }
/// <summary>
/// 烟气压力 (kPa)
/// </summary>
public double a01013 { get; set; }
/// <summary>
/// 烟气流速m/s
/// </summary>
public double a01011 { get; set; }
/// <summary>
/// 二氧化硫折算mg/m³
/// </summary>
public double a21026_ZsRtd { get; set; }
/// <summary>
/// 氮氧化物mg/m³
/// </summary>
public double a21002 { get; set; }
/// <summary>
/// 氮氧化物折算mg/m³
/// </summary>
public double a21002_ZsRtd { get; set; }
/// <summary>
/// SO2总量mg/m³
/// </summary>
public double a21026_Cou { get; set; }
/// <summary>
/// NOX总量mg/m3
/// </summary>
public double a21002_Cou { get; set; }
/// <summary>
/// 烟尘总量(mg/m3)
/// </summary>
public double a34013_Cou { get; set; }
/// <summary>
/// 流量总量(mg/m3)
/// </summary>
public double a00000_Cou { get; set; }
/// <summary>
/// 设备记录时间
/// </summary>
public DateTime ReportTime { get; set; }
#endregion
#region VOC
/// <summary>
/// 总烃 是碳氢化合物mg/m3
/// </summary>
public double a24087 { get; set; }
/// <summary>
/// 甲烷ng/m³
/// </summary>
public double a05002 { get; set; }
/// <summary>
/// 非甲烷总烃(mg/m³)
/// </summary>
public double a24088 { get; set; }
/// <summary>
/// 苯(mg/m³)
/// </summary>
public double a25002 { get; set; }
/// <summary>
/// 甲苯(mg/m³)
/// </summary>
public double a25003 { get; set; }
/// <summary>
/// 二甲苯(mg/m³)
/// </summary>
public double a25005 { get; set; }
/// <summary>
/// 氧(%)
/// </summary>
public double a19001 { get; set; }
/// <summary>
/// 流量m3/s 是废气
/// </summary>
public double a00000 { get; set; }
/// <summary>
/// 甲烷总量
/// </summary>
public double a05002_Cou { get; set; }
/// <summary>
/// 总烃(碳氢化合物 mg/m3
/// </summary>
public double a24087_Cou { get; set; }
/// <summary>
/// 非甲烷总烃
/// </summary>
public double a24088_Cou { get; set; }
/// <summary>
/// 苯
/// </summary>
public double a25002_Cou { get; set; }
#endregion
public double lat { get; set; }
public double lng { get; set; }

View File

@ -82,7 +82,18 @@ namespace langguanApi.Service
/// <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);
// Expression<Func<Model.HJ212, bool>> exp = filter => filter.CreateDateTime >= DateTime.Now.AddDays(-7);
// CN = 2031是日数据
//Expression<Func<Model.HJ212, bool>> exp = filter => filter.CN == 2031 && filter.CreateDateTime >= DateTime.Now.AddDays(-7);
////a21026_Cou,a21002_Cou,a34013_Cou
//var result = (await base.GetListWithExp(exp)).ToList().Select(s => new
//{
// //
//});
var filter = Builders<Model.HJ212>.Filter.In(s => s.deviceMN, vocList.Concat(cemsList))
& Builders<Model.HJ212>.Filter.Gte(s => s.CreateDateTime, DateTime.Now.AddDays(-3));
@ -97,6 +108,7 @@ namespace langguanApi.Service
s.Key,
value = Math.Round(s.Sum(t => t.a34001))
});
var cems = result.Where(s => cemsList.Contains(s.deviceMN)).Select(s => new
{
s.a34002,

View File

@ -0,0 +1,71 @@
using langguanApi.Model;
using NPOI.SS.Formula.Functions;
using System.Linq.Expressions;
namespace langguanApi.Service
{
/// <summary>
/// Statistics service
/// </summary>
public class StatisticsService
{
private Hj212Service _hj212Service;
/// <summary>
/// Constructor
/// </summary>
/// <param name="hj212Service"></param>
public StatisticsService(Hj212Service hj212Service)
{
_hj212Service = hj212Service;
}
/// <summary>
/// Get statistics
/// </summary>
/// <param name="type"></param>
/// <param name="Organized"></param>
/// <param name="deviceId"></param>
/// <param name="startTime"></param>
/// <param name="endTime"></param>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
public async Task<ApiResult> GetStatistics(int type, int Organized, string deviceId, DateTime? startTime, DateTime? endTime, int pageIndex = 1, int pageSize = 10)
{
var result = await GetData(type, Organized, deviceId, startTime, endTime, pageIndex, pageSize);
return new ApiResult()
{
code = 0,
msg = "success",
data = new
{
items = result.Item2,
total = result.Item1
}
};
}
public async Task<ApiResult> ExportGetStatistics(int type, int Organized, string deviceId, DateTime? startTime, DateTime? endTime, int pageIndex = 1, int pageSize = 10)
{
var result = await GetData(type, Organized, deviceId, startTime, endTime, pageIndex, pageSize);
var items = result.Item2;
return new ApiResult()
{
code = 0,
msg = "success",
};
}
private async Task<Tuple<long, List<Model.HJ212>>> GetData(int type, int Organized, string deviceId, DateTime? startTime, DateTime? endTime, int pageIndex = 1, int pageSize = 10)
{
endTime = endTime ?? DateTime.Now;
startTime = startTime ?? DateTime.Now.AddDays(-7);
Expression<Func<Model.HJ212, bool>> exp = filter =>
filter.CreateDateTime >= startTime && filter.CreateDateTime <= endTime && filter.Id == deviceId;
ReqPaing reqPaing = new ReqPaing()
{
pageSize = pageSize,
current = pageIndex
};
return await _hj212Service.GetListByPage(reqPaing, exp);
}
}
}