Browse Source

碳排放智能体接口完善

王苗苗 7 months ago
parent
commit
3b8252fdee

+ 18 - 0
slibra-common/src/main/java/com/slibra/common/constant/MyConstants.java

@@ -86,6 +86,24 @@ public class MyConstants {
     public static final BigDecimal BigDecimal_0_06  = new BigDecimal("0.06");
     public static final BigDecimal BigDecimal_1_88  = new BigDecimal("1.88");
     public static final BigDecimal BigDecimal_2_37  = new BigDecimal("2.37");
+    public static final BigDecimal BigDecimal_0_99  = new BigDecimal("0.99");
+    public static final BigDecimal BigDecimal_0_0581  = new BigDecimal("0.0581");
+    public static final BigDecimal BigDecimal_0_1740  = new BigDecimal("0.1740");
+    public static final BigDecimal BigDecimal_0_0970  = new BigDecimal("0.0970");
+    public static final BigDecimal BigDecimal_0_0580  = new BigDecimal("0.0580");
+    public static final BigDecimal BigDecimal_0_0540  = new BigDecimal("0.0540");
+    public static final BigDecimal BigDecimal_0_0838 = new BigDecimal("0.0838");
+    public static final BigDecimal BigDecimal_0_52 = new BigDecimal("0.52");
+    public static final BigDecimal BigDecimal_0_41 = new BigDecimal("0.41");
+    public static final BigDecimal BigDecimal_0_3 = new BigDecimal("0.3");
+    public static final BigDecimal BigDecimal_0_5 = new BigDecimal("0.5");
+
+    public static final BigDecimal BigDecimal_0_03 = new BigDecimal("0.03");
+    public static final BigDecimal BigDecimal_0_61 = new BigDecimal("0.61");
+    public static final BigDecimal BigDecimal_2_116 = new BigDecimal("2.116");
+    public static final BigDecimal BigDecimal_0_006 = new BigDecimal("0.006");
+    public static final BigDecimal BigDecimal_0_7 = new BigDecimal("0.7");
+    public static final BigDecimal BigDecimal_1_45 = new BigDecimal("1.45");
 
     //温度的范围  超过该温度表示夏季;没有超过表示冬季
     public static final String TEMPERATURE_VALUE = "12";

+ 2 - 2
slibra-system/src/main/java/com/slibra/business/domain/TXinyiCarbonMajor.java

@@ -319,8 +319,8 @@ public class TXinyiCarbonMajor extends BaseEntity
     private BigDecimal thGfCo2;
 
     /** 替碳、碳汇-再生水回用的替碳量(宜按替代的商业供水的取水、生产和输送的碳排放量计算)-水厂规模 */
-    @Excel(name = "替碳、碳汇-再生水回用的替碳量", readConverterExp = "宜=按替代的商业供水的取水、生产和输送的碳排放量计算")
-    private BigDecimal thZssScgm;
+    @Excel(name = "替碳、碳汇-再生水回用的替碳量", readConverterExp = "宜=按替代的商业供水的取水、生产和输送的碳排放量计算 0小型  1中型 2大型")
+    private Integer thZssScgm;
 
     /** 替碳、碳汇-再生水回用的替碳量(宜按替代的商业供水的取水、生产和输送的碳排放量计算)-回用水供应量 (m³/月) */
     @Excel(name = "替碳、碳汇-再生水回用的替碳量", readConverterExp = "宜=按替代的商业供水的取水、生产和输送的碳排放量计算")

+ 244 - 15
slibra-system/src/main/java/com/slibra/business/service/impl/TXinyiCarbonMajorServiceImpl.java

@@ -126,11 +126,15 @@ public class TXinyiCarbonMajorServiceImpl implements ITXinyiCarbonMajorService
         reduce5.ifPresent(tXinyiCarbonMajorUpdate::setWnfshrjnlyTTL);
 
         //处理计算信息
+        //------------污水处理------------
+        BigDecimal wsclTotalCo2 = BigDecimal.ZERO;
         BigDecimal wsHsytkhClsl = tXinyiCarbonMajor.getWsHsytkhClsl();
         BigDecimal wsHsytkhJsCod = tXinyiCarbonMajor.getWsHsytkhJsCod();
         BigDecimal wsHsytkhCsCod = tXinyiCarbonMajor.getWsHsytkhCsCod();
+        BigDecimal wsHsytkhCo2 = null;
         if(!Objects.isNull(wsHsytkhClsl) && !Objects.isNull(wsHsytkhJsCod) && !Objects.isNull(wsHsytkhCsCod)){
-            tXinyiCarbonMajorUpdate.setWsHsytkhCo2((wsHsytkhJsCod.subtract(wsHsytkhCsCod)).abs().multiply(wsHsytkhClsl).multiply(BigDecimal_0_56).multiply(BigDecimal_0_1).divide(BigDecimal_1000000, NUMBER_SCALE_2, RoundingMode.HALF_UP));
+            wsHsytkhCo2 = (wsHsytkhJsCod.subtract(wsHsytkhCsCod)).abs().multiply(wsHsytkhClsl).multiply(BigDecimal_0_56).multiply(BigDecimal_0_1).divide(BigDecimal_1000000, NUMBER_SCALE_2, RoundingMode.HALF_UP);
+            tXinyiCarbonMajorUpdate.setWsHsytkhCo2(wsHsytkhCo2);
         }
         BigDecimal wsSjclCh4Clsl = tXinyiCarbonMajor.getWsSjclCh4Clsl();
         BigDecimal wsSjclCh4JsCod = tXinyiCarbonMajor.getWsSjclCh4JsCod();
@@ -138,15 +142,18 @@ public class TXinyiCarbonMajorServiceImpl implements ITXinyiCarbonMajorService
         BigDecimal wsSjclCh4Pfyz = tXinyiCarbonMajor.getWsSjclCh4Pfyz();
         BigDecimal wsSjclCh4Tsb = tXinyiCarbonMajor.getWsSjclCh4Tsb();
         BigDecimal wsSjclCh4Csc = tXinyiCarbonMajor.getWsSjclCh4Csc();
+        BigDecimal wsSjclCh4Co2 = null;
         if(!Objects.isNull(wsSjclCh4Clsl) && !Objects.isNull(wsSjclCh4JsCod) && !Objects.isNull(wsSjclCh4CsCod)){
             if(Objects.isNull(wsSjclCh4Pfyz)){
                 wsSjclCh4Pfyz = BigDecimal_0_0075;
             }
             //判断是否有实测
             if(!Objects.isNull(wsSjclCh4Tsb) && !Objects.isNull(wsSjclCh4Csc)){//有实测
-                tXinyiCarbonMajorUpdate.setWsSjclCh4Co2(((wsSjclCh4JsCod.subtract(wsSjclCh4CsCod)).abs().multiply(wsSjclCh4Clsl).multiply(wsSjclCh4Pfyz).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP).add(wsSjclCh4Tsb).add(wsSjclCh4Csc)).multiply(BigDecimal_28).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP));
+                wsSjclCh4Co2 = ((wsSjclCh4JsCod.subtract(wsSjclCh4CsCod)).abs().multiply(wsSjclCh4Clsl).multiply(wsSjclCh4Pfyz).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP).add(wsSjclCh4Tsb).add(wsSjclCh4Csc)).multiply(BigDecimal_28).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP);
+                tXinyiCarbonMajorUpdate.setWsSjclCh4Co2(wsSjclCh4Co2);
             }else{//没有实测
-                tXinyiCarbonMajorUpdate.setWsSjclCh4Co2((wsSjclCh4JsCod.subtract(wsSjclCh4CsCod)).abs().multiply(wsSjclCh4Clsl).multiply(wsSjclCh4Pfyz).multiply((BigDecimal_1.add(BigDecimal_0_2))).multiply(BigDecimal_28).divide(BigDecimal_1000000, NUMBER_SCALE_2, RoundingMode.HALF_UP));
+                wsSjclCh4Co2 = (wsSjclCh4JsCod.subtract(wsSjclCh4CsCod)).abs().multiply(wsSjclCh4Clsl).multiply(wsSjclCh4Pfyz).multiply((BigDecimal_1.add(BigDecimal_0_2))).multiply(BigDecimal_28).divide(BigDecimal_1000000, NUMBER_SCALE_2, RoundingMode.HALF_UP);
+                tXinyiCarbonMajorUpdate.setWsSjclCh4Co2(wsSjclCh4Co2);
             }
         }
 
@@ -154,26 +161,51 @@ public class TXinyiCarbonMajorServiceImpl implements ITXinyiCarbonMajorService
         BigDecimal wsTdN2oJsTn = tXinyiCarbonMajor.getWsTdN2oJsTn();
         BigDecimal wsTdN2oCsTn = tXinyiCarbonMajor.getWsTdN2oCsTn();
         BigDecimal wsTdN2oPfyz = tXinyiCarbonMajor.getWsTdN2oPfyz();
+        BigDecimal wsTdN2oCo2 = null;
         if(!Objects.isNull(wsTdN2oClsl) && !Objects.isNull(wsTdN2oJsTn) && !Objects.isNull(wsTdN2oCsTn)){
             if(Objects.isNull(wsTdN2oPfyz)){
                 wsTdN2oPfyz = BigDecimal_0_01;
             }
-            tXinyiCarbonMajorUpdate.setWsTdN2oCo2((wsTdN2oJsTn.subtract(wsTdN2oCsTn)).abs().multiply(wsTdN2oClsl).multiply(wsTdN2oPfyz).multiply(BigDecimal_265).multiply(BigDecimal_44).divide(BigDecimal_28, NUMBER_SCALE_2, RoundingMode.HALF_UP).divide(BigDecimal_1000000, NUMBER_SCALE_2, RoundingMode.HALF_UP));
+            wsTdN2oCo2 = (wsTdN2oJsTn.subtract(wsTdN2oCsTn)).abs().multiply(wsTdN2oClsl).multiply(wsTdN2oPfyz).multiply(BigDecimal_265).multiply(BigDecimal_44).divide(BigDecimal_28, NUMBER_SCALE_2, RoundingMode.HALF_UP).divide(BigDecimal_1000000, NUMBER_SCALE_2, RoundingMode.HALF_UP);
+            tXinyiCarbonMajorUpdate.setWsTdN2oCo2(wsTdN2oCo2);
         }
 
+        //处理 污水处理碳排放量
+        if(!Objects.isNull(wsHsytkhCo2)){
+            wsclTotalCo2 = wsclTotalCo2.add(wsHsytkhCo2);
+        }
+        if(!Objects.isNull(wsSjclCh4Co2)){
+            wsclTotalCo2 = wsclTotalCo2.add(wsSjclCh4Co2);
+        }
+        if(!Objects.isNull(wsTdN2oCo2)){
+            wsclTotalCo2 = wsclTotalCo2.add(wsTdN2oCo2);
+        }
+        //一对多的数据
+        BigDecimal wjtykuCo2 = tXinyiCarbonMajorUpdate.getWjtykuCo2();
+        if(!Objects.isNull(wjtykuCo2)){
+            wsclTotalCo2 = wsclTotalCo2.add(wjtykuCo2);
+        }
+        tXinyiCarbonMajorUpdate.setWsclTotalCo2(wsclTotalCo2);
+
+
+        //------------能源、药剂排放------------
         //耗电相关
         Long provinceId = tXinyiCarbonMajor.getProvinceId();
+        BigDecimal nyyjTotalCo2 = BigDecimal.ZERO;
+        BigDecimal yz = null;
+        BigDecimal nyyjDlxhZhdlCo2 = null;
         if(!Objects.isNull(provinceId)){
             SysDictData sysDictData = this.sysDictDataMapper.selectDictDataById(provinceId);
             if(Objects.nonNull(sysDictData)){
                 String dictValue = sysDictData.getDictValue();
                 if(StringUtils.isNotBlank(dictValue)){
-                    BigDecimal yz = new BigDecimal(dictValue);
+                    yz = new BigDecimal(dictValue);
 
                     //总耗电
                     BigDecimal nyyjDlxhZhdl = tXinyiCarbonMajor.getNyyjDlxhZhdl();
                     if(!Objects.isNull(nyyjDlxhZhdl)){
-                        tXinyiCarbonMajorUpdate.setNyyjDlxhZhdlCo2(nyyjDlxhZhdl.multiply(yz).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP));
+                        nyyjDlxhZhdlCo2 = nyyjDlxhZhdl.multiply(yz).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP);
+                        tXinyiCarbonMajorUpdate.setNyyjDlxhZhdlCo2(nyyjDlxhZhdlCo2);
                     }
 
                     //进水泵房
@@ -231,16 +263,42 @@ public class TXinyiCarbonMajorServiceImpl implements ITXinyiCarbonMajorService
         BigDecimal nyyjGrrlZq = tXinyiCarbonMajor.getNyyjGrrlZq();
         BigDecimal nyyjGrrlDyhz = tXinyiCarbonMajor.getNyyjGrrlDyhz();
         BigDecimal nyyjGrrlRl = tXinyiCarbonMajor.getNyyjGrrlRl();
+        BigDecimal nyyjGrrlCo2 = null;
         //2024年08月27日17:21:58  计算的时候,不用nyyjGrrlRl了,用前面的2个值,计算出来热力nyyjGrrlRl
         if(!Objects.isNull(nyyjGrrlZq) && !Objects.isNull(nyyjGrrlDyhz)){
-            tXinyiCarbonMajorUpdate.setNyyjGrrlCo2((nyyjGrrlDyhz.subtract(BigDecimal_83_74)).abs().multiply(nyyjGrrlZq).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP).multiply(BigDecimal_110000).divide(BigDecimal_1000000, NUMBER_SCALE_2, RoundingMode.HALF_UP));
+            nyyjGrrlCo2 = (nyyjGrrlDyhz.subtract(BigDecimal_83_74)).abs().multiply(nyyjGrrlZq).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP).multiply(BigDecimal_110000).divide(BigDecimal_1000000, NUMBER_SCALE_2, RoundingMode.HALF_UP);
+            tXinyiCarbonMajorUpdate.setNyyjGrrlCo2(nyyjGrrlCo2);
         }
 
+        //处理能源、药剂碳总碳排量
+        if(!Objects.isNull(nyyjDlxhZhdlCo2)){
+            nyyjTotalCo2 = nyyjTotalCo2.add(nyyjDlxhZhdlCo2);
+        }
+        if(!Objects.isNull(nyyjGrrlCo2)){
+            nyyjTotalCo2 = nyyjTotalCo2.add(nyyjGrrlCo2);
+        }
+        //处理一对多的两条数据
+        BigDecimal gdsnyrlCo2 = tXinyiCarbonMajorUpdate.getGdsnyrlCo2();
+        if(!Objects.isNull(gdsnyrlCo2)){
+            nyyjTotalCo2 = nyyjTotalCo2.add(gdsnyrlCo2);
+        }
+        BigDecimal wscljdyjxhCo2 = tXinyiCarbonMajorUpdate.getWscljdyjxhCo2();
+        if(!Objects.isNull(wscljdyjxhCo2)){
+            nyyjTotalCo2 = nyyjTotalCo2.add(wscljdyjxhCo2);
+        }
+        //总的
+        tXinyiCarbonMajorUpdate.setNyyjTotalCo2(nyyjTotalCo2);
+
+
+        //------------污泥处理------------
+        BigDecimal wnclTotalCo2 = BigDecimal.ZERO;
         //污泥处理-污泥厌氧消化沼气收集管路无意泄露的CH₄或沼气火炬燃烧不充分导致的碳排放-污泥厌氧消化过程排放的CH₄的CO₂当量(t CO₂-eq/月)
         BigDecimal wnclYyzqZqcl = tXinyiCarbonMajor.getWnclYyzqZqcl();
         BigDecimal wnclYyzqChZlfs = tXinyiCarbonMajor.getWnclYyzqChZlfs();
+        BigDecimal wnclYyzqCo2 = null;
         if(!Objects.isNull(wnclYyzqZqcl) && !Objects.isNull(wnclYyzqChZlfs)){
-            tXinyiCarbonMajorUpdate.setWnclYyzqCo2(wnclYyzqZqcl.multiply(wnclYyzqChZlfs).multiply(BigDecimal_0_05).multiply(BigDecimal_28).multiply(BigDecimal_16).divide(BigDecimal_22_4, NUMBER_SCALE_2, RoundingMode.HALF_UP).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP));
+            wnclYyzqCo2 = wnclYyzqZqcl.multiply(wnclYyzqChZlfs).multiply(BigDecimal_0_05).multiply(BigDecimal_28).multiply(BigDecimal_16).divide(BigDecimal_22_4, NUMBER_SCALE_2, RoundingMode.HALF_UP).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP);
+            tXinyiCarbonMajorUpdate.setWnclYyzqCo2(wnclYyzqCo2);
         }
 
         //污泥处理-单独处理污泥厌氧消化过程产生的碳排放量-单独处理污泥厌氧消化产生沼液的CO₂当量(t CO₂-eq/月)
@@ -248,32 +306,44 @@ public class TXinyiCarbonMajorServiceImpl implements ITXinyiCarbonMajorService
         BigDecimal wnclDdclClqnd = tXinyiCarbonMajor.getWnclDdclClqnd();
         BigDecimal wnclDdclClhnd = tXinyiCarbonMajor.getWnclDdclClhnd();
         BigDecimal wnclDdclPfyz = tXinyiCarbonMajor.getWnclDdclPfyz();
+        BigDecimal wnclDdclCo2 = null;
         if(!Objects.isNull(wnclDdclZycll) && !Objects.isNull(wnclDdclClqnd) && !Objects.isNull(wnclDdclClhnd)){
             if(Objects.isNull(wnclDdclPfyz)){
                 wnclDdclPfyz = BigDecimal_0_01;
             }
-            tXinyiCarbonMajorUpdate.setWnclDdclCo2((wnclDdclClqnd.subtract(wnclDdclClhnd)).abs().multiply(wnclDdclZycll).multiply(wnclDdclPfyz).multiply(BigDecimal_44).divide(BigDecimal_28, NUMBER_SCALE_2, RoundingMode.HALF_UP).divide(BigDecimal_1000000, NUMBER_SCALE_2, RoundingMode.HALF_UP));
+            wnclDdclCo2 = (wnclDdclClqnd.subtract(wnclDdclClhnd)).abs().multiply(wnclDdclZycll).multiply(wnclDdclPfyz).multiply(BigDecimal_44).divide(BigDecimal_28, NUMBER_SCALE_2, RoundingMode.HALF_UP).divide(BigDecimal_1000000, NUMBER_SCALE_2, RoundingMode.HALF_UP);
+            tXinyiCarbonMajorUpdate.setWnclDdclCo2(wnclDdclCo2);
         }
 
         //污泥处理-污泥好氧发酵过程生化反应的碳排放-污泥好氧发酵过程排放的CH₄的CO₂当量(t CO₂-eq/月)
         //污泥处理-污泥好氧发酵过程生化反应的碳排放-污泥好氧发酵过程排放的N₂O的CO₂当量(t CO₂-eq/月)
         BigDecimal wnclHyfjFjl = tXinyiCarbonMajor.getWnclHyfjFjl();
+        BigDecimal wnclHyfjCh4Co2 = null;
+        BigDecimal wnclHyfjN2oCo2 = null;
         if(!Objects.isNull(wnclHyfjFjl)){
-            tXinyiCarbonMajorUpdate.setWnclHyfjCh4Co2(wnclHyfjFjl.multiply(BigDecimal_10).multiply(BigDecimal_28).divide(BigDecimal_1000000, NUMBER_SCALE_2, RoundingMode.HALF_UP));
-            tXinyiCarbonMajorUpdate.setWnclHyfjN2oCo2(wnclHyfjFjl.multiply(BigDecimal_0_6).multiply(BigDecimal_265).divide(BigDecimal_1000000, NUMBER_SCALE_2, RoundingMode.HALF_UP));
+            wnclHyfjCh4Co2 = wnclHyfjFjl.multiply(BigDecimal_10).multiply(BigDecimal_28).divide(BigDecimal_1000000, NUMBER_SCALE_2, RoundingMode.HALF_UP);
+            tXinyiCarbonMajorUpdate.setWnclHyfjCh4Co2(wnclHyfjCh4Co2);
+            wnclHyfjN2oCo2 = wnclHyfjFjl.multiply(BigDecimal_0_6).multiply(BigDecimal_265).divide(BigDecimal_1000000, NUMBER_SCALE_2, RoundingMode.HALF_UP);
+            tXinyiCarbonMajorUpdate.setWnclHyfjN2oCo2(wnclHyfjN2oCo2);
         }
 
         //污泥处理-污泥干化焚烧或协同焚烧过程,化石源碳被氧化产生的化石源CO₂碳排放量-污泥好氧发酵过程排放的CH₄的CO₂当量(t CO₂-eq/月)
         BigDecimal wnclWnfsXhl = tXinyiCarbonMajor.getWnclWnfsXhl();
         BigDecimal wnclWnfsHtbl = tXinyiCarbonMajor.getWnclWnfsHtbl();
+        BigDecimal wnclWnfsCo2 = null;
+
         if(!Objects.isNull(wnclWnfsXhl) && !Objects.isNull(wnclWnfsHtbl)){
-            tXinyiCarbonMajorUpdate.setWnclWnfsCo2(wnclWnfsXhl.multiply(wnclWnfsHtbl).multiply(BigDecimal_0_12).multiply(BigDecimal_44).divide(BigDecimal_12, NUMBER_SCALE_2, RoundingMode.HALF_UP).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP));
+            wnclWnfsCo2 = wnclWnfsXhl.multiply(wnclWnfsHtbl).multiply(BigDecimal_0_12).multiply(BigDecimal_44).divide(BigDecimal_12, NUMBER_SCALE_2, RoundingMode.HALF_UP).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP);
+            tXinyiCarbonMajorUpdate.setWnclWnfsCo2(wnclWnfsCo2);
         }
 
         //污泥处理-污泥焚烧过程不完全燃烧产生的CH₄和N₂O的CO₂排放当量-污泥焚烧过程排放的CH₄的CO₂当量(t CO₂-eq/月)
+        //污泥处理-污泥焚烧过程不完全燃烧产生的CH₄和N₂O的CO₂排放当量-污泥焚烧过程排放的N₂O的CO₂当量(t CO₂-eq/月)
         Integer wnclBwqrsRslx = tXinyiCarbonMajor.getWnclBwqrsRslx();
         BigDecimal wnclBwqrsFsl = tXinyiCarbonMajor.getWnclBwqrsFsl();
         BigDecimal wnclBwqrsPfyz = tXinyiCarbonMajor.getWnclBwqrsPfyz();
+        BigDecimal wnclBwqrsCh4Co2 = null;
+        BigDecimal wnclBwqrsN2oCo2 = null;
         if(!Objects.isNull(wnclBwqrsFsl)){
             if(Objects.isNull(wnclBwqrsPfyz)){
                 if(Objects.isNull(wnclBwqrsRslx)){
@@ -292,14 +362,173 @@ public class TXinyiCarbonMajorServiceImpl implements ITXinyiCarbonMajorService
                         wnclBwqrsPfyz = BigDecimal.ZERO;
                     }
                 }
+                wnclBwqrsCh4Co2 = wnclBwqrsFsl.multiply(wnclBwqrsPfyz).multiply(BigDecimal_28).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP);
+                tXinyiCarbonMajorUpdate.setWnclBwqrsCh4Co2(wnclBwqrsCh4Co2);
+                wnclBwqrsN2oCo2 = wnclBwqrsFsl.multiply(BigDecimal_0_99).multiply(BigDecimal_265).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP);
+                tXinyiCarbonMajorUpdate.setWnclBwqrsN2oCo2(wnclBwqrsN2oCo2);
             }
-            tXinyiCarbonMajorUpdate.setWnclBwqrsCh4Co2(null);
         }
 
+        //污泥处理-污泥热解碳化或气化过程化石源CO-污泥热解过程排放的CH₄的CO₂当量(t CO₂-eq/月)
+        BigDecimal wnclWnrjByhXhl = tXinyiCarbonMajor.getWnclWnrjByhXhl();
+        BigDecimal wnclWnrjByhHtbl = tXinyiCarbonMajor.getWnclWnrjByhHtbl();
+        BigDecimal wnclWnrjByhCo2 = null;
+        if(!Objects.isNull(wnclWnrjByhHtbl) && !Objects.isNull(wnclWnrjByhXhl)){
+            wnclWnrjByhCo2 = wnclWnrjByhXhl.multiply(wnclWnrjByhHtbl).multiply(BigDecimal_0_12).multiply(BigDecimal_44).divide(BigDecimal_12, NUMBER_SCALE_2, RoundingMode.HALF_UP).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP);
+            tXinyiCarbonMajorUpdate.setWnclWnrjByhCo2(wnclWnrjByhCo2);
+        }
 
-        //处理百分比信息
+        //污泥处理-污泥热解碳化或气化过程产生的CH₄和N₂O的CO₂排放当量-污泥热解过程排放的CH₄的CO₂当量(t CO₂-eq/月)
+        //污泥处理-污泥热解碳化或气化过程产生的CH₄和N₂O的CO₂排放当量-污泥热解过程排放的N₂O的CO₂当量(t CO₂-eq/月)
+        Integer wnclWnrjQtLx = tXinyiCarbonMajor.getWnclWnrjQtLx();
+        BigDecimal wnclWnrjQtXhl = tXinyiCarbonMajor.getWnclWnrjQtXhl();
+        BigDecimal wnclWnrjQtPfyz = tXinyiCarbonMajor.getWnclWnrjQtPfyz();
+        BigDecimal wnclWnrjQtPfyzCh4 = BigDecimal.ZERO;
+        BigDecimal wnclWnrjQtPfyzN2o = BigDecimal.ZERO;
+        BigDecimal wnclWnrjQtCh4Co2 = null;
+        BigDecimal wnclWnrjQtN2oCo2 = null;
+        if(!Objects.isNull(wnclWnrjQtXhl)){
+            if(Objects.isNull(wnclWnrjQtPfyz)){
+                if(Objects.isNull(wnclWnrjQtLx)){
+                    wnclWnrjQtPfyzCh4 = BigDecimal.ZERO;
+                    wnclWnrjQtPfyzN2o = BigDecimal.ZERO;
+                }else{
+                    if(0 == wnclWnrjQtLx){
+                        wnclWnrjQtPfyzCh4 = BigDecimal_0_0581;
+                        wnclWnrjQtPfyzN2o = BigDecimal_0_1740;
+                    }else if (1 == wnclWnrjQtLx) {
+                        wnclWnrjQtPfyzCh4 = BigDecimal_0_0970;
+                        wnclWnrjQtPfyzN2o = BigDecimal_0_0580;
+                    }else if (2 == wnclWnrjQtLx) {
+                        wnclWnrjQtPfyzCh4 = BigDecimal_0_0540;
+                        wnclWnrjQtPfyzN2o = BigDecimal_0_0838;
+                    }else {
+                        wnclWnrjQtPfyzCh4 = BigDecimal.ZERO;
+                        wnclWnrjQtPfyzN2o = BigDecimal.ZERO;
+                    }
+                }
+            }
+            wnclWnrjQtCh4Co2 = wnclWnrjQtXhl.multiply(wnclWnrjQtPfyzCh4).multiply(BigDecimal_28).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP);
+            tXinyiCarbonMajorUpdate.setWnclWnrjQtCh4Co2(wnclWnrjQtCh4Co2);
+            wnclWnrjQtN2oCo2 = wnclWnrjQtXhl.multiply(wnclWnrjQtPfyzN2o).multiply(BigDecimal_265).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP);
+            tXinyiCarbonMajorUpdate.setWnclWnrjQtN2oCo2(wnclWnrjQtN2oCo2);
+        }
+
+        //处理 污泥处理碳排量 总的碳排放
+        if(!Objects.isNull(wnclYyzqCo2)){
+            wnclTotalCo2 = wnclTotalCo2.subtract(wnclYyzqCo2);
+        }
+        if(!Objects.isNull(wnclDdclCo2)){
+            wnclTotalCo2 = wnclTotalCo2.subtract(wnclDdclCo2);
+        }
+        if(!Objects.isNull(wnclHyfjCh4Co2)){
+            wnclTotalCo2 = wnclTotalCo2.subtract(wnclHyfjCh4Co2);
+        }
+        if(!Objects.isNull(wnclHyfjN2oCo2)){
+            wnclTotalCo2 = wnclTotalCo2.subtract(wnclHyfjN2oCo2);
+        }
+        if(!Objects.isNull(wnclWnfsCo2)){
+            wnclTotalCo2 = wnclTotalCo2.subtract(wnclWnfsCo2);
+        }
+        if(!Objects.isNull(wnclBwqrsCh4Co2)){
+            wnclTotalCo2 = wnclTotalCo2.subtract(wnclBwqrsCh4Co2);
+        }
+        if(!Objects.isNull(wnclBwqrsN2oCo2)){
+            wnclTotalCo2 = wnclTotalCo2.subtract(wnclBwqrsN2oCo2);
+        }
+        if(!Objects.isNull(wnclWnrjByhCo2)){
+            wnclTotalCo2 = wnclTotalCo2.subtract(wnclWnrjByhCo2);
+        }
+        if(!Objects.isNull(wnclWnrjQtCh4Co2)){
+            wnclTotalCo2 = wnclTotalCo2.subtract(wnclWnrjQtCh4Co2);
+        }
+        if(!Objects.isNull(wnclWnrjQtN2oCo2)){
+            wnclTotalCo2 = wnclTotalCo2.subtract(wnclWnrjQtN2oCo2);
+        }
+        //总量
+        tXinyiCarbonMajorUpdate.setWnclTotalCo2(wnclTotalCo2);
+
+        //------------替碳、碳汇------------
+        BigDecimal ttthTotalCo2 = BigDecimal.ZERO;
+        //替碳、碳汇-光伏-替碳量-光伏发电替碳量(t CO₂-eq/月)
+        BigDecimal thGfZhdl = tXinyiCarbonMajor.getThGfZhdl();
+        BigDecimal thGfCo2 = null;
+        if(!Objects.isNull(thGfZhdl) && !Objects.isNull(yz)){
+            thGfCo2 = thGfZhdl.multiply(yz).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP);
+            tXinyiCarbonMajorUpdate.setThGfCo2(thGfCo2);
+        }
 
-        //计算总的co2
+        //替碳、碳汇-再生水回用的替碳量(宜按替代的商业供水的取水、生产和输送的碳排放量计算)-回用水替代供水的替碳量(t CO₂-eq/月
+        Integer thZssScgm = tXinyiCarbonMajor.getThZssScgm();
+        BigDecimal thZssGyl = tXinyiCarbonMajor.getThZssGyl();
+        BigDecimal thZssCo2 = null;
+        if(!Objects.isNull(thZssScgm) && !Objects.isNull(thZssGyl) && !Objects.isNull(yz)){
+            BigDecimal thZssCo2Yz = BigDecimal.ZERO;
+            if(thZssScgm == 0){
+                thZssCo2Yz = BigDecimal_0_52;
+            }else if(thZssScgm == 1){
+                thZssCo2Yz = BigDecimal_0_41;
+            }else if(thZssScgm == 2){
+                thZssCo2Yz = BigDecimal_0_3;
+            }else {
+                thZssCo2Yz = BigDecimal.ZERO;
+            }
+            thZssCo2 = ((BigDecimal_0_2.add(BigDecimal_0_5).subtract(BigDecimal_0_5)).abs().multiply(yz).add(thZssCo2Yz)).multiply(thZssGyl);
+            tXinyiCarbonMajorUpdate.setThZssCo2(thZssCo2);
+        }
+
+        //替碳、碳汇-污泥经过厌氧、好氧或碳化处理后,产生的替碳量-污泥产物土地利用的替碳量(t CO₂-eq/月)
+        BigDecimal thWnClhFlwnl = tXinyiCarbonMajor.getThWnClhFlwnl();
+        BigDecimal thWnClhCo2 = null;
+        if(!Objects.isNull(thWnClhFlwnl)){
+            thWnClhCo2 = ((BigDecimal_0_03.multiply(BigDecimal_0_61).multiply(BigDecimal_2_116)).add((BigDecimal_0_006.multiply(BigDecimal_0_7).multiply(BigDecimal_1_45)))).multiply(thWnClhFlwnl).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP);
+            tXinyiCarbonMajorUpdate.setThWnClhCo2(thWnClhCo2);
+        }
+        //替碳、碳汇替总碳量
+        if(!Objects.isNull(thGfCo2)){
+            ttthTotalCo2 = ttthTotalCo2.add(thGfCo2);
+        }
+        if(!Objects.isNull(thZssCo2)){
+            ttthTotalCo2 = ttthTotalCo2.add(thZssCo2);
+        }
+        if(!Objects.isNull(thWnClhCo2)){
+            ttthTotalCo2 = ttthTotalCo2.add(thWnClhCo2);
+        }
+        //处理一对多的数据
+        BigDecimal rbjsTTL = tXinyiCarbonMajorUpdate.getRbjsTTL();
+        BigDecimal wnyyxhzqlyTTL = tXinyiCarbonMajorUpdate.getWnyyxhzqlyTTL();
+        BigDecimal wnfshrjnlyTTL = tXinyiCarbonMajorUpdate.getWnfshrjnlyTTL();
+        if(!Objects.isNull(rbjsTTL)){
+            ttthTotalCo2 = ttthTotalCo2.add(rbjsTTL);
+        }
+        if(!Objects.isNull(wnyyxhzqlyTTL)){
+            ttthTotalCo2 = ttthTotalCo2.add(wnyyxhzqlyTTL);
+        }
+        if(!Objects.isNull(wnfshrjnlyTTL)){
+            ttthTotalCo2 = ttthTotalCo2.add(wnfshrjnlyTTL);
+        }
+        tXinyiCarbonMajorUpdate.setTtthTotalCo2(ttthTotalCo2);
+
+        //计算各个大类和总的co2
+        tXinyiCarbonMajorUpdate.setZtTotalCo2(wsclTotalCo2.add(nyyjTotalCo2).add(wnclTotalCo2).subtract(ttthTotalCo2));
+
+        //一对多的的计算的存在问题。 todo
+
+        //处理百分比信息
+        if(nyyjTotalCo2.compareTo(BigDecimal.ZERO) > 0){//必须是正数
+            if(!Objects.isNull(nyyjDlxhZhdlCo2)){
+                tXinyiCarbonMajorUpdate.setDlxhPercent(nyyjDlxhZhdlCo2.divide(nyyjTotalCo2, NUMBER_SCALE_4, RoundingMode.HALF_UP));
+            }
+            if(!Objects.isNull(wscljdyjxhCo2)){
+                tXinyiCarbonMajorUpdate.setYjxhPercent(wscljdyjxhCo2.divide(nyyjTotalCo2, NUMBER_SCALE_4, RoundingMode.HALF_UP));
+            }
+            if(!Objects.isNull(nyyjGrrlCo2)){
+                tXinyiCarbonMajorUpdate.setJgrrlPercent(nyyjGrrlCo2.divide(nyyjTotalCo2, NUMBER_SCALE_4, RoundingMode.HALF_UP));
+            }
+            if(!Objects.isNull(gdsnyrlCo2)){
+                tXinyiCarbonMajorUpdate.setRlxhPercent(gdsnyrlCo2.divide(nyyjTotalCo2, NUMBER_SCALE_4, RoundingMode.HALF_UP));
+            }
+        }
 
         //处理本月份的 污水厂行业碳排放强度 和 污水厂行业碳排放强度-是否高于同行业平均水平
         BigDecimal avgJsl = this.tXinyiCarbonMajorMapper.selectSumJslByMonth(addYearMonth.replaceAll("-", "/"));