duheng
2025-02-07 c5136b7517998a076f1bd2e4abdda01decae8b6f
WaterPredict/IStation.ChEr.WebApi.Predict/ÈÎÎñ/CalcWaterPredictJob.cs
@@ -43,7 +43,8 @@
            int dayHour = WaterPredictRecord.ConvertIntDay(DateTime.Now);
            //上一个小时
            int lastHour = WaterPredictRecord.ConvertIntDay(DateTime.Now.AddHours(-1));
            var twoDaysList = _bll.GetEnd2Days(300);
            var twoDaysList = _bll.GetEnd2Days(1272);
            //  LogHelper.Info("数据库取出" + JsonHelper.Object2Json(twoDaysList));
            //选中当前时间对应的数据库数据
            var select = twoDaysList.Find(x => x.DayHour == dayHour);
            //当前的上一个小时的数据
@@ -70,6 +71,7 @@
                    select.Description += "嘉定二线数据有误" + line2error;
                    select.States = 0;
                }
                var line3 = PredictHelper.GetAccWater(allRealData, 2, out string line3error);
                if (line3error != string.Empty)
                {
@@ -77,6 +79,7 @@
                    select.Description += "嘉定三线数据有误" + line3error;
                    select.States = 0;
                }
                var pipe2400 = PredictHelper.GetAccWater(allRealData, 3, out string pipe2400error);
                if (pipe2400error != string.Empty)
                {
@@ -84,6 +87,7 @@
                    select.Description += "2400总管数据有误" + pipe2400error;
                    select.States = 0;
                }
                var pipe2700 = PredictHelper.GetAccWater(allRealData, 4, out string pipe2700error);
                if (pipe2700error != string.Empty)
                {
@@ -91,6 +95,7 @@
                    select.Description += "2600总管数据有误" + pipe2700error;
                    select.States = 0;
                }
                if (line1 != 0 || line2 != 0 || line3 != 0 || pipe2400 != 0 || pipe2700 != 0)
                {
                    select.RealDifferenceValue = line1 + line2 + line3 + pipe2400 + pipe2700;
@@ -106,22 +111,28 @@
                    LogHelper.Info(">>>>五条管内数据有异常");
                };
                //   select.RealDifferenceValue = select.RealTotalValue - lastValue.RealTotalValue;
                LogHelper.Info("替换数据");
                _bll.Update(select);
            }
            catch
            catch (Exception ex)
            {
                LogHelper.Info("出现错误,进入catch" + ex.Message);
                select.RealTotalValue = 0;
                select.States = 0;
                select.Description += ",时间:" + DateTime.Now.ToString("HH:mm") + "未能从众毅取到真实数据";
                select.RealDifferenceValue = lastValue.RealDifferenceValue; ;
                var ErrorBakData = ConnectHelper.GetLatelyOneHourValue("120s", out string error);
                select.BakData = JsonHelper.Object2Json(ErrorBakData);
                LogHelper.Info("准备修改数据库");
                _bll.Update(select);
                LogHelper.Info("众毅获取数据出现问题>>>>" + JsonHelper.Object2Json(ErrorBakData));
            }
            LogHelper.Info("开始获取历史数据");
            //开始进行预测
            var beforeTwoDays = _bll.GetEnd2Days(350);
            var beforedata = beforeTwoDays.Where(x => x.DayHour <= dayHour).Take(240).ToList();
            List<Tuple<DateTime, double>> tupleList = beforedata
    .Select(input =>
@@ -166,6 +177,7 @@
            {
                LogHelper.Info("今天一天的数据小于24条 ---不全");
            }
            LogHelper.Info("开始替换真实数据");
            _bll.BatSet(currentdata);
            LogHelper.Info("已经替换真实数据");
            return null;