From fa9f138d82e36f18123f98562672bd73cab96991 Mon Sep 17 00:00:00 2001 From: yanghongwei Date: Mon, 19 Aug 2024 20:57:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- langguanApi.xml | 200 ++++++++++++++++++ .../Controllers/StatisticsController.cs | 58 +++++ langguanApi/Model/HJ212.cs | 122 +++++++++++ langguanApi/Service/Hj212Service.cs | 14 +- langguanApi/Service/StatisticsService.cs | 71 +++++++ 5 files changed, 464 insertions(+), 1 deletion(-) create mode 100644 langguanApi/Controllers/StatisticsController.cs create mode 100644 langguanApi/Service/StatisticsService.cs diff --git a/langguanApi.xml b/langguanApi.xml index 30ecfb0..4b7afed 100644 --- a/langguanApi.xml +++ b/langguanApi.xml @@ -465,6 +465,42 @@ + + + 统计数据控制器 + + + + + 构造函数 + + + + + + 获取统计数据 + + 1,VOC,2CEM + 工序列表 + deviceId + startTime + endTime + + + + + + 导出统计数据 + + + + + + + + + + 清洁运输 @@ -1604,6 +1640,16 @@ 设备ID + + + CN=2031是日数据,CN=2051是分钟数据,CN=2061是小时数据, + + + + + CEMS(ST=31)VOC(ST=27) + + PM2.5浓度 @@ -1644,6 +1690,136 @@ 风向 + + + 颗粒物(mg/m³)是烟尘 + + + + + 颗粒物折算(mg/m³) + + + + + 烟气温度(°C) + + + + + 烟气湿度(%) + + + + + 烟气压力 (kPa) + + + + + 烟气流速(m/s) + + + + + 二氧化硫折算(mg/m³) + + + + + 氮氧化物(mg/m³) + + + + + 氮氧化物折算(mg/m³) + + + + + SO2总量(mg/m³) + + + + + NOX总量(mg/m3) + + + + + 烟尘总量(mg/m3) + + + + + 流量总量(mg/m3) + + + + + 设备记录时间 + + + + + 总烃 是碳氢化合物(mg/m3) + + + + + 甲烷(ng/m³) + + + + + 非甲烷总烃(mg/m³) + + + + + 苯(mg/m³) + + + + + 甲苯(mg/m³) + + + + + 二甲苯(mg/m³) + + + + + 氧(%) + + + + + 流量(m3/s) 是废气 + + + + + 甲烷总量 + + + + + 总烃(碳氢化合物 mg/m3) + + + + + 非甲烷总烃 + + + + + 苯 + + 检测仪器数据标记 @@ -3128,6 +3304,30 @@ + + + Statistics service + + + + + Constructor + + + + + + Get statistics + + + + + + + + + + TransportService 运输服务 diff --git a/langguanApi/Controllers/StatisticsController.cs b/langguanApi/Controllers/StatisticsController.cs new file mode 100644 index 0000000..8598c4d --- /dev/null +++ b/langguanApi/Controllers/StatisticsController.cs @@ -0,0 +1,58 @@ +using langguanApi.Service; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; + +namespace langguanApi.Controllers +{ + /// + /// 统计数据控制器 + /// + [Route("api/[controller]")] + [ApiController] + public class StatisticsController : ControllerBase + { + private readonly StatisticsService _statisticsService; + /// + /// 构造函数 + /// + /// + public StatisticsController(StatisticsService statisticsService) + { + _statisticsService = statisticsService; + } + + /// + /// 获取统计数据 + /// + /// 1,VOC,2CEM + /// 工序列表 + /// deviceId + /// startTime + /// endTime + /// + /// + [HttpGet("huanbao")] + public async Task 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); + } + /// + /// 导出统计数据 + /// + /// + /// + /// + /// + /// + /// + /// + /// + [HttpGet("exporthuanbao")] + public async Task 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); + } + } +} diff --git a/langguanApi/Model/HJ212.cs b/langguanApi/Model/HJ212.cs index eadc538..4566360 100644 --- a/langguanApi/Model/HJ212.cs +++ b/langguanApi/Model/HJ212.cs @@ -11,6 +11,14 @@ namespace langguanApi.Model /// public string deviceMN { get; set; } /// + /// CN=2031是日数据,CN=2051是分钟数据,CN=2061是小时数据, + /// + public int CN { get; set; } + /// + /// CEMS(ST=31)VOC(ST=27) + /// + public int ST { get; set; } + /// /// PM2.5浓度 /// public double a34004 { get; set; } @@ -42,6 +50,120 @@ namespace langguanApi.Model /// 风向 /// public double a01008 { get; set; } + + #region CEMS + /// + /// 颗粒物(mg/m³)是烟尘 + /// + public double a34013 { get; set; } + /// + /// 颗粒物折算(mg/m³) + /// + public double a34013_ZsRtd { get; set; } + /// + /// 烟气温度(°C) + /// + public double a01012 { get; set; } + /// + /// 烟气湿度(%) + /// + public double a01014 { get; set; } + /// + /// 烟气压力 (kPa) + /// + public double a01013 { get; set; } + /// + /// 烟气流速(m/s) + /// + public double a01011 { get; set; } + /// + /// 二氧化硫折算(mg/m³) + /// + public double a21026_ZsRtd { get; set; } + /// + /// 氮氧化物(mg/m³) + /// + public double a21002 { get; set; } + /// + /// 氮氧化物折算(mg/m³) + /// + public double a21002_ZsRtd { get; set; } + /// + /// SO2总量(mg/m³) + /// + public double a21026_Cou { get; set; } + /// + /// NOX总量(mg/m3) + /// + public double a21002_Cou { get; set; } + /// + /// 烟尘总量(mg/m3) + /// + public double a34013_Cou { get; set; } + /// + /// 流量总量(mg/m3) + /// + public double a00000_Cou { get; set; } + /// + /// 设备记录时间 + /// + public DateTime ReportTime { get; set; } + #endregion + + #region VOC + /// + /// 总烃 是碳氢化合物(mg/m3) + /// + public double a24087 { get; set; } + /// + /// 甲烷(ng/m³) + /// + public double a05002 { get; set; } + /// + /// 非甲烷总烃(mg/m³) + /// + public double a24088 { get; set; } + /// + /// 苯(mg/m³) + /// + public double a25002 { get; set; } + /// + /// 甲苯(mg/m³) + /// + public double a25003 { get; set; } + /// + /// 二甲苯(mg/m³) + /// + public double a25005 { get; set; } + + /// + /// 氧(%) + /// + public double a19001 { get; set; } + /// + /// 流量(m3/s) 是废气 + /// + public double a00000 { get; set; } + /// + /// 甲烷总量 + /// + public double a05002_Cou { get; set; } + /// + /// 总烃(碳氢化合物 mg/m3) + /// + public double a24087_Cou { get; set; } + /// + /// 非甲烷总烃 + /// + public double a24088_Cou { get; set; } + /// + /// 苯 + /// + public double a25002_Cou { get; set; } + + + #endregion + public double lat { get; set; } public double lng { get; set; } diff --git a/langguanApi/Service/Hj212Service.cs b/langguanApi/Service/Hj212Service.cs index f766762..a9aa861 100644 --- a/langguanApi/Service/Hj212Service.cs +++ b/langguanApi/Service/Hj212Service.cs @@ -82,7 +82,18 @@ namespace langguanApi.Service /// public async Task GetWeekData(List vocList, List cemsList) { - // Expression> exp = filter => filter.CreateDateTime >= DateTime.Now.AddDays(-7); + // Expression> exp = filter => filter.CreateDateTime >= DateTime.Now.AddDays(-7); + // CN = 2031是日数据 + //Expression> 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.Filter.In(s => s.deviceMN, vocList.Concat(cemsList)) & Builders.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, diff --git a/langguanApi/Service/StatisticsService.cs b/langguanApi/Service/StatisticsService.cs new file mode 100644 index 0000000..d270dee --- /dev/null +++ b/langguanApi/Service/StatisticsService.cs @@ -0,0 +1,71 @@ +using langguanApi.Model; +using NPOI.SS.Formula.Functions; +using System.Linq.Expressions; + +namespace langguanApi.Service +{ + /// + /// Statistics service + /// + public class StatisticsService + { + private Hj212Service _hj212Service; + /// + /// Constructor + /// + /// + public StatisticsService(Hj212Service hj212Service) + { + _hj212Service = hj212Service; + } + + /// + /// Get statistics + /// + /// + /// + /// + /// + /// + /// + /// + /// + public async Task 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 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>> 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> 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); + } + } +}