xusl 7 ماه پیش
والد
کامیت
0b7bbea231

+ 40 - 6
cpp-admin/src/main/java/com/cpp/web/controller/largeScreen/LargeScreenController.java

@@ -1,16 +1,19 @@
 package com.cpp.web.controller.largeScreen;
 
+import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.cpp.common.core.domain.R;
 import com.cpp.system.service.ISysConfigService;
 import com.cpp.web.domain.station.*;
 import com.cpp.web.domain.station.enums.ElectricFieldTypeEnum;
 import com.cpp.web.dto.largeScreen.ElectricFieldDataTotalDto;
+import com.cpp.web.dto.largeScreen.ForecastGeneratingDataDto;
 import com.cpp.web.dto.largeScreen.ProductionDataTotalDto;
 import com.cpp.web.service.station.*;
 import com.cpp.web.utils.DateTimeUtil;
 import com.cpp.web.utils.LatestDataUtil;
 import lombok.RequiredArgsConstructor;
+import org.apache.commons.lang.time.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -112,7 +115,8 @@ public class LargeScreenController {
 
         ProductionDataTotalDto productionDataTotalDto = calGenerating();
         bizDataMap.put("productionDataTotalDto",productionDataTotalDto);
-
+        // 获取预测发电量
+        calForecastGenerating();
 
         // 定义首页实际功率、可用、理论总和
         BigDecimal realSum = BigDecimal.ZERO;
@@ -324,15 +328,19 @@ public class LargeScreenController {
             // 统计实际功率总和
             if (powerStationStatusData.getRealValue()!=null){
                 realPowerSum = realPowerSum.add(powerStationStatusData.getRealValue());
-                // 发电量 = 实际 * 0.08
-                realGeneratingSum = realGeneratingSum.add(powerStationStatusData.getRealValue().multiply(new BigDecimal("0.08")).setScale(2, RoundingMode.HALF_UP));
+                // 发电量(万kWh) = 实际 * 0.08 * 0.1
+                realGeneratingSum = realGeneratingSum.add(powerStationStatusData.getRealValue().multiply(new BigDecimal("0.08")).multiply(new BigDecimal("0.1")).setScale(2, RoundingMode.HALF_UP));
             }
             // 统计理论功率总和
             if (powerStationStatusData.getTheoryValue()!=null){
                 theoryPowerSum = theoryPowerSum.add(powerStationStatusData.getTheoryValue());
             }
         }
-        // 获取当日所有短期预测功率
+        // 获取中心侧预测的当日所有短期预测功率,前提判断上个月哪个预测准确率更准确用哪个模型
+
+
+
+
         Date dayEndTimeFor15 = DateTimeUtil.getMomentTimeFor15Minute(System.currentTimeMillis());
         QueryWrapper<ForecastPowerShortTermRegulation> forecastPowerShortTermRegulationQueryWrapper = new QueryWrapper<>();
         forecastPowerShortTermRegulationQueryWrapper.between("time", dayStartTime, dayEndTimeFor15);
@@ -341,8 +349,8 @@ public class LargeScreenController {
         BigDecimal forecastGeneratingSum = BigDecimal.ZERO;
         for (ForecastPowerShortTermRegulation forecastPowerShortTermRegulation : forecastPowerShortTermRegulationList) {
             if (forecastPowerShortTermRegulation.getFpValue()!=null){
-                // 发电量 = 预测值 * 0.25
-                forecastGeneratingSum = forecastGeneratingSum.add(forecastPowerShortTermRegulation.getFpValue().multiply(new BigDecimal("0.25")).setScale(2, RoundingMode.HALF_UP));
+                // 发电量(万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();
@@ -352,4 +360,30 @@ public class LargeScreenController {
         productionDataTotalDto.setTheoryPowerSum(theoryPowerSum);
         return productionDataTotalDto;
     }
+
+    /**
+     * 统计首页未来15天预测总发电量
+     * @return
+     */
+    private ForecastGeneratingDataDto calForecastGenerating(){
+        // 获取未来15天的上报预测值
+        Date startTime = DateTimeUtil.getDayStartTime(DateUtils.addDays(new Date(), 1).getTime());
+        Date endTime = DateTimeUtil.getDayLastTime(DateUtils.addDays(new Date(), 15).getTime());
+        QueryWrapper dqsbWrapper = new QueryWrapper<>();
+        dqsbWrapper.eq("forecast_how_long_ago",1);
+        dqsbWrapper.between("time", startTime, endTime);
+        List<ForecastPowerShortTermRegulation> forecastPowerShortTermRegulationList = forecastPowerShortTermRegulationService.list(dqsbWrapper);
+        // 按场时间分组
+       Map<String, List<ForecastPowerShortTermRegulation>> shortTermDataGroup = forecastPowerShortTermRegulationList.stream()
+                .collect(Collectors.groupingBy(
+                        s -> {
+                            Date localDateTime = s.getTime();
+                            return DateUtil.format(localDateTime, "yyyy-MM-dd");
+                        }
+        ));
+        System.out.println(shortTermDataGroup);
+
+
+        return null;
+    }
 }

+ 5 - 5
cpp-ui/src/views/largeScreen/index.vue

@@ -572,11 +572,11 @@ export default {
           theoryPowerSum: productionDataTotalDto.theoryPowerSum,
         }
 
-        this.digitalDisk[0].num = this.formatNumber(sumMap.realSum) + ''
-        this.digitalDisk[1].num = this.formatNumber(sumMap.ableSum) + ''
-        this.digitalDisk[2].num = this.formatNumber(sumMap.theorySum) + ''
-        this.digitalDisk[3].num = this.formatNumber(sumMap.cdqSum) + ''
-        this.digitalDisk[4].num = this.formatNumber(sumMap.dqSum) + ''
+        // this.digitalDisk[0].num = this.formatNumber(sumMap.realSum) + ''
+        // this.digitalDisk[1].num = this.formatNumber(sumMap.ableSum) + ''
+        // this.digitalDisk[2].num = this.formatNumber(sumMap.theorySum) + ''
+        // this.digitalDisk[3].num = this.formatNumber(sumMap.cdqSum) + ''
+        // this.digitalDisk[4].num = this.formatNumber(sumMap.dqSum) + ''
         // 曲线图
         let curveMap = response.data.curveMap
         this.centerBottomParams = {