using DataServer.api; using Microsoft.Ajax.Utilities; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Runtime.InteropServices; using System.Text; using System.Web.Http; namespace JinanCementFactoryAPI.Controllers.api { /// /// 空气污染排放 /// public class GetAirPollutionController : ApiController { DataServer.BLL.environmental_protection bll = new DataServer.BLL.environmental_protection(); DataServer.BLL.gw_data bll_gw = new DataServer.BLL.gw_data(); // GET api/ public HttpResponseMessage Get(string type="") { var res = new get_air_pollution(); try { var list = bll.GetModelList(""); var alist = new List(); var now=DateTime.Now; string time; if (now.Month < 10) { time = now.ToString("yyyy_M"); } else { time = now.ToString("yyyy_MM"); } var sdate = now.ToString("yyyy-MM-dd 00:00:00"); var edate = now.AddDays(1).ToString("yyyy-MM-dd 00:00:00"); if (type == "二氧化碳") { var list1 = list.Where(x=>x.EnvironmentalDescription.Contains("SO2")).DistinctBy(x=>x.EnvironmentalName).ToList(); var list2 = list.Where(x => x.EnvironmentalDescription.Contains("SO2")).ToList(); var clist = new List(); var model = new air_pollutionData(); foreach (var item in list1) { model.type = "二氧化碳"; var blist = list2.Where(x => x.EnvironmentalName==item.EnvironmentalName).ToList(); decimal? num = 0; var amodel = new air_pollution(); amodel.Name = item.EnvironmentalName; var alist1=bll_gw.GetModelListDate(" XTagName like '%"+item.Reserve1+ "' and XTimeStamp>='"+sdate+ "' and XTimeStamp<'"+edate+"'", time).DistinctBy(x=>x.XTimeStamp).ToList(); foreach (var bitem in alist1) { num += Convert.ToDecimal(bitem.XValue); } amodel.Value = num; clist.Add(amodel); model.data = clist; } alist.Add(model); } else if (type == "氮氧化物") { var list1 = list.Where(x => x.EnvironmentalDescription.Contains("NOX")).DistinctBy(x => x.EnvironmentalName).ToList(); var list2 = list.Where(x => x.EnvironmentalDescription.Contains("NOX")).ToList(); var model = new air_pollutionData(); var clist = new List(); foreach (var item in list1) { model.type = "氮氧化物"; var blist = list2.Where(x => x.EnvironmentalName == item.EnvironmentalName).ToList(); decimal? num = 0; var amodel = new air_pollution(); amodel.Name = item.EnvironmentalName; var alist1 = bll_gw.GetModelListDate(" XTagName like '%" + item.Reserve1 + "' and XTimeStamp>='" + sdate + "' and XTimeStamp<'" + edate + "'", time).DistinctBy(x => x.XTimeStamp).ToList(); foreach (var bitem in alist1) { num += Convert.ToDecimal(bitem.XValue); } amodel.Value = num; clist.Add(amodel); model.data = clist; } alist.Add(model); } else if (type == "一氧化碳") { var list1 = list.Where(x => x.EnvironmentalDescription.Contains("CO")).DistinctBy(x => x.EnvironmentalName).ToList(); var list2 = list.Where(x => x.EnvironmentalDescription.Contains("CO")).ToList(); var model = new air_pollutionData(); var clist = new List(); foreach (var item in list1) { model.type = "一氧化碳"; var blist = list2.Where(x => x.EnvironmentalName == item.EnvironmentalName).ToList(); decimal? num = 0; var amodel = new air_pollution(); amodel.Name = item.EnvironmentalName; var alist1 = bll_gw.GetModelListDate(" XTagName like '%" + item.Reserve1 + "' and XTimeStamp>='" + sdate + "' and XTimeStamp<'" + edate + "'", time).DistinctBy(x => x.XTimeStamp).ToList(); foreach (var bitem in alist1) { num += Convert.ToDecimal(bitem.XValue); } amodel.Value = num; clist.Add(amodel); model.data = clist; } alist.Add(model); } else if (type == "氧气") { var list1 = list.Where(x => x.EnvironmentalDescription.Contains("氧气")).DistinctBy(x => x.EnvironmentalName).ToList(); var list2 = list.Where(x => x.EnvironmentalDescription.Contains("氧气")).ToList(); var model = new air_pollutionData(); var clist = new List(); foreach (var item in list1) { model.type = "氧气"; var blist = list2.Where(x => x.EnvironmentalName == item.EnvironmentalName).ToList(); decimal? num = 0; var amodel = new air_pollution(); amodel.Name = item.EnvironmentalName; var alist1 = bll_gw.GetModelListDate(" XTagName like '%" + item.Reserve1 + "' and XTimeStamp>='" + sdate + "' and XTimeStamp<'" + edate + "'", time).DistinctBy(x => x.XTimeStamp).ToList(); foreach (var bitem in alist1) { num += Convert.ToDecimal(bitem.XValue); } amodel.Value = num; clist.Add(amodel); model.data = clist; } alist.Add(model); } res.code = 200; res.msg = "成功"; res.data = alist; } catch (Exception ex) { res.code = 500; res.msg = ex.Message; } HttpResponseMessage result = new HttpResponseMessage { Content = new StringContent(JsonConvert.SerializeObject(res), Encoding.GetEncoding("UTF-8"), "application/json") }; return result; } } }