|
@@ -69,10 +69,7 @@ public class LargeScreenController {
|
|
BigDecimal wsSum = BigDecimal.ZERO;
|
|
BigDecimal wsSum = BigDecimal.ZERO;
|
|
int wsSumCount = 0;
|
|
int wsSumCount = 0;
|
|
int fzdSumCount = 0;
|
|
int fzdSumCount = 0;
|
|
- // 实际发电量总和
|
|
|
|
- BigDecimal realGeneratingSum = BigDecimal.ZERO;
|
|
|
|
- // 预测发电量总和
|
|
|
|
- BigDecimal forecastGenerating = BigDecimal.ZERO;
|
|
|
|
|
|
+
|
|
for (ElectricField electricField:electricFieldList){
|
|
for (ElectricField electricField:electricFieldList){
|
|
PowerStationStatusData powerStationStatusData = LatestDataUtil.getData(electricField.getStationCode(), PowerStationStatusData.class);
|
|
PowerStationStatusData powerStationStatusData = LatestDataUtil.getData(electricField.getStationCode(), PowerStationStatusData.class);
|
|
if (ElectricFieldTypeEnum.E1.name().equals(electricField.getElectricFieldTypeEnum())){
|
|
if (ElectricFieldTypeEnum.E1.name().equals(electricField.getElectricFieldTypeEnum())){
|
|
@@ -99,8 +96,6 @@ public class LargeScreenController {
|
|
fdOpenCapacitySum = fdOpenCapacitySum.add(powerStationStatusData.getOpenCapacity());
|
|
fdOpenCapacitySum = fdOpenCapacitySum.add(powerStationStatusData.getOpenCapacity());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
- // 计算实际发电量和预测发电量
|
|
|
|
}
|
|
}
|
|
// 封装首页场站数据统计
|
|
// 封装首页场站数据统计
|
|
ElectricFieldDataTotalDto electricFieldDataTotalDto = new ElectricFieldDataTotalDto();
|
|
ElectricFieldDataTotalDto electricFieldDataTotalDto = new ElectricFieldDataTotalDto();
|
|
@@ -118,7 +113,7 @@ public class LargeScreenController {
|
|
electricFieldDataTotalDto.setWsAvg(wsAvg);
|
|
electricFieldDataTotalDto.setWsAvg(wsAvg);
|
|
Map bizDataMap = new HashMap();
|
|
Map bizDataMap = new HashMap();
|
|
bizDataMap.put("electricFieldDataTotalDto",electricFieldDataTotalDto);
|
|
bizDataMap.put("electricFieldDataTotalDto",electricFieldDataTotalDto);
|
|
-
|
|
|
|
|
|
+ // 计算生成数据
|
|
ProductionDataTotalDto productionDataTotalDto = calGenerating();
|
|
ProductionDataTotalDto productionDataTotalDto = calGenerating();
|
|
bizDataMap.put("productionDataTotalDto",productionDataTotalDto);
|
|
bizDataMap.put("productionDataTotalDto",productionDataTotalDto);
|
|
// 获取预测发电量
|
|
// 获取预测发电量
|
|
@@ -343,23 +338,53 @@ public class LargeScreenController {
|
|
theoryPowerSum = theoryPowerSum.add(powerStationStatusData.getTheoryValue());
|
|
theoryPowerSum = theoryPowerSum.add(powerStationStatusData.getTheoryValue());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- // 获取中心侧预测的当日所有短期预测功率,前提判断上个月哪个预测准确率更准确用哪个模型
|
|
|
|
-// List<ForecastGeneratingDataDto> forecastGeneratingDataDtoList = calForecastGenerating();
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- Date dayEndTimeFor15 = DateTimeUtil.getMomentTimeFor15Minute(System.currentTimeMillis());
|
|
|
|
- QueryWrapper<ForecastPowerShortTermRegulation> forecastPowerShortTermRegulationQueryWrapper = new QueryWrapper<>();
|
|
|
|
- forecastPowerShortTermRegulationQueryWrapper.between("time", dayStartTime, dayEndTimeFor15);
|
|
|
|
- List<ForecastPowerShortTermRegulation> forecastPowerShortTermRegulationList = forecastPowerShortTermRegulationService.list(forecastPowerShortTermRegulationQueryWrapper);
|
|
|
|
- // 计算短期预测发电量
|
|
|
|
- BigDecimal forecastGeneratingSum = BigDecimal.ZERO;
|
|
|
|
- for (ForecastPowerShortTermRegulation forecastPowerShortTermRegulation : forecastPowerShortTermRegulationList) {
|
|
|
|
- if (forecastPowerShortTermRegulation.getFpValue()!=null){
|
|
|
|
- // 发电量(万kWh) = 预测值 * 0.25 * 0.1
|
|
|
|
- forecastGeneratingSum = forecastGeneratingSum.add(forecastPowerShortTermRegulation.getFpValue().multiply(new BigDecimal("0.25")).multiply(new BigDecimal("0.1")).setScale(2, RoundingMode.HALF_UP));
|
|
|
|
|
|
+ // 获取中心侧预测的当日所有短期预测功率
|
|
|
|
+ int counts = -4;
|
|
|
|
+ // 定义日期格式
|
|
|
|
+ SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
+ // 定义开始日期和结束日期(使用Calendar对象)
|
|
|
|
+ Calendar yesterdayDate = Calendar.getInstance();
|
|
|
|
+ //得到前一天
|
|
|
|
+ yesterdayDate.add(Calendar.DATE, -1);
|
|
|
|
+ //得到前三天天
|
|
|
|
+ Calendar endDate = Calendar.getInstance();
|
|
|
|
+ endDate.add(Calendar.DAY_OF_MONTH, counts);
|
|
|
|
+ List<DayPowerGeneration> dayPowerGenerationList = new ArrayList<>();
|
|
|
|
+ for (; !yesterdayDate.before(endDate); yesterdayDate.add(Calendar.DATE, -1)) {
|
|
|
|
+ QueryWrapper<DayPowerGeneration> generationWrapper = new QueryWrapper<>();
|
|
|
|
+ generationWrapper.eq("gen_date", formatter.format(yesterdayDate.getTime()));
|
|
|
|
+ generationWrapper.eq("prediction_data_source", "云端下发");
|
|
|
|
+ dayPowerGenerationList = dayPowerGenerationService.list(generationWrapper);
|
|
|
|
+ if (!dayPowerGenerationList.isEmpty()){
|
|
|
|
+ // 查出数据,并且有今日的预测数据,就退出当前循环。
|
|
|
|
+ dayPowerGenerationList = dayPowerGenerationList.stream().filter(f -> f.getTime().equals(formatter.format(new Date()))).collect(Collectors.toList());
|
|
|
|
+ if (dayPowerGenerationList.size()>0){
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
+ else{
|
|
|
|
+ // 否则,日期往前推一天,再查
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // 累加中心侧预测发电量
|
|
|
|
+ BigDecimal forecastGeneratingSum = BigDecimal.ZERO;
|
|
|
|
+ for (DayPowerGeneration dayPowerGeneration:dayPowerGenerationList){
|
|
|
|
+ forecastGeneratingSum = forecastGeneratingSum.add(dayPowerGeneration.getForecastPowerGeneration());
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+// Date dayEndTimeFor15 = DateTimeUtil.getMomentTimeFor15Minute(System.currentTimeMillis());
|
|
|
|
+// QueryWrapper<ForecastPowerShortTermRegulation> forecastPowerShortTermRegulationQueryWrapper = new QueryWrapper<>();
|
|
|
|
+// forecastPowerShortTermRegulationQueryWrapper.between("time", dayStartTime, dayEndTimeFor15);
|
|
|
|
+// List<ForecastPowerShortTermRegulation> forecastPowerShortTermRegulationList = forecastPowerShortTermRegulationService.list(forecastPowerShortTermRegulationQueryWrapper);
|
|
|
|
+// // 计算短期预测发电量
|
|
|
|
+// BigDecimal forecastGeneratingSum = BigDecimal.ZERO;
|
|
|
|
+// for (ForecastPowerShortTermRegulation forecastPowerShortTermRegulation : forecastPowerShortTermRegulationList) {
|
|
|
|
+// if (forecastPowerShortTermRegulation.getFpValue()!=null){
|
|
|
|
+// // 发电量(万kWh) = 预测值 * 0.25 * 0.1
|
|
|
|
+// forecastGeneratingSum = forecastGeneratingSum.add(forecastPowerShortTermRegulation.getFpValue().multiply(new BigDecimal("0.25")).multiply(new BigDecimal("0.1")).setScale(2, RoundingMode.HALF_UP));
|
|
|
|
+// }
|
|
|
|
+// }
|
|
ProductionDataTotalDto productionDataTotalDto = new ProductionDataTotalDto();
|
|
ProductionDataTotalDto productionDataTotalDto = new ProductionDataTotalDto();
|
|
productionDataTotalDto.setRealGeneratingSum(realGeneratingSum);
|
|
productionDataTotalDto.setRealGeneratingSum(realGeneratingSum);
|
|
productionDataTotalDto.setForecastGeneratingSum(forecastGeneratingSum);
|
|
productionDataTotalDto.setForecastGeneratingSum(forecastGeneratingSum);
|