using DataServer.api; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Text; using System.Web.Http; namespace JinanCementFactoryAPI.Controllers.api { /// /// 能效管理-分类能耗 /// public class GetSortingLossController : ApiController { DataServer.BLL.electrical_installation bll_electrical = new DataServer.BLL.electrical_installation(); DataServer.BLL.water_meter bll_water = new DataServer.BLL.water_meter(); DataServer.BLL.coal_equipment bll_coal = new DataServer.BLL.coal_equipment(); DataServer.BLL.gw_data bll_gw = new DataServer.BLL.gw_data(); // GET api/ public HttpResponseMessage Get() { var res = new get_sorting_loss(); try { var data = new List(); var now = DateTime.Now; string time; if (now.Month < 10) { time = now.ToString("yyyy_M"); } else { time = now.ToString("yyyy_MM"); } var date = now.ToString("yyyy-MM-dd 00:00:00"); var sdate = now.AddDays(-1).ToString("yyyy-MM-dd 00:00:00"); string stime; if (Convert.ToDateTime(sdate).Month < 10) { stime = Convert.ToDateTime(sdate).ToString("yyyy_M"); } else { stime = Convert.ToDateTime(sdate).ToString("yyyy_MM"); } decimal? num1 = 0; decimal? num2 = 0; decimal? num3 = 0; decimal? num4 = 0; decimal? num5 = 0; decimal? num6 = 0; decimal? num7 = 0; decimal? num8 = 0; decimal? num9 = 0; var elist = bll_electrical.GetModelList(""); var wlist = bll_water.GetModelList(""); var clist = bll_coal.GetModelList(""); var elists=string.Join(",", elist.Select(x=>x.EH)); var wlists = string.Join(",", wlist.Select(x => x.Reserve1)); var clists = string.Join(",",clist.Select(x=>x.Reserve1)); var elist1 = bll_gw.GetModelListsDate(elists, time).GroupBy(x => x.XTagName).Select(g => g.OrderByDescending(x => x.XTimeStamp).FirstOrDefault()).ToList(); var elist2 = bll_gw.GetModelListsDate(elists, time).Where(x=>x.XTimeStamp==Convert.ToDateTime(date)).GroupBy(x => x.XTagName).Select(g => g.OrderByDescending(x => x.XTagName).FirstOrDefault()).ToList(); var elist3 = bll_gw.GetModelListsDate(elists, stime).Where(x => x.XTimeStamp == Convert.ToDateTime(sdate)).GroupBy(x => x.XTagName).Select(g => g.OrderByDescending(x => x.XTimeStamp).FirstOrDefault()).ToList(); var wlist1 = bll_gw.GetModelListsDate(wlists, time).GroupBy(x => x.XTagName).Select(g => g.OrderByDescending(x => x.XTimeStamp).FirstOrDefault()).ToList(); var wlist2 = bll_gw.GetModelListsDate(wlists, time).Where(x => x.XTimeStamp == Convert.ToDateTime(date)).GroupBy(x => x.XTagName).Select(g => g.OrderByDescending(x => x.XTimeStamp).FirstOrDefault()).ToList(); var wlist3 = bll_gw.GetModelListsDate(wlists, stime).Where(x => x.XTimeStamp == Convert.ToDateTime(sdate)).GroupBy(x => x.XTagName).Select(g => g.OrderByDescending(x => x.XTimeStamp).FirstOrDefault()).ToList(); var clist1 = bll_gw.GetModelListsDate(clists, time).GroupBy(x => x.XTagName).Select(g => g.OrderByDescending(x => x.XTimeStamp).FirstOrDefault()).ToList(); var clist2 = bll_gw.GetModelListsDate(clists, time).Where(x => x.XTimeStamp == Convert.ToDateTime(date)).GroupBy(x => x.XTagName).Select(g => g.OrderByDescending(x => x.XTimeStamp).FirstOrDefault()).ToList(); var clist3 = bll_gw.GetModelListsDate(clists, stime).Where(x => x.XTimeStamp == Convert.ToDateTime(sdate)).GroupBy(x => x.XTagName).Select(g => g.OrderByDescending(x => x.XTimeStamp).FirstOrDefault()).ToList(); foreach (var item in elist1) { num1 += Convert.ToDecimal(item.XValue); } foreach (var item in wlist1) { num2 += Convert.ToDecimal(item.XValue); } foreach (var item in clist1) { num3 += Convert.ToDecimal(item.XValue); } foreach (var item in elist2) { num4 += Convert.ToDecimal(item.XValue); } foreach (var item in wlist2) { num5 += Convert.ToDecimal(item.XValue); } foreach (var item in clist2) { num6 += Convert.ToDecimal(item.XValue); } foreach (var item in elist3) { num7 += Convert.ToDecimal(item.XValue); } foreach (var item in wlist3) { num8 += Convert.ToDecimal(item.XValue); } foreach (var item in clist3) { num9 += Convert.ToDecimal(item.XValue); } var model1=new sorting_lossData(); model1.Today = num1 - num4; model1.Yesterday = num4 - num7; if (model1.Today == 0 && model1.Yesterday == 0) { model1.Yesterday = 0; } else if (model1.Today == 0) { model1.Passu = -model1.Yesterday; } else if (model1.Yesterday == 0) { model1.Passu = model1.Today; } else if(model1.Today>model1.Yesterday) { model1.Passu = model1.Today / model1.Yesterday * 100; } else if(model1.Today model2.Yesterday) { model2.Passu = model2.Today / model2.Yesterday * 100; } else if (model2.Today < model2.Yesterday) { model2.Passu = -(model2.Today / model2.Yesterday * 100); } data.Add(model2); var model3 = new sorting_lossData(); model3.Today = num3 - num6; model3.Yesterday = num6 - num9; if (model3.Today == 0 && model3.Yesterday == 0) { model3.Yesterday = 0; } else if (model3.Today == 0) { model3.Passu = -model3.Yesterday; } else if (model3.Yesterday == 0) { model3.Passu = model3.Today; } else if (model3.Today > model3.Yesterday) { model3.Passu = model3.Today / model3.Yesterday * 100; } else if (model3.Today < model3.Yesterday) { model3.Passu = -(model3.Today / model3.Yesterday * 100); } data.Add(model3); res.code = 200; res.code = 200; res.msg = "成功"; res.data = data; } 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; } } }