Parcourir la source

经济运行报告增加受累和风能利用率,AGC曲线过滤大于当前时间数值

王波 il y a 2 semaines
Parent
commit
79fd20ee9b

+ 20 - 0
runeconomy-xk/src/main/java/com/gyee/runeconomy/service/EarlyWarning/ReportService.java

@@ -143,11 +143,29 @@ public class ReportService {
         double currentRunningWindHours = sumRounded(turbineList, t -> t.getYxfss());
         double lastYearRunningWindHours = sumRounded(tqturbineList, t -> t.getYxfss());
 
+        double fnlyl = turbineList.stream()
+                .mapToDouble(t -> t.getFnlyl() != null ? t.getFnlyl() : 0.0)
+                .average()
+                .orElse(0.0);
+
+        fnlyl = DoubleUtils.getRoundingNum(fnlyl, 2);
+
+        double tqfnlyl = tqturbineList.stream()
+                .mapToDouble(t -> t.getFnlyl() != null ? t.getFnlyl() : 0.0)
+                .average()
+                .orElse(0.0);
+        tqfnlyl = DoubleUtils.getRoundingNum(tqfnlyl ,2);
+
         double currentFaultLossPower = sumRounded(turbineList, t -> t.getGzss());
         currentFaultLossPower = DoubleUtils.getRoundingNum((currentFaultLossPower / 1000) ,2);
         double lastYearFaultLossPower = sumRounded(tqturbineList, t -> t.getGzss());
         lastYearFaultLossPower = DoubleUtils.getRoundingNum((lastYearFaultLossPower / 1000) ,2);
 
+        double slssdl = sumRounded(turbineList, t -> t.getSlss());
+        slssdl = DoubleUtils.getRoundingNum((slssdl / 1000) ,2);
+        double tqslssdl = sumRounded(tqturbineList, t -> t.getSlss());
+        tqslssdl = DoubleUtils.getRoundingNum((tqslssdl / 1000) ,2);
+
         double currentDispatchLossPower = sumRounded(turbineList, t -> t.getXdss());
 //        currentDispatchLossPower = new BigDecimal(currentDispatchLossPower).setScale(2, RoundingMode.HALF_UP).doubleValue();
         currentDispatchLossPower = new BigDecimal(currentDispatchLossPower).divide(BigDecimal.valueOf(1000), 2, RoundingMode.HALF_UP)  // 除以1000,并保留2位小数
@@ -288,7 +306,9 @@ public class ReportService {
         result.add(createIndicatorData("小风切入风速(m/s)", currentSmallWindSpeed, lastYearSmallWindSpeed));
 //        result.add(createIndicatorData("小风切入合格率", currentSmallWindRate, lastYearSmallWindRate));
         result.add(createIndicatorData("有效风时数(h)", currentRunningWindHours, lastYearRunningWindHours));
+        result.add(createIndicatorData("风能利用率(%)", fnlyl, tqfnlyl));
         result.add(createIndicatorData("故障损失电量(万kwh)", currentFaultLossPower, lastYearFaultLossPower));
+        result.add(createIndicatorData("受累损失电量(万kwh)", slssdl, tqslssdl));
         result.add(createIndicatorData("调度限电损失电量(万kwh)", currentDispatchLossPower, lastYearDispatchLossPower));
         result.add(createIndicatorData("计划检修损失电量(万kwh)", currentPlannedMaintenanceLossPower, lastYearPlannedMaintenanceLossPower));
         result.add(createIndicatorData("性能未达标损失电量(万kwh)", currentPerformanceLossPower, lastYearPerformanceLossPower));

+ 6 - 1
runeconomy-xk/src/main/java/com/gyee/runeconomy/service/agc/AgcDeviateService.java

@@ -170,7 +170,12 @@ public class AgcDeviateService {
         }
         if (ap.getMultiplier() != 1) {
             for (TsDoubleTsData pd : lpds) {
-                pd.setDoubleValue(pd.getDoubleValue() * ap.getMultiplier());
+                long now = new Date().getTime();
+                if (pd.getTs()> now){
+                    pd.setDoubleValue(0.0);
+                } else {
+                    pd.setDoubleValue(pd.getDoubleValue() * ap.getMultiplier());
+                }
             }
         }
         return lpds;