using DataServer.api; using Microsoft.Ajax.Utilities; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Net; using System.Net.Http; using System.Text; using System.Web.Http; namespace JinanCementFactoryAPI.Controllers.api { /// /// 环境感知监测 /// public class GetEnvironmentalAwarenessController : 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() { var res = new get_environmental_data(); try { var list = bll.GetModelList(""); var llist = list.DistinctBy(x => x.EnvironmentalName).ToList(); var alist = new List(); var now=DateTime.Now; var date = now.ToString("yyyy-MM-dd 00:00:00"); string time; if (now.Month < 10) { time = now.ToString("yyyy_M"); } else { time = now.ToString("yyyy_MM"); } foreach (var item in llist) { if (item.EnvironmentalName == "一线窑头系统") { var model1 = new environmental_dataData(); model1.type = "一号窑系统"; var list1 = list.Where(x => x.EnvironmentalName == "一线窑头系统").ToList(); var blist = new List(); decimal? num1 = 0; foreach (var aitem in list1) { var amodel = new environmental_data(); amodel.EnvironmentalName = aitem.EnvironmentalDescription; var list2 = bll_gw.GetModelListDate(" XTagName like '%"+aitem.Reserve1+"'", time).OrderByDescending(x=>x.XTimeStamp).FirstOrDefault(); if (list2 == null) { num1 = num1; } else { num1 += Convert.ToDecimal(list2.XValue); } amodel.EnvironmentalValue = num1; blist.Add(amodel); } model1.data = blist; alist.Add(model1); } if (item.EnvironmentalName == "二线窑头系统") { var model2 = new environmental_dataData(); model2.type = "二号窑系统"; var list1 = list.Where(x => x.EnvironmentalName == "二线窑头系统").ToList(); var blist = new List(); decimal? num1 = 0; foreach (var aitem in list1) { var amodel1 = new environmental_data(); amodel1.EnvironmentalName = aitem.EnvironmentalDescription; var list2 = bll_gw.GetModelListDate(" XTagName like '%" + aitem.Reserve1 + "'", time).OrderByDescending(x => x.XTimeStamp).FirstOrDefault(); if (list2 == null) { num1 = num1; } else { num1 += Convert.ToDecimal(list2.XValue); } amodel1.EnvironmentalValue = num1; blist.Add(amodel1); } model2.data = blist; alist.Add(model2); } if (item.EnvironmentalName == "三线窑头收尘系统") { var model3 = new environmental_dataData(); model3.type = "三号窑系统"; var list1 = list.Where(x => x.EnvironmentalName == "三线窑头收尘系统").ToList(); var blist = new List(); decimal? num1 = 0; foreach (var aitem in list1) { var amodel2 = new environmental_data(); amodel2.EnvironmentalName = aitem.EnvironmentalDescription; var list2 = bll_gw.GetModelListDate(" XTagName like '%" + aitem.Reserve1 + "'", time).OrderByDescending(x => x.XTimeStamp).FirstOrDefault(); if (list2 == null) { num1 = num1; } else { num1 += Convert.ToDecimal(list2.XValue); } amodel2.EnvironmentalValue =num1; blist.Add(amodel2); } model3.data = blist; alist.Add(model3); } if (item.EnvironmentalName == "三线生料库系统") { var model4 = new environmental_dataData(); model4.type = "三号生料系统"; var list1 = list.Where(x => x.EnvironmentalName == "三线生料库系统").ToList(); var blist = new List(); decimal? num1 = 0; foreach (var aitem in list1) { var amodel3 = new environmental_data(); amodel3.EnvironmentalName = aitem.EnvironmentalDescription; var list2 = bll_gw.GetModelListDate(" XTagName like '%" + aitem.Reserve1 + "'", time).OrderByDescending(x => x.XTimeStamp).FirstOrDefault(); if (list2 == null) { num1 = num1; } else { num1 += Convert.ToDecimal(list2.XValue); } amodel3.EnvironmentalValue = num1; blist.Add(amodel3); } model4.data = blist; alist.Add(model4); } if (item.EnvironmentalName == "三线煤磨系统") { var model3 = new environmental_dataData(); model3.type = "三号煤磨系统"; var list1 = list.Where(x => x.EnvironmentalName == "三线煤磨系统").ToList(); var blist = new List(); decimal? num1 = 0; foreach (var aitem in list1) { var amodel2 = new environmental_data(); amodel2.EnvironmentalName = aitem.EnvironmentalDescription; var list2 = bll_gw.GetModelListDate(" XTagName like '%" + aitem.Reserve1 + "'", time).OrderByDescending(x => x.XTimeStamp).FirstOrDefault(); if (list2 == null) { num1 = num1; } else { num1 += Convert.ToDecimal(list2.XValue); } amodel2.EnvironmentalValue = num1; blist.Add(amodel2); } model3.data = blist; alist.Add(model3); } } 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; } } }