Ver código fonte

污泥焚烧过程不完全燃烧产生的CH₄和N₂O的CO₂排放当量-污泥焚烧过程排放的N₂O的CO₂当量 ch4和co2的计算因子取值逻辑调整

王苗苗 6 meses atrás
pai
commit
b10c1b068e

+ 20 - 21
slibra-system/src/main/java/com/slibra/business/service/impl/TXinyiCarbonMajorServiceImpl.java

@@ -29,7 +29,6 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import static com.slibra.common.constant.MyConstants.*;
-import static org.apache.el.lang.ELArithmetic.divide;
 
 /**
  * 碳排放主Service业务层处理
@@ -332,7 +331,7 @@ public class TXinyiCarbonMajorServiceImpl implements ITXinyiCarbonMajorService
             if(Objects.isNull(wnclDdclPfyz)){
                 wnclDdclPfyz = BigDecimal_0_01;
             }
-            wnclDdclCo2 = (wnclDdclClqnd.subtract(wnclDdclClhnd)).abs().multiply(wnclDdclZycll).multiply(wnclDdclPfyz).multiply(BigDecimal_44).divide(BigDecimal_28, NUMBER_SCALE_6, RoundingMode.HALF_UP).divide(BigDecimal_1000000, NUMBER_SCALE_6, RoundingMode.HALF_UP);
+            wnclDdclCo2 = (wnclDdclClqnd.subtract(wnclDdclClhnd)).abs().multiply(wnclDdclZycll).multiply(wnclDdclPfyz).multiply(BigDecimal_265).multiply(BigDecimal_44).divide(BigDecimal_28, NUMBER_SCALE_6, RoundingMode.HALF_UP).divide(BigDecimal_1000000, NUMBER_SCALE_6, RoundingMode.HALF_UP);
             tXinyiCarbonMajorUpdate.setWnclDdclCo2(wnclDdclCo2);
         }
 
@@ -360,33 +359,33 @@ public class TXinyiCarbonMajorServiceImpl implements ITXinyiCarbonMajorService
 
         //污泥处理-污泥焚烧过程不完全燃烧产生的CH₄和N₂O的CO₂排放当量-污泥焚烧过程排放的CH₄的CO₂当量(t CO₂-eq/月)
         //污泥处理-污泥焚烧过程不完全燃烧产生的CH₄和N₂O的CO₂排放当量-污泥焚烧过程排放的N₂O的CO₂当量(t CO₂-eq/月)
+        //逻辑调整:wnclBwqrsCh4Co2的排放因子根据类型获取; wnclBwqrsN2oCo2的排放因子根据判断用户是否填写,没有用默认值
         Integer wnclBwqrsRslx = tXinyiCarbonMajor.getWnclBwqrsRslx();
         BigDecimal wnclBwqrsFsl = tXinyiCarbonMajor.getWnclBwqrsFsl();
-        BigDecimal wnclBwqrsPfyz = tXinyiCarbonMajor.getWnclBwqrsPfyz();
+        BigDecimal wnclBwqrsPfyzOnlyForN2o = tXinyiCarbonMajor.getWnclBwqrsPfyz();
         BigDecimal wnclBwqrsCh4Co2 = null;
         BigDecimal wnclBwqrsN2oCo2 = null;
         if(!Objects.isNull(wnclBwqrsFsl)){
-            if(Objects.isNull(wnclBwqrsPfyz)){
-                if(Objects.isNull(wnclBwqrsRslx)){
-                    //类型前端必须选,不选默认就是0
+            BigDecimal wnclBwqrsPfyz = BigDecimal.ZERO;
+            if (!Objects.isNull(wnclBwqrsRslx)) {
+                if(0 == wnclBwqrsRslx){
+                    wnclBwqrsPfyz = BigDecimal_0_06;
+                } else if (1 == wnclBwqrsRslx) {
+                    wnclBwqrsPfyz = BigDecimal_1_88;
+                }else if (2 == wnclBwqrsRslx) {
+                    wnclBwqrsPfyz = BigDecimal_0_6;
+                }else if (3 == wnclBwqrsRslx) {
+                    wnclBwqrsPfyz = BigDecimal_2_37;
+                }else if (4 == wnclBwqrsRslx) {
                     wnclBwqrsPfyz = BigDecimal.ZERO;
-                }else {
-                    if(0 == wnclBwqrsRslx){
-                        wnclBwqrsPfyz = BigDecimal_0_06;
-                    } else if (1 == wnclBwqrsRslx) {
-                        wnclBwqrsPfyz = BigDecimal_1_88;
-                    }else if (2 == wnclBwqrsRslx) {
-                        wnclBwqrsPfyz = BigDecimal_0_6;
-                    }else if (3 == wnclBwqrsRslx) {
-                        wnclBwqrsPfyz = BigDecimal_2_37;
-                    }else if (4 == wnclBwqrsRslx) {
-                        wnclBwqrsPfyz = BigDecimal.ZERO;
-                    }
                 }
-            }
+            } /*else {
+                //类型前端必须选,不选默认就是0
+                wnclBwqrsPfyz = BigDecimal.ZERO;
+            }*/
             wnclBwqrsCh4Co2 = wnclBwqrsFsl.multiply(wnclBwqrsPfyz).multiply(BigDecimal_28).divide(BigDecimal_1000, NUMBER_SCALE_6, RoundingMode.HALF_UP);
             tXinyiCarbonMajorUpdate.setWnclBwqrsCh4Co2(wnclBwqrsCh4Co2);
-            wnclBwqrsN2oCo2 = wnclBwqrsFsl.multiply(BigDecimal_0_99).multiply(BigDecimal_265).divide(BigDecimal_1000, NUMBER_SCALE_6, RoundingMode.HALF_UP);
+            wnclBwqrsN2oCo2 = wnclBwqrsFsl.multiply(Objects.isNull(wnclBwqrsPfyzOnlyForN2o) ? BigDecimal_0_99 : wnclBwqrsPfyzOnlyForN2o).multiply(BigDecimal_265).divide(BigDecimal_1000, NUMBER_SCALE_6, RoundingMode.HALF_UP);
             tXinyiCarbonMajorUpdate.setWnclBwqrsN2oCo2(wnclBwqrsN2oCo2);
         }
 
@@ -494,7 +493,7 @@ public class TXinyiCarbonMajorServiceImpl implements ITXinyiCarbonMajorService
             }else {
                 thZssCo2Yz = BigDecimal.ZERO;
             }
-            thZssCo2 = ((BigDecimal_0_2.add(BigDecimal_0_5).subtract(BigDecimal_0_5)).abs().multiply(yz).add(thZssCo2Yz)).multiply(thZssGyl);
+            thZssCo2 = ((BigDecimal_0_2.add(BigDecimal_0_5).subtract(BigDecimal_0_5)).abs().multiply(yz).add(thZssCo2Yz)).multiply(thZssGyl).divide(BigDecimal_1000, NUMBER_SCALE_6, RoundingMode.HALF_UP);
             tXinyiCarbonMajorUpdate.setThZssCo2(thZssCo2);
         }
 

+ 7 - 6
slibra-system/src/main/resources/mapper/business/TXinyiCarbonMajorMapper.xml

@@ -462,11 +462,11 @@
 
     <select id="getDBDatasByMonth" resultType="com.slibra.business.res.CarbonSmartQueryDB">
         SELECT
-            SUM(jsl) jsl,
-            AVG(js_cod) jsCod,
-            AVG(cs_cod) csCod,
-            AVG(js_tn) jsTn,
-            AVG(cs_tn) csTn
+            ROUND( SUM( jsl ), 2 ) jsl,
+            ROUND( AVG( js_cod ), 2 ) jsCod,
+            ROUND( AVG( cs_cod ), 2 ) csCod,
+            ROUND( AVG( js_tn ), 2 ) jsTn,
+            ROUND( AVG( cs_tn ), 2 ) csTn
         FROM
             t_xinyi_daily
         WHERE
@@ -578,7 +578,8 @@
             <if test="hsTimeEnd != null  and hsTimeEnd != ''"> and add_year_month &lt;= #{hsTimeEnd}</if>
             <if test="createBy != null  and createBy != ''"> and create_by like concat('%', #{createBy}, '%')</if>
         </where>
-        and del_flag = 0 order by id desc
+        <!-- and del_flag = 0 order by id desc -->
+        and del_flag = 0 order by add_year_month asc
     </select>
 
     <select id="selectSumJslByMonth" resultType="java.math.BigDecimal">