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";
}
}
}