tangxu
2024-06-07 18a1a6faf82b1ad00d27f6fc7f5734c34aea32df
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
using IStation.ChEr.Application;
using IStation.ChEr.Model;
 
namespace IStation.Application
{
    /// <summary>
    /// Debug
    /// </summary>
    [Route("Debug")]
    [ApiDescriptionSettings("Debug", Name = "Debug(调试)", Order = 9900)]
    public class DebugController : IDynamicApiController
    {
        private IStation.ChEr.BLL.WaterPredictRecord bll = new IStation.ChEr.BLL.WaterPredictRecord();
 
        /// <summary>
        ///Debug log
        /// </summary>
        [Route("LogInfo")]
        [HttpGet]
        public string LogInfo()
        {
            /*      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));
 
                        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, "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";
        }
 
        /// <summary>
        ///  最近3条记录
        /// </summary>
        [Route("GetLastRecord3")]
        [HttpGet]
        public List<IStation.ChEr.Model.WaterPredictRecord> GetLastRecord3()
        {
            IStation.ChEr.BLL.WaterPredictRecord bll = new ChEr.BLL.WaterPredictRecord();
 
            return bll.GetLast(3);
        }
 
        /// <summary>
        /// 保存到数据库
        /// </summary>
        [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";
        }
    }
}