Ver código fonte

做一下兜底处理 防止前端跳过校验

王苗苗 7 meses atrás
pai
commit
f7272fca70

+ 14 - 12
slibra-system/src/main/java/com/slibra/business/service/impl/TXinyiCarbonMajorServiceImpl.java

@@ -200,7 +200,7 @@ public class TXinyiCarbonMajorServiceImpl implements ITXinyiCarbonMajorService
         if(!Objects.isNull(wjtykuCo2)){
             wsclTotalCo2 = wsclTotalCo2.add(wjtykuCo2);
         }
-        tXinyiCarbonMajorUpdate.setWsclTotalCo2(wsclTotalCo2);
+        tXinyiCarbonMajorUpdate.setWsclTotalCo2(BigDecimal.ZERO.compareTo(wsclTotalCo2) == 0 ? null : wsclTotalCo2);
 
 
         //------------能源、药剂排放------------
@@ -292,7 +292,7 @@ public class TXinyiCarbonMajorServiceImpl implements ITXinyiCarbonMajorService
             nyyjTotalCo2 = nyyjTotalCo2.add(wscljdyjxhCo2);
         }
         //总的
-        tXinyiCarbonMajorUpdate.setNyyjTotalCo2(nyyjTotalCo2);
+        tXinyiCarbonMajorUpdate.setNyyjTotalCo2(BigDecimal.ZERO.compareTo(nyyjTotalCo2) == 0 ? null : nyyjTotalCo2);
 
 
         //------------污泥处理------------
@@ -451,7 +451,7 @@ public class TXinyiCarbonMajorServiceImpl implements ITXinyiCarbonMajorService
             wnclTotalCo2 = wnclTotalCo2.subtract(wnclWnrjQtN2oCo2);
         }
         //总量
-        tXinyiCarbonMajorUpdate.setWnclTotalCo2(wnclTotalCo2);
+        tXinyiCarbonMajorUpdate.setWnclTotalCo2(BigDecimal.ZERO.compareTo(wnclTotalCo2) == 0 ? null : wnclTotalCo2);
 
         //------------替碳、碳汇------------
         BigDecimal ttthTotalCo2 = BigDecimal.ZERO;
@@ -512,10 +512,13 @@ public class TXinyiCarbonMajorServiceImpl implements ITXinyiCarbonMajorService
         if(!Objects.isNull(wnfshrjnlyTTL)){
             ttthTotalCo2 = ttthTotalCo2.add(wnfshrjnlyTTL);
         }
-        tXinyiCarbonMajorUpdate.setTtthTotalCo2(ttthTotalCo2);
+        tXinyiCarbonMajorUpdate.setTtthTotalCo2(BigDecimal.ZERO.compareTo(ttthTotalCo2) == 0 ? null : ttthTotalCo2);
 
         //计算各个大类和总的co2
-        tXinyiCarbonMajorUpdate.setZtTotalCo2(wsclTotalCo2.add(nyyjTotalCo2).add(wnclTotalCo2).subtract(ttthTotalCo2));
+        BigDecimal ztTotalCo2 = wsclTotalCo2.add(nyyjTotalCo2).add(wnclTotalCo2).subtract(ttthTotalCo2);
+        if(ztTotalCo2.compareTo(BigDecimal.ZERO) != 0){//这里计算取了个巧,默认它是0,否则需要多很多判断
+            tXinyiCarbonMajorUpdate.setZtTotalCo2(ztTotalCo2);
+        }
 
         //处理百分比信息
         if(nyyjTotalCo2.compareTo(BigDecimal.ZERO) > 0){//必须是正数
@@ -535,8 +538,7 @@ public class TXinyiCarbonMajorServiceImpl implements ITXinyiCarbonMajorService
 
         //处理本月份的 污水厂行业碳排放强度 和 污水厂行业碳排放强度-是否高于同行业平均水平
         BigDecimal avgJsl = this.tXinyiCarbonMajorMapper.selectSumJslByMonth(addYearMonth.replaceAll("-", "/"));
-        BigDecimal ztTotalCo2 = tXinyiCarbonMajorUpdate.getZtTotalCo2();
-        if(!Objects.isNull(avgJsl) && !Objects.isNull(ztTotalCo2)){
+        if(!Objects.isNull(avgJsl)){
             //2024年08月27日09:36:14 计算公式有调整:再乘以10的三次方。
             BigDecimal wschytpfqd = ztTotalCo2.divide(avgJsl, NUMBER_SCALE_6, RoundingMode.HALF_UP).multiply(BigDecimal_1000);
             tXinyiCarbonMajorUpdate.setWschytpfqd(wschytpfqd);
@@ -684,35 +686,35 @@ public class TXinyiCarbonMajorServiceImpl implements ITXinyiCarbonMajorService
             TXinyiCarbonMajor tXinyiCarbonMajorLastMonth = tXinyiCarbonMajors.get(0);
             BigDecimal nowCo2 = tXinyiCarbonMajorLastMonth.getWsclTotalCo2();
             BigDecimal lastMonthCo2 = tXinyiCarbonMajor.getWsclTotalCo2();
-            if(!Objects.isNull(nowCo2) && !Objects.isNull(lastMonthCo2)){
+            if(!Objects.isNull(nowCo2) && !Objects.isNull(lastMonthCo2) && BigDecimal.ZERO.compareTo(lastMonthCo2) != 0){//除数不能为0
                 tXinyiCarbonMajor.setWsclTotalCo2Hb(DecimalUtils.getAbsAndScale((nowCo2.subtract(lastMonthCo2)).divide(lastMonthCo2, NUMBER_SCALE_6, RoundingMode.HALF_UP) ,NUMBER_SCALE_6));
             }
 
             //能源、药剂碳排量-环比上个月
             nowCo2 = tXinyiCarbonMajorLastMonth.getNyyjTotalCo2();
             lastMonthCo2 = tXinyiCarbonMajor.getNyyjTotalCo2();
-            if(!Objects.isNull(nowCo2) && !Objects.isNull(lastMonthCo2)){
+            if(!Objects.isNull(nowCo2) && !Objects.isNull(lastMonthCo2) && BigDecimal.ZERO.compareTo(lastMonthCo2) != 0){//除数不能为0
                 tXinyiCarbonMajor.setNyyjTotalCo2Hb(DecimalUtils.getAbsAndScale((nowCo2.subtract(lastMonthCo2)).divide(lastMonthCo2, NUMBER_SCALE_6, RoundingMode.HALF_UP) ,NUMBER_SCALE_6));
             }
 
             //污泥处理碳排量-环比上个月
             nowCo2 = tXinyiCarbonMajorLastMonth.getWnclTotalCo2();
             lastMonthCo2 = tXinyiCarbonMajor.getWnclTotalCo2();
-            if(!Objects.isNull(nowCo2) && !Objects.isNull(lastMonthCo2)){
+            if(!Objects.isNull(nowCo2) && !Objects.isNull(lastMonthCo2) && BigDecimal.ZERO.compareTo(lastMonthCo2) != 0){//除数不能为0
                 tXinyiCarbonMajor.setWnclTotalCo2Hb(DecimalUtils.getAbsAndScale((nowCo2.subtract(lastMonthCo2)).divide(lastMonthCo2, NUMBER_SCALE_6, RoundingMode.HALF_UP) ,NUMBER_SCALE_6));
             }
 
             //替碳、碳汇替碳量-环比上个月
             nowCo2 = tXinyiCarbonMajorLastMonth.getTtthTotalCo2();
             lastMonthCo2 = tXinyiCarbonMajor.getTtthTotalCo2();
-            if(!Objects.isNull(nowCo2) && !Objects.isNull(lastMonthCo2)){
+            if(!Objects.isNull(nowCo2) && !Objects.isNull(lastMonthCo2) && BigDecimal.ZERO.compareTo(lastMonthCo2) != 0){//除数不能为0
                 tXinyiCarbonMajor.setTtthTotalCo2Hb(DecimalUtils.getAbsAndScale((nowCo2.subtract(lastMonthCo2)).divide(lastMonthCo2, NUMBER_SCALE_6, RoundingMode.HALF_UP) ,NUMBER_SCALE_6));
             }
 
             //总碳排放量-环比上个月
             nowCo2 = tXinyiCarbonMajorLastMonth.getZtTotalCo2();
             lastMonthCo2 = tXinyiCarbonMajor.getZtTotalCo2();
-            if(!Objects.isNull(nowCo2) && !Objects.isNull(lastMonthCo2)){
+            if(!Objects.isNull(nowCo2) && !Objects.isNull(lastMonthCo2) && BigDecimal.ZERO.compareTo(lastMonthCo2) != 0){//除数不能为0
                 tXinyiCarbonMajor.setZtTotalCo2Hb(DecimalUtils.getAbsAndScale((nowCo2.subtract(lastMonthCo2)).divide(lastMonthCo2, NUMBER_SCALE_6, RoundingMode.HALF_UP) ,NUMBER_SCALE_6));
             }
         }