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 GetCoalRankingController : ApiController { DataServer.BLL.coal_equipment bll = new DataServer.BLL.coal_equipment(); DataServer.BLL.gw_data bll_gw = new DataServer.BLL.gw_data(); // GET api/ public HttpResponseMessage Get(string date="") { var res = new get_coal_ranking(); try { var list = bll.GetModelList(""); var alist = new List(); var now = DateTime.Now; if (date == "日") { var sdate = 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"); } var num = 0; foreach (var item in list) { decimal? num1 = 0; decimal? num2 = 0; var list1 = bll_gw.GetModelListDate(" XTagName like '%"+item.Reserve1+"' ", time).OrderByDescending(x=>x.XTimeStamp).FirstOrDefault(); if (list1 == null) { num1 = num1; } else { num1 += Convert.ToDecimal(list1.XValue); } var list2 = bll_gw.GetModelListDate(" XTagName like '%" + item.Reserve1 + "' and XTimeStamp='" + sdate + "'", time).OrderByDescending(x => x.XTimeStamp).FirstOrDefault(); if (list2 == null) { num2 = num2; } else { num2 += Convert.ToDecimal(list2.XValue); } num++; var model = new coal_rankingData(); model.SerialNumber = num; model.CoalName = item.CoalName; model.CoalValue = num1-num2; alist.Add(model); } var adata=alist.OrderByDescending(x=>x.CoalValue).ToList(); int count = 0; var blist = new List(); foreach (var item in adata) { count++; var amodel = new coal_rankingData(); amodel.SerialNumber = count; amodel.CoalName = item.CoalName; amodel.CoalValue = item.CoalValue; blist.Add(amodel); } res.code = 200; res.msg = "成功"; res.data = blist; } if (date == "月") { var sdate = now.ToString("yyyy-MM-01 00:00:00"); string time; if (now.Month < 10) { time = now.ToString("yyyy_M"); } else { time = now.ToString("yyyy_MM"); } var num = 0; foreach (var item in list) { decimal? num1 = 0; decimal? num2 = 0; var list1 = bll_gw.GetModelListDate(" XTagName like '%" + item.Reserve1 + "' ", time).OrderByDescending(x => x.XTimeStamp).FirstOrDefault(); if (list1 == null) { num1 = num1; } else { num1 += Convert.ToDecimal(list1.XValue); } var list2 = bll_gw.GetModelListDate(" XTagName like '%" + item.Reserve1 + "' and XTimeStamp='" + sdate + "'", time).OrderByDescending(x => x.XTimeStamp).FirstOrDefault(); if (list2 == null) { num2 = num2; } else { num2 += Convert.ToDecimal(list2.XValue); } num++; var model = new coal_rankingData(); model.SerialNumber = num; model.CoalName = item.CoalName; model.CoalValue = num1 - num2; alist.Add(model); } var adata = alist.OrderByDescending(x => x.CoalValue).ToList(); int count = 0; var blist = new List(); foreach (var item in adata) { count++; var amodel = new coal_rankingData(); amodel.SerialNumber = count; amodel.CoalName = item.CoalName; amodel.CoalValue = item.CoalValue; blist.Add(amodel); } res.code = 200; res.msg = "成功"; res.data = blist; } if (date == "年") { var sdate = now.ToString("yyyy-01-01 00:00:00"); string time; if (now.Month < 10) { time = now.ToString("yyyy_M"); } else { time = now.ToString("yyyy_MM"); } string stime = Convert.ToDateTime(sdate).ToString("yyyy_M"); var num = 0; foreach (var item in list) { decimal? num1 = 0; decimal? num2 = 0; var list1 = bll_gw.GetModelListDate(" XTagName like '%" + item.Reserve1 + "' ", time).OrderByDescending(x => x.XTimeStamp).FirstOrDefault(); if (list1 == null) { num1 = num1; } else { num1 += Convert.ToDecimal(list1.XValue); } var list2 = bll_gw.GetModelListDate(" XTagName like '%" + item.Reserve1 + "' and XTimeStamp='" + sdate + "'", stime).OrderByDescending(x => x.XTimeStamp).FirstOrDefault(); if (list2 == null) { num2 = num2; } else { num2 += Convert.ToDecimal(list2.XValue); } num++; var model = new coal_rankingData(); model.SerialNumber = num; model.CoalName = item.CoalName; model.CoalValue = num1 - num2; alist.Add(model); } var adata = alist.OrderByDescending(x => x.CoalValue).ToList(); int count = 0; var blist = new List(); foreach (var item in adata) { count++; var amodel = new coal_rankingData(); amodel.SerialNumber = count; amodel.CoalName = item.CoalName; amodel.CoalValue = item.CoalValue; blist.Add(amodel); } res.code = 200; res.msg = "成功"; res.data = blist; } } 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; } } }