소스 검색

优化响应申报容量接口,增加获取预估响应容量的逻辑

james 10 시간 전
부모
커밋
44b8093fd9

+ 1 - 1
service-vpp/service-vpp-biz/src/main/java/com/usky/vpp/controller/web/SiteController.java

@@ -173,7 +173,7 @@ public class SiteController {
     }
 
     /**
-     * 响应申报容量
+     * 响应申报容量和预估响应容量
      * <p><b>GET</b> /site/{siteId}/declared-capacity</p>
      * <p>完整路径:GET /prod-api/service-vpp/site/{siteId}/declared-capacity</p>
      *

+ 2 - 1
service-vpp/service-vpp-biz/src/main/java/com/usky/vpp/service/impl/VppBaselineServiceImpl.java

@@ -176,7 +176,7 @@ public class VppBaselineServiceImpl implements VppBaselineService {
     }
 
     /**
-     * 查询站点响应申报容量。
+     * 查询站点响应申报容量和预估响应容量
      *
      * <p>公式:响应时段内同时间段历史负荷均值 × 修正系数 K × 执行时段小时数 / 2。</p>
      * <p>典型历史日、修正系数 K 计算规则与基线管理一致;历史均值仅取响应开始至结束时段。</p>
@@ -245,6 +245,7 @@ public class VppBaselineServiceImpl implements VppBaselineService {
         result.setCorrectionFactorK(correctionFactorK);
         result.setDeclaredCapacityKw(VppBaselineHelper.calculateDeclaredCapacityKw(
                 historicalAvgByTime, startTime, endTime, correctionFactorK));
+        result.setEstimatedResponseCapacityKw(VppBaselineHelper.calculateEstimatedResponseCapacityKw(todayActualByTime, startTime, endTime));
         result.setPoints(VppBaselineHelper.buildDeclaredCapacityPoints(
                 historicalAvgByTime, startTime, endTime, correctionFactorK));
         result.setDataSource("tsdb");

+ 2 - 0
service-vpp/service-vpp-biz/src/main/java/com/usky/vpp/service/vo/SiteDeclaredCapacityVO.java

@@ -22,6 +22,8 @@ public class SiteDeclaredCapacityVO {
     private BigDecimal correctionFactorK;
     /** 响应申报容量 kW(历史均值 × K × 执行时段小时数 / 2) */
     private BigDecimal declaredCapacityKw;
+    /** 预估响应容量 kW(estimated_response_capacity_kw) */
+    private BigDecimal estimatedResponseCapacityKw;
     /** 典型历史日(yyyy-MM-dd) */
     private List<String> referenceDates;
     /** 响应日类型:WORKDAY / NON_WORKDAY */

+ 13 - 0
service-vpp/service-vpp-biz/src/main/java/com/usky/vpp/util/VppBaselineHelper.java

@@ -297,6 +297,19 @@ public final class VppBaselineHelper {
         return applyDeclaredCapacityFormula(historicalAvg, correctionFactorK, windowStart, windowEnd);
     }
 
+    /**
+     * 预估响应容量 = 响应时段内今日负荷均值。
+     */
+    public static BigDecimal calculateEstimatedResponseCapacityKw(Map<String, BigDecimal> historicalAvgByTime,
+                                                         LocalDateTime windowStart,
+                                                         LocalDateTime windowEnd) {
+        BigDecimal historicalAvg = averageValuesInWindow(historicalAvgByTime, windowStart, windowEnd);
+        if (historicalAvg == null || historicalAvg.compareTo(BigDecimal.ZERO) <= 0) {
+            return BigDecimal.ZERO;
+        }
+        return historicalAvg;
+    }
+
     private static BigDecimal applyDeclaredCapacityFormula(BigDecimal historicalAvg,
                                                            BigDecimal correctionFactorK,
                                                            LocalDateTime windowStart,