Просмотр исходного кода

超短期功率预测报表数值字段最多保留4位小数: 新增round4(BigDecimal HALF_UP, 4位), type=1的power/monitoredPower/bias(bias先按原始值计算再舍入)与type=0的monitoredPower套round4, power15..power240经avgPower本为3位小数无需改动, 导出Excel复用同一路径

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
taosj 3 часов с этого момента
Родитель
Сommit
09e5bdf2ea

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

@@ -176,13 +176,21 @@ public class UltraShortTermPowerForecastingController extends BaseController
         double power = parsePower(timePowerConsumer.apply(data));
         double actualPower = realData != null ? realData.getActualPower() : 0D;
         UltraShortTermPowerForecastOnceData onceData = new UltraShortTermPowerForecastOnceData().setTime(TimeUtils.utcToGmt8Format(time))
-        .setPower(power)
-        .setMonitoredPower(actualPower)
-        .setBias(actualPower - power)
+        .setPower(round4(power))
+        .setMonitoredPower(round4(actualPower))
+        .setBias(round4(actualPower - power))
         ;
         return onceData;
     }
 
+    /**
+     * 数值保留4位小数(四舍五入)
+     */
+    private double round4(double value)
+    {
+        return BigDecimal.valueOf(value).setScale(4, RoundingMode.HALF_UP).doubleValue();
+    }
+
     private double parsePower(String power)
     {
         if (power == null || power.trim().isEmpty())
@@ -238,7 +246,7 @@ public class UltraShortTermPowerForecastingController extends BaseController
             {
                 UltraShortTermPowerForecastData data = toData(entry.getKey(), entry.getValue());
                 if(realDataMap.containsKey(entry.getKey())){
-                    data.setMonitoredPower(realDataMap.get(entry.getKey()).getActualPower());
+                    data.setMonitoredPower(round4(realDataMap.get(entry.getKey()).getActualPower()));
                 }
                 result.add(data);
             }