Explorar o código

单机月度分析二级页面bug修复

wangb hai 2 días
pai
achega
3dd03c7647

+ 42 - 25
runeconomy-xk/src/main/java/com/gyee/runeconomy/service/singleanalysis/SingleAnalysisService.java

@@ -1366,6 +1366,8 @@ public class SingleAnalysisService {
             double tjxs = 0.0;//风机停机小时合计
             double zdxs = 0.0;//风机中断小时合计
             double rlxs = 0.0;//风机日历小时合计
+            double djxs = 0.0;//风机待机小时合计
+            double llfdl = 0.0;//风机理论发电量
 
             double fs = 0.0;//风机平均风速
             double sbklyl = 0.0;//风机平均设备可利用率
@@ -1384,7 +1386,7 @@ public class SingleAnalysisService {
             double jfpl = 0.0;//风机小风切入
 
             if (vo2.getFdl() != 0) {
-                fdl = new BigDecimal(vo1.getFdl()).divide(new BigDecimal(vo2.getFdl()), 2, RoundingMode.HALF_UP).subtract(new BigDecimal(1))
+                fdl = new BigDecimal(vo1.getFdl()).divide(new BigDecimal(vo2.getFdl()), 4, RoundingMode.HALF_UP).subtract(new BigDecimal(1))
                         .multiply(new BigDecimal(100)).doubleValue();//风机发电量合计
 
             } else {
@@ -1392,30 +1394,33 @@ public class SingleAnalysisService {
             }
 
             if (vo2.getYxxs() != 0) {
-                yxxs = new BigDecimal(vo1.getYxxs()).divide(new BigDecimal(vo2.getYxxs()), 2, RoundingMode.HALF_UP).subtract(new BigDecimal(1))
+                yxxs = new BigDecimal(vo1.getYxxs()).divide(new BigDecimal(vo2.getYxxs()), 4, RoundingMode.HALF_UP).subtract(new BigDecimal(1))
                         .multiply(new BigDecimal(100)).doubleValue();//风机运行小时合计
 
             } else {
                 yxxs = new BigDecimal(vo1.getYxxs()).multiply(new BigDecimal(100)).doubleValue();//风机运行小时合计
             }
             if (vo2.getGzxs() != 0) {
-                gzxs = new BigDecimal(vo1.getGzxs()).divide(new BigDecimal(vo2.getGzxs()), 2, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机故障小时合计
+                gzxs = new BigDecimal(vo1.getGzxs()).divide(new BigDecimal(vo2.getGzxs()), 4, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机故障小时合计
 
             } else {
                 gzxs = new BigDecimal(vo1.getGzxs()).multiply(new BigDecimal(100)).doubleValue();//风机故障小时合计
 
             }
             if (vo2.getJxxs() != 0) {
-                jxxs = new BigDecimal(vo1.getJxxs()).divide(new BigDecimal(vo2.getJxxs()), 2, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机检修小时合计
-
+                jxxs = new BigDecimal(vo1.getJxxs()).divide(new BigDecimal(vo2.getJxxs()), 4, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机检修小时合计
             } else {
                 jxxs = new BigDecimal(vo1.getJxxs()).multiply(new BigDecimal(100)).doubleValue();//风机检修小时合计
+            }
 
-
+            if (vo2.getJxxs() != 0) {
+                djxs = new BigDecimal(vo1.getDjxs()).divide(new BigDecimal(vo2.getDjxs()), 4, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机待机小时合计
+            } else {
+                djxs = new BigDecimal(vo1.getDjxs()).multiply(new BigDecimal(100)).doubleValue();//风机待机小时合计
             }
 
             if (vo2.getTjxs() != 0) {
-                tjxs = new BigDecimal(vo1.getTjxs()).divide(new BigDecimal(vo2.getTjxs()), 2, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机停机小时合计
+                tjxs = new BigDecimal(vo1.getTjxs()).divide(new BigDecimal(vo2.getTjxs()), 4, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机停机小时合计
 
             } else {
                 tjxs = new BigDecimal(vo1.getTjxs()).multiply(new BigDecimal(100)).doubleValue();//风机停机小时合计
@@ -1424,7 +1429,7 @@ public class SingleAnalysisService {
             }
 
             if (vo2.getZdxs() != 0) {
-                zdxs = new BigDecimal(vo1.getZdxs()).divide(new BigDecimal(vo2.getZdxs()), 2, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机中断小时合计
+                zdxs = new BigDecimal(vo1.getZdxs()).divide(new BigDecimal(vo2.getZdxs()), 4, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机中断小时合计
 
             } else {
                 zdxs = new BigDecimal(vo1.getZdxs()).multiply(new BigDecimal(100)).doubleValue();//风机中断小时合计
@@ -1433,7 +1438,7 @@ public class SingleAnalysisService {
             }
 
             if (vo2.getRlxs() != 0) {
-                rlxs = new BigDecimal(vo1.getRlxs()).divide(new BigDecimal(vo2.getRlxs()), 2, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机日历小时合计
+                rlxs = new BigDecimal(vo1.getRlxs()).divide(new BigDecimal(vo2.getRlxs()), 4, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机日历小时合计
 
             } else {
                 rlxs = new BigDecimal(vo1.getRlxs()).multiply(new BigDecimal(100)).doubleValue();//风机日历小时合计
@@ -1441,7 +1446,7 @@ public class SingleAnalysisService {
 
             }
             if (vo2.getFs() != 0) {
-                fs = new BigDecimal(vo1.getFs()).divide(new BigDecimal(vo2.getFs()), 2, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机平均风速
+                fs = new BigDecimal(vo1.getFs()).divide(new BigDecimal(vo2.getFs()), 4, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机平均风速
 
             } else {
                 fs = new BigDecimal(vo1.getFs()).multiply(new BigDecimal(100)).doubleValue();//风机平均风速
@@ -1449,7 +1454,7 @@ public class SingleAnalysisService {
             }
 
             if (vo2.getSbklyl() != 0) {
-                sbklyl = new BigDecimal(vo1.getSbklyl()).divide(new BigDecimal(vo2.getSbklyl()), 2, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机平均设备可利用率
+                sbklyl = new BigDecimal(vo1.getSbklyl()).divide(new BigDecimal(vo2.getSbklyl()), 4, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机平均设备可利用率
 
             } else {
                 sbklyl = new BigDecimal(vo1.getSbklyl()).multiply(new BigDecimal(100)).doubleValue();//风机平均设备可利用率
@@ -1457,7 +1462,7 @@ public class SingleAnalysisService {
             }
 
             if (vo2.getDxklyxs() != 0) {
-                dxklyxs = new BigDecimal(vo1.getDxklyxs()).divide(new BigDecimal(vo2.getDxklyxs()), 2, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机平均等效可利用系数
+                dxklyxs = new BigDecimal(vo1.getDxklyxs()).divide(new BigDecimal(vo2.getDxklyxs()), 4, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机平均等效可利用系数
 
             } else {
                 dxklyxs = new BigDecimal(vo1.getDxklyxs()).multiply(new BigDecimal(100)).doubleValue();//风机平均等效可利用系数
@@ -1465,7 +1470,7 @@ public class SingleAnalysisService {
             }
 
             if (vo2.getLyxs() != 0) {
-                lyxs = new BigDecimal(vo1.getLyxs()).divide(new BigDecimal(vo2.getLyxs()), 2, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机平均利用小时
+                lyxs = new BigDecimal(vo1.getLyxs()).divide(new BigDecimal(vo2.getLyxs()), 4, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机平均利用小时
 
             } else {
                 lyxs = new BigDecimal(vo1.getLyxs()).multiply(new BigDecimal(100)).doubleValue();//风机平均利用小时
@@ -1473,17 +1478,25 @@ public class SingleAnalysisService {
             }
 
             if (vo2.getYxfss() != 0) {
-                yxfss = new BigDecimal(vo1.getYxfss()).divide(new BigDecimal(vo2.getYxfss()), 2, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机平均有效风时速
+                yxfss = new BigDecimal(vo1.getYxfss()).divide(new BigDecimal(vo2.getYxfss()), 4, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机平均有效风时速
 
             } else {
                 yxfss = new BigDecimal(vo1.getYxfss()).multiply(new BigDecimal(100)).doubleValue();//风机平均有效风时速
 
             }
 
+            if (vo2.getFdl() != 0) {
+                llfdl = new BigDecimal(vo1.getLlfdl()).divide(new BigDecimal(vo2.getLlfdl()), 4, RoundingMode.HALF_UP).subtract(new BigDecimal(1))
+                        .multiply(new BigDecimal(100)).doubleValue();//风机理论发电量合计
+            } else {
+                llfdl = new BigDecimal(vo1.getLlfdl()).multiply(new BigDecimal(100)).doubleValue();//风机理论发电量合计
+            }
+
             vo.setFdl(StringUtils.round(fdl, 2));
             vo.setYxxs(StringUtils.round(yxxs, 2));
             vo.setGzxs(StringUtils.round(gzxs, 2));
             vo.setJxxs(StringUtils.round(jxxs, 2));
+            vo.setDjxs(StringUtils.round(djxs, 2));
             vo.setTjxs(StringUtils.round(tjxs, 2));
             vo.setZdxs(StringUtils.round(zdxs, 2));
             vo.setRlxs(StringUtils.round(rlxs, 2));
@@ -1495,7 +1508,7 @@ public class SingleAnalysisService {
 
 
             if (vo2.getGlyzxxs() != 0) {
-                glyzxxs = new BigDecimal(vo1.getGlyzxxs()).divide(new BigDecimal(vo2.getGlyzxxs()), 2, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机平均功率一致性系数
+                glyzxxs = new BigDecimal(vo1.getGlyzxxs()).divide(new BigDecimal(vo2.getGlyzxxs()), 4, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机平均功率一致性系数
 
             } else {
                 glyzxxs = new BigDecimal(vo1.getGlyzxxs()).multiply(new BigDecimal(100)).doubleValue();//风机平均功率一致性系数
@@ -1504,7 +1517,7 @@ public class SingleAnalysisService {
             vo.setGlyzxxs(StringUtils.round(glyzxxs, 2));
 
             if (vo2.getGzss() != 0) {
-                gzss = new BigDecimal(vo1.getGzss()).divide(new BigDecimal(vo2.getGzss()), 2, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机故障损失合计
+                gzss = new BigDecimal(vo1.getGzss()).divide(new BigDecimal(vo2.getGzss()), 4, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机故障损失合计
 
             } else {
                 gzss = new BigDecimal(vo1.getGzss()).multiply(new BigDecimal(100)).doubleValue();//风机故障损失合计
@@ -1512,7 +1525,7 @@ public class SingleAnalysisService {
             }
 
             if (vo2.getJxss() != 0) {
-                jxss = new BigDecimal(vo1.getJxss()).divide(new BigDecimal(vo2.getJxss()), 2, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机检修损失合计
+                jxss = new BigDecimal(vo1.getJxss()).divide(new BigDecimal(vo2.getJxss()), 4, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机检修损失合计
 
             } else {
                 jxss = new BigDecimal(vo1.getJxss()).multiply(new BigDecimal(100)).doubleValue();//风机检修损失合计
@@ -1520,7 +1533,7 @@ public class SingleAnalysisService {
             }
 
             if (vo2.getXdss() != 0) {
-                xdss = new BigDecimal(vo1.getXdss()).divide(new BigDecimal(vo2.getXdss()), 2, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机限电损失合计
+                xdss = new BigDecimal(vo1.getXdss()).divide(new BigDecimal(vo2.getXdss()), 4, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机限电损失合计
 
             } else {
                 xdss = new BigDecimal(vo1.getXdss()).multiply(new BigDecimal(100)).doubleValue();//风机限电损失合计
@@ -1528,21 +1541,21 @@ public class SingleAnalysisService {
             }
 
             if (vo2.getXnss() != 0) {
-                xnss = new BigDecimal(vo1.getXnss()).divide(new BigDecimal(vo2.getXnss()), 2, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机性能损失时合计
+                xnss = new BigDecimal(vo1.getXnss()).divide(new BigDecimal(vo2.getXnss()), 4, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机性能损失时合计
 
             } else {
                 xnss = new BigDecimal(vo1.getXnss()).multiply(new BigDecimal(100)).doubleValue();//风机性能损失时合计
 
             }
             if (vo2.getSlss() != 0) {
-                slss = new BigDecimal(vo1.getSlss()).divide(new BigDecimal(vo2.getSlss()), 2, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机受累损失合计
+                slss = new BigDecimal(vo1.getSlss()).divide(new BigDecimal(vo2.getSlss()), 4, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机受累损失合计
 
             } else {
                 slss = new BigDecimal(vo1.getSlss()).multiply(new BigDecimal(100)).doubleValue();//风机受累损失合计
 
             }
 
-            double llfdl = fdl + gzss + jxss + xdss + xnss + slss;
+//            double llfdl = fdl + gzss + jxss + xdss + xnss + slss;
 
             vo.setGzss(StringUtils.round(gzss, 2));
             vo.setJxss(StringUtils.round(jxss, 2));
@@ -1552,7 +1565,7 @@ public class SingleAnalysisService {
 
             vo.setLlfdl(StringUtils.round(llfdl, 2));
             if (vo2.getXfqr() != 0) {
-                xfqr = new BigDecimal(vo1.getXfqr()).divide(new BigDecimal(vo2.getXfqr()), 2, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机小风切入
+                xfqr = new BigDecimal(vo1.getXfqr()).divide(new BigDecimal(vo2.getXfqr()), 4, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机小风切入
 
             } else {
                 xfqr = new BigDecimal(vo1.getXfqr()).multiply(new BigDecimal(100)).doubleValue();//风机小风切入
@@ -1560,7 +1573,7 @@ public class SingleAnalysisService {
             }
 
             if (vo2.getXfqrhgl() != 0) {
-                xfqrhgl = new BigDecimal(vo1.getXfqrhgl()).divide(new BigDecimal(vo2.getXfqrhgl()), 2, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机小风切入合格率
+                xfqrhgl = new BigDecimal(vo1.getXfqrhgl()).divide(new BigDecimal(vo2.getXfqrhgl()), 4, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机小风切入合格率
 
             } else {
                 xfqrhgl = new BigDecimal(vo1.getXfqrhgl()).multiply(new BigDecimal(100)).doubleValue();//风机小风切入合格率
@@ -1570,7 +1583,7 @@ public class SingleAnalysisService {
             vo.setXfqrhgl(StringUtils.round(xfqrhgl, 2));
 
             if (vo2.getJfpl() != 0) {
-                jfpl = new BigDecimal(vo1.getJfpl()).divide(new BigDecimal(vo2.getJfpl()), 2, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机小风切入
+                jfpl = new BigDecimal(vo1.getJfpl()).divide(new BigDecimal(vo2.getJfpl()), 4, RoundingMode.HALF_UP).subtract(new BigDecimal(1)).multiply(new BigDecimal(100)).doubleValue();//风机小风切入
 
             } else {
                 jfpl = new BigDecimal(vo1.getJfpl()).multiply(new BigDecimal(100)).doubleValue();//风机小风切入
@@ -1648,8 +1661,12 @@ public class SingleAnalysisService {
         byzb.setYxfss(NumberUtil.round(yxfss, 2).doubleValue());
         double glyzxxs = list.stream().mapToDouble(TurbineInfoDay::getGlyzxxs).average().orElse(0.0);
         byzb.setGlyzxxs(NumberUtil.round(glyzxxs, 2).doubleValue());
-        double dxkyxs = (1200 * (dayOfMonth - 1) - gzmin / 60 - jxmin / 60) / (12 * (dayOfMonth - 1));
+        double dxkyxs = 0.0;
+        if (list.size() != 0) {
+            dxkyxs = (1200 * (dayOfMonth - 1) - gzmin / 60 - jxmin / 60) / (12 * (dayOfMonth - 1));
+        }
         byzb.setDxklyxs(NumberUtil.round(dxkyxs, 2).doubleValue());
         return byzb;
     }
+
 }