tangxu
2024-06-07 18a1a6faf82b1ad00d27f6fc7f5734c34aea32df
WaterPredict/IStation.ChEr.Application.WaterPredict/01-info/DebugController.cs
@@ -1,11 +1,5 @@
using IStation;
using IStation.ChEr.Application;
using IStation.ChEr.DAL;
using IStation.ChEr.Application;
using IStation.ChEr.Model;
using IStation.Service;
using System;
using Yw;
using static IStation.Service.SSAPredictHelper;
namespace IStation.Application
{
@@ -25,33 +19,75 @@
        [HttpGet]
        public string LogInfo()
        {
            IStation.LogHelper.Info("info from debug api");
            /*      List<WaterPredictRecord> waterPredictRecord = new List<WaterPredictRecord>();
                  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));
                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);*/
            //var alllist = bll.GetEnd2Days(300);
                        waterPredictRecord.Add(new WaterPredictRecord { DayHour = dayHour, RealValue = item2.Total });
                    }
                }
                bll.Inserts(waterPredictRecord);*/
            List<SSAData> sSADatas = new List<SSAData>();
            /* 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<WaterPredictRecord>();
             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<WaterPredictRecord>();
            var historydata = ConnectHelper.GetByPumpOneDayWaterData(DateTime.Today.AddDays(-15), DateTime.Today);
            var historydata = ConnectHelper.GetByPumpOneDayWaterData(DateTime.Today.AddDays(-15), DateTime.Today, "1h");
            foreach (var item in historydata)
            {
                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));
                    historylist.Add(new WaterPredictRecord() { DayHour = historyhour, RealValue = item.Total });
                    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))
@@ -65,7 +101,7 @@
              }
              bll.Updates(alllist);*/
            SSAData.insert2daysPredictData();  //插入两天预测数据
            var todayData = ConnectHelper.GetByPumpOneDayWaterData(DateTime.Today, DateTime.Today.AddDays(1)).Where(x => x.DateTime.Hour <= DateTime.Now.Hour).ToList();
            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);
@@ -73,7 +109,15 @@
            //找出所有数据中和取实时数据匹配的数据并赋值
            for (int i = 0; i < currentdata.Count; i++)
            {
                currentdata[i].RealValue = todayData[i].Total;
                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";
@@ -100,7 +144,7 @@
        {
            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, RealValue = -1, LastPredictTime = DateTime.Now, PredictTime = DateTime.Now, LastPredictValue = 104, PredictValueList = "101,103,105,107" });
            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";
        }
    }