Browse Source

[0924] 短期、中期、超短期取数优化

taosj 4 weeks ago
parent
commit
6adeb2f0be

+ 6 - 2
forecast-backend-server/src/main/java/com/ufo/project/data/service/impl/AbstractPowerForecastReportServiceImpl.java

@@ -15,6 +15,10 @@ import com.ufo.project.config.service.IConfigStationService;
 import com.ufo.project.forecast.shortterm.power.domain.ForecastPowerAverage;
 import com.ufo.project.model.domain.DataElectricityLocal;
 
+import lombok.extern.slf4j.Slf4j;
+
+
+@Slf4j
 public class AbstractPowerForecastReportServiceImpl {
 
     protected static final int SCALE = 3;
@@ -117,7 +121,6 @@ public class AbstractPowerForecastReportServiceImpl {
             long ts = r.getTm().getTime() / 1000;
             BigDecimal fp = forecastMap.get(ts);
             if (fp == null) continue;
-
             BigDecimal ap = new BigDecimal(r.getActualPower());
 
             BigDecimal diffMW = (ap.subtract(fp)).divide(operatingCapacity, 10, RoundingMode.HALF_UP);
@@ -267,7 +270,8 @@ public class AbstractPowerForecastReportServiceImpl {
             if (r.getTm() == null || r.getActualPower() == null) continue;
 
             Long ts = r.getTm().getTime() / 1000;
-            BigDecimal fp = getAccForecastReportPower.apply(rawForecastList, ts);
+            BigDecimal fp = forecastMap.get(ts);
+            //getAccForecastReportPower.apply(rawForecastList, ts);
             if (fp == null) continue;
 
             BigDecimal diff = (BigDecimal.valueOf(r.getActualPower()).subtract(fp)).abs().divide(operatingCapacity, SCALE, RoundingMode.HALF_UP);

+ 5 - 2
forecast-backend-server/src/main/java/com/ufo/project/data/service/impl/UltraShortTermPowerForecastReportServiceImpl.java

@@ -31,12 +31,15 @@ import com.ufo.project.forecast.supershort.service.IDataSuperShortTermForecastRe
 import com.ufo.project.model.domain.DataElectricityLocal;
 import com.ufo.project.model.service.IDataElectricityLocalService;
 
+import lombok.extern.slf4j.Slf4j;
+
 /**
  * 超短期预测报表Service业务层处理
  *
  * @author ufo
  * @date 2026-09-07
  */
+@Slf4j
 @Service
 public class UltraShortTermPowerForecastReportServiceImpl extends AbstractPowerForecastReportServiceImpl implements IUltraShortTermPowerForecastReportService
 {
@@ -309,12 +312,12 @@ public class UltraShortTermPowerForecastReportServiceImpl extends AbstractPowerF
      * @param datTimestamp
      * @return
      */
-    private boolean is4HoursBefore(long timestamp, long datTimestamp)
+    private boolean is4HoursBefore(long timestamp, long dataTimestamp)
     {
         // 4小时的秒数
         long fourHoursInSeconds = 4 * 60 * 60; 
         // 判断两者差值的绝对值是否刚好等于4小时
-        return Math.abs(timestamp - datTimestamp) == fourHoursInSeconds;
+        return timestamp - dataTimestamp == fourHoursInSeconds;
     }
 
     // ==================== 辅助方法 ====================

+ 1 - 0
forecast-backend-server/src/main/resources/mybatis/mediumpower/DataMediumTermPowerForecastReportMapper.xml

@@ -114,6 +114,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where entity_id = #{entityId}
           and forecast_time >= #{startTime}
           and forecast_time <= #{endTime}
+          and forecast_time - start_time = 864000
         ORDER BY forecast_time asc, start_time desc, _id DESC
     </select>
 </mapper>

+ 1 - 0
forecast-backend-server/src/main/resources/mybatis/power/DataShortTermPowerForecastReportMapper.xml

@@ -131,6 +131,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where entity_id = #{entityId}
           and forecast_time &gt;= #{startTime}
           and forecast_time &lt;= #{endTime}
+          and forecast_time - start_time = 86400
         ORDER BY forecast_time asc, start_time desc, _id DESC
     </select>
 </mapper>

+ 1 - 0
forecast-backend-server/src/main/resources/mybatis/supershort/DataSuperShortTermForecastReportMapper.xml

@@ -122,6 +122,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where entity_id = #{entityId}
           and forecast_time &gt;= #{startTime}
           and forecast_time &lt;= #{endTime}
+          and forecast_time - start_time = 14400
         ORDER BY forecast_time asc, start_time desc, _id DESC
     </select>
 </mapper>