Quellcode durchsuchen

修复超短期功率预测单次预测报表NPE: toOnceData直接Double.parseDouble可空功率列, 功率为NULL时抛NPE, 新增空安全parsePower(null/空串/非数字返回0)用于功率与偏差计算

taosj vor 6 Tagen
Ursprung
Commit
85a89a3841

+ 19 - 3
forecast-backend-server/src/main/java/com/ufo/project/forecast/shortterm/power/controller/UltraShortTermPowerForecastingController.java

@@ -170,16 +170,32 @@ public class UltraShortTermPowerForecastingController extends BaseController
     {
         Long time = data.getForecastTime() + plusMinutes * 60;
         DataElectricityLocal realData = realDataMap.get(time);
-        String powerStr = timePowerConsumer.apply(data);
+        double power = parsePower(timePowerConsumer.apply(data));
         double actualPower = realData != null ? realData.getActualPower() : 0D;
         UltraShortTermPowerForecastOnceData onceData = new UltraShortTermPowerForecastOnceData().setTime(TimeUtils.utcToGmt8Format(time))
-        .setPower(Double.parseDouble(powerStr))
+        .setPower(power)
         .setMonitoredPower(actualPower)
-        .setBias(actualPower - Double.parseDouble(powerStr))
+        .setBias(actualPower - power)
         ;
         return onceData;
     }
 
+    private double parsePower(String power)
+    {
+        if (power == null || power.trim().isEmpty())
+        {
+            return 0D;
+        }
+        try
+        {
+            return Double.parseDouble(power.trim());
+        }
+        catch (NumberFormatException e)
+        {
+            return 0D;
+        }
+    }
+
     /**
      * 查询超短期功率预测数据,从 data_ultra_short_term_power_forecasting 表获取
      */