|
@@ -80,6 +80,13 @@ public class DayPowerGenerationServiceImpl extends ServiceImpl<DayPowerGeneratio
|
|
Date accuracyEndTime = DateTimeUtil.getDayStartTime(System.currentTimeMillis() - oneDay);
|
|
Date accuracyEndTime = DateTimeUtil.getDayStartTime(System.currentTimeMillis() - oneDay);
|
|
|
|
|
|
String forecastModel = "";
|
|
String forecastModel = "";
|
|
|
|
+ // 查询默认模型数据
|
|
|
|
+ String defaultModel = null;
|
|
|
|
+ for (SysDictData sysDictData : DictUtils.getDictCache("forecast_model")) {
|
|
|
|
+ if (null != sysDictData.getRemark() && sysDictData.getRemark().equals("default")) {
|
|
|
|
+ defaultModel = sysDictData.getDictValue();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
// 查询近一个月内平均准确率高的预测模型
|
|
// 查询近一个月内平均准确率高的预测模型
|
|
List<AccuracyPassRate> accuracyPassRateList = accuracyPassRateService.findByTimeBetweenAndStationCode(accuracyStartTime, accuracyEndTime, stationCode);
|
|
List<AccuracyPassRate> accuracyPassRateList = accuracyPassRateService.findByTimeBetweenAndStationCode(accuracyStartTime, accuracyEndTime, stationCode);
|
|
@@ -98,13 +105,6 @@ public class DayPowerGenerationServiceImpl extends ServiceImpl<DayPowerGeneratio
|
|
// 找出平均值最大的那一组
|
|
// 找出平均值最大的那一组
|
|
Optional<Map.Entry<String, Double>> maxAverageEntry = averageByCategory.entrySet().stream().max(Map.Entry.comparingByValue());
|
|
Optional<Map.Entry<String, Double>> maxAverageEntry = averageByCategory.entrySet().stream().max(Map.Entry.comparingByValue());
|
|
|
|
|
|
- // 查询默认模型数据
|
|
|
|
- String defaultModel = null;
|
|
|
|
- for (SysDictData sysDictData : DictUtils.getDictCache("forecast_model")) {
|
|
|
|
- if (null != sysDictData.getRemark() && sysDictData.getRemark().equals("default")) {
|
|
|
|
- defaultModel = sysDictData.getDictValue();
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
// 获取模型
|
|
// 获取模型
|
|
forecastModel = maxAverageEntry.isPresent() ? maxAverageEntry.get().getKey() : defaultModel;
|
|
forecastModel = maxAverageEntry.isPresent() ? maxAverageEntry.get().getKey() : defaultModel;
|
|
log.info("【"+stationCode + "】预测准确率最优模型为:" + forecastModel);
|
|
log.info("【"+stationCode + "】预测准确率最优模型为:" + forecastModel);
|
|
@@ -127,7 +127,7 @@ public class DayPowerGenerationServiceImpl extends ServiceImpl<DayPowerGeneratio
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
// 云端预测
|
|
// 云端预测
|
|
- List<ForecastPowerShortTermCloud> forecastPowerShortTermCloudList = forecastPowerShortTermCloudService.findByForecastTimeBetweenAndStationCode(startTime, endTime, stationCode, forecastModel);
|
|
|
|
|
|
+ List<ForecastPowerShortTermCloud> forecastPowerShortTermCloudList = forecastPowerShortTermCloudService.findByForecastTimeBetweenAndStationCode(startTime, endTime, stationCode, "".equals(forecastModel) ? defaultModel : forecastModel);
|
|
if (forecastPowerShortTermCloudList.size() > 0) {
|
|
if (forecastPowerShortTermCloudList.size() > 0) {
|
|
List<DayPowerGeneration> ydList = calculator(forecastPowerShortTermCloudList, "yd", startTime, stationCode);
|
|
List<DayPowerGeneration> ydList = calculator(forecastPowerShortTermCloudList, "yd", startTime, stationCode);
|
|
this.saveBatch(ydList);
|
|
this.saveBatch(ydList);
|