duheng
2025-02-11 7e0414c91a51219a92515c90ccb803ebade5613a
WaterPredict/IStation.ChEr.WebApi.Predict/ÈÎÎñ/CalcWaterPredictJob.cs
@@ -43,7 +43,7 @@
            int dayHour = WaterPredictRecord.ConvertIntDay(DateTime.Now);
            //上一个小时
            int lastHour = WaterPredictRecord.ConvertIntDay(DateTime.Now.AddHours(-1));
            var twoDaysList = _bll.GetEnd2Days(1272);
            var twoDaysList = _bll.GetEnd2Days(600);
            //  LogHelper.Info("数据库取出" + JsonHelper.Object2Json(twoDaysList));
            //选中当前时间对应的数据库数据
            var select = twoDaysList.Find(x => x.DayHour == dayHour);
@@ -133,7 +133,7 @@
            //开始进行预测
            var beforeTwoDays = _bll.GetEnd2Days(350);
            var beforedata = beforeTwoDays.Where(x => x.DayHour <= dayHour).Take(240).ToList();
            var beforedata = beforeTwoDays.Where(x => x.DayHour <= dayHour).Take(360).ToList();
            List<Tuple<DateTime, double>> tupleList = beforedata
    .Select(input =>
    {
@@ -142,7 +142,7 @@
    }).ToList(); //转换为SSA算法所需入参
            tupleList = tupleList.OrderBy(x => x.Item1).ToList();  //按照时间进行排序
            var predictdata = _SSAPredictHelper.Predict(tupleList, 3600, 10, 2880, (float)0.99, 24);
            var predictdata = _SSAPredictHelper.Predict(tupleList, 3600, 15, 2880, (float)0.99, 24);
            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}", DateTime.Now.Month, DateTime.Now.Day, 23));
            var currentdata = twoDaysList.Where(x => x.DayHour >= starthour && x.DayHour <= endhour).OrderBy(x => x.DayHour).ToList();
@@ -153,7 +153,7 @@
                    currentdata[i].LastPredictValue = Math.Round(predictdata[i].Total, 0);
                    if (currentdata[i].LastPredictValue > 90000 || currentdata[i].LastPredictValue < 20000)
                    {
                        currentdata[i].Description += ",时间:" + DateTime.Now.ToString("HH:mm") + "预测数据偏差过大";
                        currentdata[i].Description += "----时间:" + DateTime.Now.ToString("HH:mm") + "预测数据偏差过大";
                        var realScadaDatas = ConnectHelper.GetLatelyOneHourValue("120s", out string error);
                        currentdata[i].BakData += JsonHelper.Object2Json(realScadaDatas);
                        currentdata[i].States = 0;
@@ -189,7 +189,7 @@
            List<WaterPredictRecord> waterPredictRecords = new List<WaterPredictRecord>();
            List<SSAInput> ssaInput = new List<SSAInput>();
            var alllist = _bll.GetEnd2Days(300);
            var alllist = _bll.GetEnd2Days(500);
            var lastdaystarthour = int.Parse(string.Format("{0:00}{1:00}{2:00}", DateTime.Today.AddDays(-1).Month, DateTime.Today.AddDays(-1).Day, 0));
            var lastdayendhour = int.Parse(string.Format("{0:00}{1:00}{2:00}", DateTime.Today.AddDays(-1).Month, DateTime.Today.AddDays(-1).Day, 23));
            var selectList = alllist.Where(x => x.DayHour <= lastdayendhour).ToList().Take(240);