| | |
| | | /// <returns></returns> |
| | | public Task Execute(IJobExecutionContext context) |
| | | { |
| | | if (DateTime.Now.Hour == 12 && DateTime.Now.Minute == 2) |
| | | if (DateTime.Now.Hour == 0 && DateTime.Now.Minute == 2) |
| | | { |
| | | insert2daysData(); |
| | | } |
| | | var realdata = ConnectHelper.GetByPumpOneDayWaterData(DateTime.Now); |
| | | var realdata = ConnectHelper.GetByPumpOneDayWaterData(DateTime.Now, DateTime.Now); |
| | | int dayHour = int.Parse(string.Format("{0:00}{1:00}{2:00}", DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour)); |
| | | var twoDaysList = _bll.GerEnd2Days(300); |
| | | var select = twoDaysList.Where(x => x.DayHour == dayHour).FirstOrDefault(); |
| | | select.RealValue = realdata.Total; |
| | | if (realdata.Last().DateTime.Hour != DateTime.Now.Hour) |
| | | { |
| | | select.RealValue = realdata.Last().Total; |
| | | } |
| | | else |
| | | { |
| | | select.RealValue = -1; |
| | | LogHelper.Info("æªè½ä»ä¸æ¯
åå°ç宿°æ®,æ¶é´:" + DateTime.Now.ToString()); |
| | | } |
| | | select.LastPredictTime = DateTime.Now; |
| | | _bll.Update(select); |
| | | var beforedata = twoDaysList.Where(x => x.DayHour <= dayHour).Take(240).ToList(); |
| | |
| | | .ToList(); |
| | | |
| | | var predictdata = _SSAPredictHelper.Predict(tupleList, 3600, 10, 3600, (float)0.99, 24); |
| | | var starthour = int.Parse(string.Format("{0:00}{1:00}{2:00}", DateTime.Now.Month, DateTime.Now.Day, 1)); |
| | | var endhour = int.Parse(string.Format("{0:00}{1:00}{2:00}", DateTime.Now.Month, DateTime.Now.Day, 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).ToList(); |
| | | for (int i = 0; i < currentdata.Count; i++) |
| | | { |
| | | currentdata[i].LastPredictValue = predictdata[i].Total; |
| | | currentdata[i].LastPredictValue = Math.Round(predictdata[i].Total, 1); |
| | | currentdata[i].LastPredictTime = DateTime.Now; |
| | | currentdata[i].PredictValueList = currentdata[i].LastPredictValue.ToString() + "," + currentdata[i].PredictValueList; |
| | | } |
| | |
| | | private void insert2daysData() |
| | | { |
| | | List<WaterPredictRecord> waterPredictRecords = new List<WaterPredictRecord>(); |
| | | List<SSAInput> SSAInput = new List<SSAInput>(); |
| | | var bll = new BLL.WaterPredictRecord(); |
| | | List<SSAInput> ssaInput = new List<SSAInput>(); |
| | | |
| | | var alllist = bll.GetLast(240); |
| | | var alllist = _bll.GerEnd2Days(240); |
| | | foreach (var item in alllist) |
| | | { |
| | | // æåæä»½ãæ¥æåå°æ¶é¨å |
| | |
| | | |
| | | // æé DateTime 对象 |
| | | DateTime dateTime = new DateTime(DateTime.Now.Year, month, day, hour, 0, 0); |
| | | SSAInput.Add(new SSAInput { Time = dateTime, Value = (float)item.RealValue }); |
| | | ssaInput.Add(new SSAInput { Time = dateTime, Value = (float)item.RealValue }); |
| | | } |
| | | List<Tuple<DateTime, double>> tupleList = SSAInput |
| | | ssaInput = ssaInput.OrderBy(x => x.Time).ToList(); |
| | | List<Tuple<DateTime, double>> tupleList = ssaInput |
| | | .Select(input => Tuple.Create(input.Time, (double)input.Value)) |
| | | .ToList(); |
| | | |
| | | var predictdata = _SSAPredictHelper.Predict(tupleList, 3600, 10, 3600, (float)0.99, 48); |
| | | foreach (var item in predictdata) |
| | | { |
| | | int dayHour = int.Parse(string.Format("{0:00}{1:00}{2:00}", item.DateTime.Month, item.DateTime.Day, item.DateTime.Hour)); |
| | | waterPredictRecords.Add(new WaterPredictRecord { DayHour = dayHour, PredictTime = DateTime.Now, LastPredictValue = item.Total }); |
| | | } |
| | | |
| | | foreach (var item in waterPredictRecords) |
| | | { |
| | | bll.Insert(item); |
| | | } |
| | | // bll.Inserts(waterPredictRecords); |
| | | _bll.BatSet(waterPredictRecords); |
| | | } |
| | | } |
| | | } |