using IStation.ChEr.Application; using IStation.ChEr.Model; namespace IStation.Application { /// /// Debug /// [Route("Debug")] [ApiDescriptionSettings("Debug", Name = "Debug(调试)", Order = 9900)] public class DebugController : IDynamicApiController { private IStation.ChEr.BLL.WaterPredictRecord bll = new IStation.ChEr.BLL.WaterPredictRecord(); /// ///Debug log /// [Route("LogInfo")] [HttpGet] public string LogInfo() { /* List waterPredictRecord = new List(); ConnectHelper connectHelper = new ConnectHelper(); var list = ConnectHelper.ReadPumpAllDayAccOutWater(new DateTime(2023, 1, 1), new DateTime(2023, 11, 14)); foreach (var item in list) { foreach (var item2 in item.pumpOutWater) { int dayHour = int.Parse(string.Format("{0:00}{1:00}{2:00}", item2.DateTime.Month, item2.DateTime.Day, item2.DateTime.Hour)); waterPredictRecord.Add(new WaterPredictRecord { DayHour = dayHour, RealValue = item2.Total }); } } bll.Inserts(waterPredictRecord);*/ List sSADatas = new List(); /* var path = "C:\\Users\\ZKC\\Desktop\\工now.csv"; int totalLines = File.ReadLines(path, Encoding.GetEncoding("gb2312")).Count();//总行数 System.IO.FileStream fs = new System.IO.FileStream(path, System.IO.FileMode.Open); System.IO.StreamReader sr = new System.IO.StreamReader(fs, Encoding.GetEncoding("gb2312")); string tempText; // int line = 0; double total = 0; for (int i = 0; i < totalLines; i++) { tempText = sr.ReadLine(); string[] arr = tempText.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (Convert.ToDateTime(arr[0]).Minute == 0) { sSADatas.Add(new SSAData { DateTime = Convert.ToDateTime(arr[0]), Total = Convert.ToDouble(arr[1]) }); } } var nee = new List(); double lastValue = 1; foreach (var item in sSADatas) { if (item.DateTime.Minute == 0) { if (lastValue != 1) { int historyhour = int.Parse(string.Format("{0:00}{1:00}{2:00}", item.DateTime.Month, item.DateTime.Day, item.DateTime.Hour)); nee.Add(new WaterPredictRecord() { DayHour = historyhour, RealTotalValue = item.Total, RealDifferenceValue = item.Total - lastValue }); lastValue = item.Total; } else { int historyhour = int.Parse(string.Format("{0:00}{1:00}{2:00}", item.DateTime.Month, item.DateTime.Day, item.DateTime.Hour)); nee.Add(new WaterPredictRecord() { DayHour = historyhour, RealTotalValue = item.Total, RealDifferenceValue = 0 }); lastValue = item.Total; } } } bll.Inserts(nee);*/ double lastValue = 1; var historylist = new List(); var historydata = ConnectHelper.GetByPumpOneDayWaterData(DateTime.Today.AddDays(-15), DateTime.Today, "1h"); foreach (var item in historydata) { if (lastValue != 1) { int historyhour = int.Parse(string.Format("{0:00}{1:00}{2:00}", item.DateTime.Month, item.DateTime.Day, item.DateTime.Hour)); historylist.Add(new WaterPredictRecord() { DayHour = historyhour, RealTotalValue = item.Total, RealDifferenceValue = item.Total - lastValue }); lastValue = item.Total; } else { int historyhour = int.Parse(string.Format("{0:00}{1:00}{2:00}", item.DateTime.Month, item.DateTime.Day, item.DateTime.Hour)); historylist.Add(new WaterPredictRecord() { DayHour = historyhour, RealTotalValue = item.Total, RealDifferenceValue = 0 }); lastValue = item.Total; } } bll.Inserts(historylist); // int a = 0; /* for (DateTime i = DateTime.Today.AddDays(-12); i < DateTime.Today; i = i.AddDays(1)) { for (int k = 0; k < 24; k++) { var ssso = int.Parse(string.Format("{0:00}{1:00}{2:00}", i.Month, i.Day, k)); alllist[a].DayHour = ssso; a++; } } bll.Updates(alllist);*/ SSAData.insert2daysPredictData(); //插入两天预测数据 var todayData = ConnectHelper.GetByPumpOneDayWaterData(DateTime.Today, DateTime.Today.AddDays(1), "1h").Where(x => x.DateTime.Hour <= DateTime.Now.Hour).ToList(); var starthour = int.Parse(string.Format("{0:00}{1:00}{2:00}", DateTime.Now.Month, DateTime.Now.Day, 0)); var endhour = int.Parse(string.Format("{0:00}{1:00}{2:00}", todayData.Last().DateTime.Month, todayData.Last().DateTime.Day, todayData.Last().DateTime.Hour)); var alllist2 = bll.GetEnd2Days(300); var currentdata = alllist2.Where(x => x.DayHour >= starthour && x.DayHour <= endhour).OrderBy(x => x.DayHour).ToList(); //找出所有数据中和取实时数据匹配的数据并赋值 for (int i = 0; i < currentdata.Count; i++) { currentdata[i].RealTotalValue = todayData[i].Total; if (i >= 1) { currentdata[i].RealDifferenceValue = todayData[i].Total - todayData[i - 1].Total; } else { // currentdata[i].RealDifferenceValue = todayData[i].Total-bll.GetEnd2Days(24).Last().RealValue; } } bll.UpdatesRealValue(currentdata); return "ok"; } /// /// 最近3条记录 /// [Route("GetLastRecord3")] [HttpGet] public List GetLastRecord3() { IStation.ChEr.BLL.WaterPredictRecord bll = new ChEr.BLL.WaterPredictRecord(); return bll.GetLast(3); } /// /// 保存到数据库 /// [Route("InsertRecord")] [HttpGet] public string InsertRecord() { IStation.ChEr.BLL.WaterPredictRecord bll = new ChEr.BLL.WaterPredictRecord(); int dayHour = int.Parse(string.Format("{0:00}{1:00}{2:00}", DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour)); bll.Insert(new ChEr.Model.WaterPredictRecord() { DayHour = dayHour, RealTotalValue = -1, LastPredictTime = DateTime.Now, PredictTime = DateTime.Now, LastPredictValue = 104, PredictValueList = "101,103,105,107" }); return "ok"; } } }