Procházet zdrojové kódy

响应监测曲线结束时间改为响应结束后1小时零1分钟。

Co-authored-by: Cursor <cursoragent@cursor.com>
fuyuchuan před 5 dny
rodič
revize
67e50b8696

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

@@ -52,7 +52,7 @@ public class DrMonitorController {
 
     /**
      * 折线图:基线负荷 + 实际负荷 + 实际响应容量
-     * <p>id 为邀约表主键;时间范围为响应开始前 2 小时至响应结束后 1 小时。</p>
+     * <p>id 为邀约表主键;时间范围为响应开始前 2 小时至响应结束后 1 小时零 1 分钟。</p>
      */
     @GetMapping("/records/curve")
     public ApiResult<DrMonitorCurveVO> curve(@RequestParam("id") Long id) {

+ 1 - 1
service-vpp/service-vpp-biz/src/main/java/com/usky/vpp/service/VppDrMonitorService.java

@@ -30,7 +30,7 @@ public interface VppDrMonitorService {
                                               List<Long> siteIds, Map<String, Object> params);
 
     /**
-     * 折线图:按邀约主键取站点与响应时段,查询范围为开始前 2 小时至结束后 1 小时,
+     * 折线图:按邀约主键取站点与响应时段,查询范围为开始前 2 小时至结束后 1 小时零 1 分钟
      * 返回基线负荷、实际负荷与实际响应容量。
      *
      * @param invitationId 邀约表主键 id

+ 3 - 2
service-vpp/service-vpp-biz/src/main/java/com/usky/vpp/service/impl/VppDrMonitorServiceImpl.java

@@ -74,6 +74,7 @@ public class VppDrMonitorServiceImpl implements VppDrMonitorService {
     private static final int SCALE = 4;
     private static final int CURVE_BEFORE_HOURS = 2;
     private static final int CURVE_AFTER_HOURS = 1;
+    private static final int CURVE_AFTER_MINUTES = 1;
     private static final DateTimeFormatter DATE_FMT = DateTimeFormatter.ofPattern("yyyy-MM-dd");
     private static final DateTimeFormatter DATE_TIME_FMT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
     private static final DateTimeFormatter TIME_FMT = DateTimeFormatter.ofPattern("HH:mm");
@@ -195,7 +196,7 @@ public class VppDrMonitorServiceImpl implements VppDrMonitorService {
         LocalDateTime responseStart = resolveInvitationResponseStart(invitation, event);
         LocalDateTime responseEnd = resolveInvitationResponseEnd(invitation, event);
         LocalDateTime queryStart = responseStart.minusHours(CURVE_BEFORE_HOURS);
-        LocalDateTime queryEnd = responseEnd.plusHours(CURVE_AFTER_HOURS);
+        LocalDateTime queryEnd = responseEnd.plusHours(CURVE_AFTER_HOURS).plusMinutes(CURVE_AFTER_MINUTES);
         if (queryEnd.isBefore(queryStart)) {
             throw new BusinessException("响应时段无效");
         }
@@ -449,7 +450,7 @@ public class VppDrMonitorServiceImpl implements VppDrMonitorService {
     }
 
     /**
-     * 按站点可控设备查询实际负荷,时间范围为响应开始前 2 小时至结束后 1 小时。
+     * 按站点可控设备查询实际负荷,时间范围为响应开始前 2 小时至结束后 1 小时零 1 分钟
      * <p>调用方式对齐 {@link VppTsdbQueryService#queryBaselineAvgByTimePoint}:
      * 设备 UUID + 时段 + {@link VppBaselineHelper#POWER_METRICS},再按 interval 聚合成 HH:mm。</p>
      */