using DataServer.api; using Newtonsoft.Json; using System; using System.Collections.Generic; using System.Configuration; using System.Linq; using System.Net; using System.Net.Http; using System.Security.Policy; using System.Text; using System.Web.Http; namespace DongYingAPI.Controllers.api { /// /// 空调-用电情况 /// public class GetElectricalConditionController : ApiController { DataServer.BLL.electricity_data bll = new DataServer.BLL.electricity_data(); DataServer.BLL.device_info bll_info = new DataServer.BLL.device_info(); public HttpResponseMessage Get() { var res = new get_electrical_condition(); //表名 var date_base = ConfigurationManager.AppSettings["MySQLDataBase"].ToString(); try { var data = new List(); var list = bll_info.GetModelList("").Where(x => x.FloorName == "科技馆负一层地源热泵").ToList(); #region 天 //今天 var now = DateTime.Now; var jdate = DateTime.Now.ToString("yyyy-MM-dd HH:00:00"); var jtime = now.ToString("yyyyMM"); var a = bll.IsExistsTable(date_base, "electricity_data_" + jtime); if (a == false) { bll.CreateTable(jtime); } //昨天 var zdate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd 00:00:00"); var ztime = now.ToString("yyyyMM"); var b = bll.IsExistsTable(date_base, "electricity_data_" + ztime); if (b == false) { bll.CreateTable(ztime); } //前天 var qdate = DateTime.Now.AddDays(-2).ToString("yyyy-MM-dd 00:00:00"); decimal? num1 = 0; decimal? num2 = 0; decimal? num3 = 0; foreach (var aitem in list) { //今天列表 var list1 = bll.GetModelListDate("", jtime).Where(x =>x.DeviceId==aitem.DeviceId&& x.EntireTime == Convert.ToDateTime(jdate)).ToList(); foreach (var item in list1) { num1 += item.EH; } //昨天列表 var list2 = bll.GetModelListDate("", ztime).Where(x => x.DeviceId == aitem.DeviceId && x.EntireTime == Convert.ToDateTime(zdate)).ToList(); foreach (var item in list2) { num2 += item.EH; } //前天列表 var list3 = bll.GetModelListDate("", jtime).Where(x => x.DeviceId == aitem.DeviceId && x.EntireTime == Convert.ToDateTime(qdate)).ToList(); foreach (var item in list3) { num3 += item.EH; } } #endregion #region 月 //今月 var jmdate = DateTime.Now.ToString("yyyy-MM-dd HH:00:00"); var jmtime = now.ToString("yyyyMM"); var am = bll.IsExistsTable(date_base, "electricity_data_" + jmtime); if (am == false) { bll.CreateTable(jmtime); } //昨月 var zmdate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-01 00:00:00"); var zmtime = now.ToString("yyyyMM"); var bm = bll.IsExistsTable(date_base, "electricity_data_" + zmtime); if (bm == false) { bll.CreateTable(zmtime); } //前月 var qmdate1 = DateTime.Now.AddMonths(-1).ToString("yyyy-MM-01 00:00:00"); var qmdate2=Convert.ToDateTime(qmdate1); var qmdate = qmdate2.AddDays(-1); var qmtime = qmdate.ToString("yyyyMM"); var qm = bll.IsExistsTable(date_base, "electricity_data_" + qmtime); if (qm == false) { bll.CreateTable(qmtime); } decimal? mnum1 = 0; decimal? mnum2 = 0; decimal? mnum3 = 0; foreach (var aitem in list) { //今月列表 var mlist1 = bll.GetModelListDate("", jmtime).Where(x =>x.DeviceId==aitem.DeviceId&& x.EntireTime == Convert.ToDateTime(jmdate)).ToList(); foreach (var item in mlist1) { mnum1 += item.EH; } //昨月列表 var mlist2 = bll.GetModelListDate("", zmtime).Where(x => x.DeviceId == aitem.DeviceId && x.EntireTime == Convert.ToDateTime(zmdate)).ToList(); foreach (var item in mlist2) { mnum2 += item.EH; } //前月列表 var mlist3 = bll.GetModelListDate("", jmtime).Where(x => x.DeviceId == aitem.DeviceId && x.EntireTime == Convert.ToDateTime(qmdate)).ToList(); foreach (var item in mlist3) { mnum3 += item.EH; } } #endregion #region 年 //今年 var jydate = DateTime.Now.ToString("yyyy-MM-dd HH:00:00"); var jytime = now.ToString("yyyyMM"); var ay = bll.IsExistsTable(date_base, "electricity_data_" + jytime); if (ay == false) { bll.CreateTable(jmtime); } //昨年 var zydate = DateTime.Now.AddYears(-1).ToString("yyyy-12-31 00:00:00"); var zytime = DateTime.Now.AddYears(-1).ToString("yyyy12"); var by = bll.IsExistsTable(date_base, "electricity_data_" + zytime); if (by == false) { bll.CreateTable(zytime); } //前年 var qydate1 = DateTime.Now.AddYears(-2).ToString("yyyy-12-31 00:00:00"); var qydate = Convert.ToDateTime(qydate1); var qytime = qmdate.ToString("yyyyMM"); var qy = bll.IsExistsTable(date_base, "electricity_data_" + qytime); if (qy == false) { bll.CreateTable(qytime); } decimal? ynum1 = 0; decimal? ynum2 = 0; decimal? ynum3 = 0; foreach (var aitem in list) { //今年列表 var ylist1 = bll.GetModelListDate("", jytime).Where(x => x.DeviceId == aitem.DeviceId && x.EntireTime == Convert.ToDateTime(jydate)).ToList(); foreach (var item in ylist1) { ynum1 += item.EH; } //昨年列表 var ylist2 = bll.GetModelListDate("", zytime).Where(x => x.DeviceId == aitem.DeviceId && x.EntireTime == Convert.ToDateTime(zydate)).ToList(); foreach (var item in ylist2) { ynum2 += item.EH; } //前年列表 var ylist3 = bll.GetModelListDate("", qytime).Where(x => x.DeviceId == aitem.DeviceId && x.EntireTime == Convert.ToDateTime(qydate)).ToList(); foreach (var item in ylist3) { ynum3 += item.EH; } } #endregion var model = new electrical_conditionData(); model.ToDay = num1 - num2; model.YearDay = num2 - num3; model.ThisMonth = mnum1 - mnum2; model.LastMonth = mnum2 - mnum3; model.ThisYear= ynum1 - ynum2; model.LastYear= ynum2 - ynum3; if (model.YearDay == 0) { model.DayDency = 100; } else { model.DayDency = model.ToDay /model.YearDay * 100; if (model.DayDency < 0) { model.DayDency = model.DayDency * -1; } if (model.ToDay < model.DayDency) { model.DayDency = model.DayDency; } } if (model.LastMonth == 0) { model.MonthDency = 100; } else { model.MonthDency = model.ToDay / model.YearDay * 100; if (model.DayDency < 0) { model.DayDency = model.DayDency * -1; } if (model.ThisMonth < model.LastMonth) { model.DayDency = model.DayDency; } } if (model.LastYear == 0) { model.YearDency = 100; } else { model.YearDency = model.ToDay / model.YearDay * 100; if (model.DayDency < 0) { model.DayDency = model.DayDency * -1; } if (model.ThisYear < model.LastYear) { model.DayDency = model.DayDency; } } data.Add(model); 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; } } }