| | |
| | | /// <returns></returns> |
| | | public Task Execute(IJobExecutionContext context) |
| | | { |
| | | LogHelper.Info(DateTime.Now.ToString()); |
| | | if (DateTime.Now.Hour == 0 && DateTime.Now.Minute == 5) |
| | | if (DateTime.Now.Hour == 0 && DateTime.Now.Minute == 15) |
| | | { |
| | | insert2daysPredictData(); |
| | | } |
| | | var TodayRealdataList = ConnectHelper.GetByPumpOneDayWaterData(DateTime.Today, DateTime.Today.AddDays(1), "1h").Where(x => x.DateTime.Hour <= DateTime.Now.Hour).ToList(); |
| | | //è·åå½åæ¥æåä»å¤©çææå¼ |
| | | int dayHour = WaterPredictRecord.ConvertIntDay(DateTime.Now); |
| | | int lastHour = WaterPredictRecord.ConvertIntDay(DateTime.Now.AddHours(-1)); |
| | | var TwoDaysList = _bll.GetEnd2Days(300); |
| | | LogHelper.Info("2"); |
| | | var select = TwoDaysList.Where(x => x.DayHour == dayHour).FirstOrDefault(); |
| | | var lastDifferenceValue = TwoDaysList.Where(x => x.DayHour == lastHour).FirstOrDefault(); |
| | | if (TodayRealdataList != null) |
| | | { |
| | | LogHelper.Info("å·²æ¾å°å½åæ¶é´åæææ°æ®"); |
| | |
| | | var secondLastElementTotal = TodayRealdataList[TodayRealdataList.Count - 2].Total; |
| | | select.RealTotalValue = TodayRealdataList.Last().Total; |
| | | select.RealDifferenceValue = lastElementTotal - secondLastElementTotal; |
| | | if (select.RealDifferenceValue == 0 || select.RealDifferenceValue < 0) |
| | | if (select.RealDifferenceValue == 0 || select.RealDifferenceValue < 0 || select.RealDifferenceValue > 100000) |
| | | { |
| | | if (PredictHelper.IsOpenState()) |
| | | { |
| | | select.Description = "ç宿°æ®åºç°å¼å¸¸"; |
| | | select.Description += ",æ¶é´:" + DateTime.Now.ToString("HH:mm") + "伿¯
æä¾ç宿°æ®åºç°å¼å¸¸"; |
| | | var ErrorBakData = ConnectHelper.GetByPumpOneDayWaterData(DateTime.Today, DateTime.Today.AddDays(1), "300s").Where(x => x.DateTime.Hour <= DateTime.Now.Hour).ToList(); //è·åå½åæ¥æåä»å¤©çææå¼ |
| | | select.BakData = JsonHelper.Object2Json(ErrorBakData); |
| | | select.States = 0; |
| | | if (lastDifferenceValue.RealDifferenceValue > 0) |
| | | { |
| | | select.RealDifferenceValue = lastDifferenceValue.RealDifferenceValue; |
| | | } |
| | | else |
| | | { |
| | | select.RealDifferenceValue = 60000; |
| | | } |
| | | _bll.Update(select); |
| | | return null; |
| | | } |
| | | else |
| | | { |
| | | if (lastDifferenceValue.RealDifferenceValue > 0) |
| | | { |
| | | select.RealDifferenceValue = lastDifferenceValue.RealDifferenceValue; |
| | | } |
| | | else |
| | | { |
| | | select.RealDifferenceValue = 60000; |
| | | } |
| | | select.States = 0; |
| | | _bll.Update(select); |
| | | } |
| | | } |
| | | else |
| | |
| | | { |
| | | select.RealTotalValue = TodayRealdataList.Last().Total; |
| | | select.RealDifferenceValue = TodayRealdataList.Last().Total - _bll.GetEnd2Days(240).Where(x => x.DayHour == WaterPredictRecord.ConvertIntDay(DateTime.Now.AddHours(-1))).Last().RealTotalValue; |
| | | if (select.RealDifferenceValue == 0 || select.RealDifferenceValue < 0) |
| | | if (select.RealDifferenceValue == 0 || select.RealDifferenceValue < 0 || select.RealDifferenceValue > 100000) |
| | | { |
| | | if (PredictHelper.IsOpenState()) |
| | | { |
| | | select.Description = "ç宿°æ®åºç°å¼å¸¸"; |
| | | select.Description += ",æ¶é´:" + DateTime.Now.ToString("HH:mm") + "伿¯
æä¾ç宿°æ®åºç°å¼å¸¸"; |
| | | var ErrorBakData = ConnectHelper.GetByPumpOneDayWaterData(DateTime.Today, DateTime.Today.AddDays(1), "300s").Where(x => x.DateTime.Hour <= DateTime.Now.Hour).ToList(); //è·åå½åæ¥æåä»å¤©çææå¼ |
| | | select.BakData = JsonHelper.Object2Json(ErrorBakData); |
| | | select.States = 0; |
| | | if (lastDifferenceValue.RealDifferenceValue > 0) |
| | | { |
| | | select.RealDifferenceValue = lastDifferenceValue.RealDifferenceValue; |
| | | } |
| | | else |
| | | { |
| | | select.RealDifferenceValue = 60000; |
| | | } |
| | | _bll.Update(select); |
| | | } |
| | | else |
| | | { |
| | | if (lastDifferenceValue.RealDifferenceValue > 0) |
| | | { |
| | | select.RealDifferenceValue = lastDifferenceValue.RealDifferenceValue; |
| | | } |
| | | else |
| | | { |
| | | select.RealDifferenceValue = 60000; |
| | | } |
| | | select.States = 1; |
| | | _bll.Update(select); |
| | | } |
| | | } |
| | |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | select.RealTotalValue = 0; |
| | | select.RealTotalValue = TodayRealdataList.Last().Total; |
| | | select.States = 0; |
| | | select.Description = "为ç宿°æ®èµå¼é误!" + "åå :" + e; |
| | | select.RealDifferenceValue = lastDifferenceValue.RealDifferenceValue; ; |
| | | select.Description += ",æ¶é´:" + DateTime.Now.ToString("HH:mm") + "éå°æªç¥é误!" + "åå :" + e; |
| | | var ErrorBakData = ConnectHelper.GetByPumpOneDayWaterData(DateTime.Today, DateTime.Today.AddDays(1), "300s").Where(x => x.DateTime.Hour <= DateTime.Now.Hour).ToList(); //è·åå½åæ¥æåä»å¤©çææå¼ |
| | | select.BakData = JsonHelper.Object2Json(ErrorBakData); |
| | | _bll.Update(select); |
| | | // LogHelper.Info("æªè½ä»ä¼æ¯
åå°ç宿°æ®,æ¶é´:" + DateTime.Now.ToString()); |
| | | LogHelper.Info("éå°æªç¥é误!" + "åå :" + e); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | select.RealTotalValue = 0; |
| | | select.States = 0; |
| | | select.RealDifferenceValue = 60000; |
| | | select.Description = "åå°çæ°æ®ä¸å½åæ¶é´ä¸å¹é
,ææ¾ä¸å°ä¸å½åæ¶é´å¹é
ç颿µå¼"; |
| | | var ErrorBakData = ConnectHelper.GetByPumpOneDayWaterData(DateTime.Today, DateTime.Today.AddDays(1), "300s").Where(x => x.DateTime.Hour <= DateTime.Now.Hour).ToList(); //è·åå½åæ¥æåä»å¤©çææå¼ |
| | | select.BakData = JsonHelper.Object2Json(ErrorBakData); |
| | | _bll.Update(select); |
| | | /* select.RealTotalValue = 0; |
| | | select.States = 0; |
| | | select.RealDifferenceValue = 60000; |
| | | select.Description += ",æ¶é´:" + DateTime.Now.ToString("HH:mm") + "åå°çæ°æ®ä¸å½åæ¶é´ä¸å¹é
,ææ¾ä¸å°ä¸å½åæ¶é´å¹é
ç颿µå¼"; |
| | | var ErrorBakData = ConnectHelper.GetByPumpOneDayWaterData(DateTime.Today, DateTime.Today.AddDays(1), "300s").Where(x => x.DateTime.Hour <= DateTime.Now.Hour).ToList(); //è·åå½åæ¥æåä»å¤©çææå¼ |
| | | select.BakData = JsonHelper.Object2Json(ErrorBakData); |
| | | _bll.Update(select);*/ |
| | | LogHelper.Info("æ¾ä¸å°å¯¹åºå½åæ¶é´å¯¹åºæ°æ® æ¶é´:" + DateTime.Now); |
| | | return null; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | select.RealTotalValue = 0; |
| | | select.States = 0; |
| | | select.Description = "æªè½ä»ä¼æ¯
åå°ç宿°æ®"; |
| | | select.RealDifferenceValue = 60000; |
| | | select.Description += ",æ¶é´:" + DateTime.Now.ToString("HH:mm") + "æªè½ä»ä¼æ¯
åå°ç宿°æ®"; |
| | | select.RealDifferenceValue = lastDifferenceValue.RealDifferenceValue; ; |
| | | var ErrorBakData = ConnectHelper.GetByPumpOneDayWaterData(DateTime.Today, DateTime.Today.AddDays(1), "300s").Where(x => x.DateTime.Hour <= DateTime.Now.Hour).ToList(); //è·åå½åæ¥æåä»å¤©çææå¼ |
| | | select.BakData = JsonHelper.Object2Json(ErrorBakData); |
| | | _bll.Update(select); |
| | |
| | | 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(); |
| | | for (int i = 0; i < currentdata.Count; i++) |
| | | if (currentdata.Count == 24) |
| | | { |
| | | currentdata[i].LastPredictValue = Math.Round(predictdata[i].Total, 0); |
| | | if (currentdata[i].LastPredictValue > 90000 || currentdata[i].LastPredictValue < 20000) |
| | | for (int i = 0; i < currentdata.Count; i++) |
| | | { |
| | | currentdata[i].Description = "颿µæ°æ®åå·®è¿å¤§"; |
| | | var ErrorBakData = ConnectHelper.GetByPumpOneDayWaterData(DateTime.Today, DateTime.Today.AddDays(1), "300s").Where(x => x.DateTime.Hour <= DateTime.Now.Hour).ToList(); //è·åå½åæ¥æåä»å¤©çææå¼ |
| | | currentdata[i].BakData = JsonHelper.Object2Json(ErrorBakData); |
| | | currentdata[i].States = 0; |
| | | 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") + "颿µæ°æ®åå·®è¿å¤§"; |
| | | var ErrorBakData = ConnectHelper.GetByPumpOneDayWaterData(DateTime.Today, DateTime.Today.AddDays(1), "300s").Where(x => x.DateTime.Hour <= DateTime.Now.Hour).ToList(); //è·åå½åæ¥æåä»å¤©çææå¼ |
| | | currentdata[i].BakData = JsonHelper.Object2Json(ErrorBakData); |
| | | currentdata[i].States = 0; |
| | | } |
| | | else |
| | | { |
| | | currentdata[i].States = 1; |
| | | } |
| | | currentdata[i].LastPredictTime = DateTime.Now; |
| | | currentdata[i].PredictValueList = currentdata[i].LastPredictValue.ToString() + "," + currentdata[i].PredictValueList; |
| | | } |
| | | else |
| | | { |
| | | currentdata[i].States = 1; |
| | | } |
| | | currentdata[i].LastPredictTime = DateTime.Now; |
| | | currentdata[i].PredictValueList = currentdata[i].LastPredictValue.ToString() + "," + currentdata[i].PredictValueList; |
| | | } |
| | | else |
| | | { |
| | | LogHelper.Info("ä»å¤©ä¸å¤©çæ°æ®å°äº24æ¡ ---ä¸å
¨"); |
| | | } |
| | | _bll.BatSet(currentdata); |
| | | LogHelper.Info("å·²ç»æ¿æ¢ç宿°æ®"); |
| | |
| | | var predictdata = _SSAPredictHelper.Predict(tupleList, 3600, 10, 2880, (float)0.99, 48); |
| | | var list = alllist.Where(x => x.DayHour >= lastdaystarthour + 100 && x.DayHour <= lastdayendhour + 100).OrderBy(x => x.DayHour).ToList(); |
| | | //æ¾å°ä»å¤©ææç颿µæ°æ®,å¹¶æ¿æ¢ |
| | | for (int i = 0; i < predictdata.Count; i++) |
| | | if (list.Count == 0 || list.Count < 24) |
| | | { |
| | | if (i < 24) |
| | | { |
| | | list[i].LastPredictTime = DateTime.Now; |
| | | list[i].LastPredictValue = Math.Round(predictdata[i].Total, 0); |
| | | list[i].PredictValueList = list[i].LastPredictValue.ToString() + "," + list[i].PredictValueList; |
| | | list[i].States = 1; |
| | | } |
| | | else |
| | | LogHelper.Info("æ¿æ¢å½æ¥å®æ´é¢æµæ°æ®æ¶æ¾ä¸å°å¯¹åºæ¶é´--"); |
| | | for (int i = 24; i < predictdata.Count; i++) |
| | | { |
| | | int dayHour = int.Parse(string.Format("{0:00}{1:00}{2:00}", predictdata[i].DateTime.Month, predictdata[i].DateTime.Day, predictdata[i].DateTime.Hour)); |
| | | list.Add(new WaterPredictRecord { DayHour = dayHour, PredictTime = DateTime.Now, LastPredictValue = Math.Round(predictdata[i].Total, 0), States = 1 }); |
| | | } |
| | | _bll.BatSet(list); |
| | | LogHelper.Info("æ¶é´:" + DateTime.Now + "---颿µä»æä¸¤å¤©æ°æ®"); |
| | | return; |
| | | } |
| | | _bll.BatSet(list); |
| | | LogHelper.Info("æ¶é´:" + DateTime.Now + "---颿µä»æä¸¤å¤©æ°æ®"); |
| | | if (list.Count == 24) |
| | | { |
| | | for (int i = 0; i < predictdata.Count; i++) |
| | | { |
| | | if (i < 24) |
| | | { |
| | | list[i].LastPredictTime = DateTime.Now; |
| | | list[i].LastPredictValue = Math.Round(predictdata[i].Total, 0); |
| | | list[i].PredictValueList = list[i].LastPredictValue.ToString() + "," + list[i].PredictValueList; |
| | | list[i].States = 1; |
| | | } |
| | | else |
| | | { |
| | | int dayHour = int.Parse(string.Format("{0:00}{1:00}{2:00}", predictdata[i].DateTime.Month, predictdata[i].DateTime.Day, predictdata[i].DateTime.Hour)); |
| | | list.Add(new WaterPredictRecord { DayHour = dayHour, PredictTime = DateTime.Now, LastPredictValue = Math.Round(predictdata[i].Total, 0), States = 1 }); |
| | | } |
| | | } |
| | | _bll.BatSet(list); |
| | | LogHelper.Info("æ¶é´:" + DateTime.Now + "---颿µä»æä¸¤å¤©æ°æ®"); |
| | | } |
| | | /* _bll.BatSet(list); |
| | | LogHelper.Info("æ¶é´:" + DateTime.Now + "---颿µä»æä¸¤å¤©æ°æ®");*/ |
| | | } |
| | | } |
| | | } |