Prechádzať zdrojové kódy

临时提交 新增部分接口实现

王苗苗 7 mesiacov pred
rodič
commit
d82d791f2a

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

@@ -38,10 +38,12 @@ public class MyConstants {
     public static final int INT_1 = 1;
     public static final Double DOUBLE_75 = 75D;
     public static final int NUMBER_SCALE_4 = 4;
+    public static final int NUMBER_SCALE_2 = 2;
 //    public static final BigDecimal ROBOT_HY_DIVIDE = new BigDecimal("0.8");
     //2024年7月11日17:10:19  改成不除了,所以这里改成1
     public static final BigDecimal ROBOT_HY_DIVIDE = new BigDecimal(1);
     public static final BigDecimal BigDecimal_100  = new BigDecimal(100);
+    public static final BigDecimal BigDecimal_1000  = new BigDecimal(1000);
     public static final BigDecimal GSLSONE_LAST = BigDecimal.valueOf(0.02 * 1.3 * 40 * 2);
     public static final BigDecimal GSLSTWO_LAST = BigDecimal.valueOf(0.016 * 1.1 * 41 * 2);
     public static final BigDecimal GSLS_XGS_LAST = BigDecimal.valueOf(Math.PI * 0.003 * 0.003 * 4 * 97119);
@@ -61,6 +63,30 @@ public class MyConstants {
     public static final BigDecimal DECIMAL_1200 = new BigDecimal(1200);
     public static final BigDecimal DECIMAL_1620 = new BigDecimal(1620);
 
+
+    public static final BigDecimal BigDecimal_0_56  = new BigDecimal("0.56");
+    public static final BigDecimal BigDecimal_0_1  = new BigDecimal("0.1");
+    public static final BigDecimal BigDecimal_1000000  = new BigDecimal("1000000");
+    public static final BigDecimal BigDecimal_0_0075  = new BigDecimal("0.0075");
+    public static final BigDecimal BigDecimal_28  = new BigDecimal("28");
+    public static final BigDecimal BigDecimal_1  = new BigDecimal("1");
+    public static final BigDecimal BigDecimal_0_2  = new BigDecimal("0.2");
+    public static final BigDecimal BigDecimal_0_01  = new BigDecimal("0.01");
+    public static final BigDecimal BigDecimal_265  = new BigDecimal("265");
+    public static final BigDecimal BigDecimal_44  = new BigDecimal("44");
+    public static final BigDecimal BigDecimal_83_74  = new BigDecimal("83.74");
+    public static final BigDecimal BigDecimal_110000  = new BigDecimal("110000");
+    public static final BigDecimal BigDecimal_0_05  = new BigDecimal("0.05");
+    public static final BigDecimal BigDecimal_16  = new BigDecimal("16");
+    public static final BigDecimal BigDecimal_22_4  = new BigDecimal("22.4");
+    public static final BigDecimal BigDecimal_10  = new BigDecimal("10");
+    public static final BigDecimal BigDecimal_0_6  = new BigDecimal("0.6");
+    public static final BigDecimal BigDecimal_0_12  = new BigDecimal("0.12");
+    public static final BigDecimal BigDecimal_12  = new BigDecimal("12");
+    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 String TEMPERATURE_VALUE = "12";
 

+ 2 - 1
slibra-quartz/src/main/java/com/slibra/quartz/util/AbstractQuartzJob.java

@@ -93,7 +93,8 @@ public abstract class AbstractQuartzJob implements Job
         }
 
         // 写入数据库当中
-        SpringUtils.getBean(ISysJobLogService.class).addJobLog(sysJobLog);
+        //2024年08月27日11:23:01  因为多数据源 SqlServer识别不了sysdate函数
+//        SpringUtils.getBean(ISysJobLogService.class).addJobLog(sysJobLog);
     }
 
     /**

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

@@ -259,8 +259,8 @@ public class TXinyiCarbonMajor extends BaseEntity
     private BigDecimal wnclWnfsCo2;
 
     /** 污泥处理-污泥焚烧过程不完全燃烧产生的CH₄和N₂O的CO₂排放当量-燃烧类型 */
-    @Excel(name = "污泥处理-污泥焚烧过程不完全燃烧产生的CH₄和N₂O的CO₂排放当量-燃烧类型")
-    private BigDecimal wnclBwqrsRslx;
+    @Excel(name = "污泥处理-污泥焚烧过程不完全燃烧产生的CH₄和N₂O的CO₂排放当量-燃烧类型 0半连续-加煤机  1半连续-流化床 2间歇性-加煤机 3间歇性-流化床 4连续燃烧")
+    private Integer wnclBwqrsRslx;
 
     /** 污泥处理-污泥焚烧过程不完全燃烧产生的CH₄和N₂O的CO₂排放当量-污泥处理焚烧量 (t干污泥/月) */
     @Excel(name = "污泥处理-污泥焚烧过程不完全燃烧产生的CH₄和N₂O的CO₂排放当量-污泥处理焚烧量 ", readConverterExp = "t=干污泥/月")
@@ -291,8 +291,8 @@ public class TXinyiCarbonMajor extends BaseEntity
     private BigDecimal wnclWnrjByhCo2;
 
     /** 污泥处理-污泥热解碳化或气化过程产生的CH₄和N₂O的CO₂排放当量-CH₄和N₂O的CO₂排放当量-反应堆类型 */
-    @Excel(name = "污泥处理-污泥热解碳化或气化过程产生的CH₄和N₂O的CO₂排放当量-CH₄和N₂O的CO₂排放当量-反应堆类型")
-    private BigDecimal wnclWnrjQtLx;
+    @Excel(name = "污泥处理-污泥热解碳化或气化过程产生的CH₄和N₂O的CO₂排放当量-CH₄和N₂O的CO₂排放当量-反应堆类型  0竖井类型  1流化床式 2回转窑式")
+    private Integer wnclWnrjQtLx;
 
     /** 污泥处理-污泥热解碳化或气化过程产生的CH₄和N₂O的CO₂排放当量-CH₄和N₂O的CO₂排放当量-污泥热解消耗量 (t干污泥/月) */
     @Excel(name = "污泥处理-污泥热解碳化或气化过程产生的CH₄和N₂O的CO₂排放当量-CH₄和N₂O的CO₂排放当量-污泥热解消耗量 ", readConverterExp = "t=干污泥/月")
@@ -365,6 +365,67 @@ public class TXinyiCarbonMajor extends BaseEntity
     @Excel(name = "乐观锁")
     private Long revision;
 
+
+    /** 污水厂行业碳排放强度
+     * 月碳排放强度 = 月碳排放总量 /  月进水量
+     * */
+
+    /** 污水厂行业碳排放强度 */
+    @Excel(name = "污水厂行业碳排放强度")
+    private BigDecimal wschytpfqd;
+
+    /** 污水厂行业碳排放强度-和同行业平均水平对比: -1:低于;0持平;1:高于 */
+    @Excel(name = "污水厂行业碳排放强度-和同行业平均水平对比: -1:低于;0持平;1:高于")
+    private Integer exceedAvgHY;
+
+    //下面是一对多的计算结果
+
+    /** 外加碳源矿化产生的化石源CO₂碳排放量 */
+    @Excel(name = "外加碳源矿化产生的化石源CO₂碳排放量")
+    private BigDecimal wjtykuCo2;
+
+    /** 固定式能源燃料消耗产生的碳排放量 (燃料消耗) */
+    @Excel(name = "固定式能源燃料消耗产生的碳排放量 (燃料消耗)")
+    private BigDecimal gdsnyrlCo2;
+
+    /** 污水处理阶段药剂消耗产生的碳排放量(药剂消耗) */
+    @Excel(name = "污水处理阶段药剂消耗产生的碳排放量(药剂消耗)")
+    private BigDecimal wscljdyjxhCo2;
+
+    /** 热泵技术-替碳量 */
+    @Excel(name = "热泵技术-替碳量")
+    private BigDecimal rbjsTTL;
+
+    /** 污泥厌氧消化沼气利用的替碳量 */
+    @Excel(name = "污泥厌氧消化沼气利用的替碳量")
+    private BigDecimal wnyyxhzqlyTTL;
+
+    /** 污泥焚烧或热解热能利用的替碳量 */
+    @Excel(name = "污泥焚烧或热解热能利用的替碳量")
+    private BigDecimal wnfshrjnlyTTL;
+
+    //能源药剂百分比
+    /** 能源药剂百分比-电力消耗 */
+    @Excel(name = "能源药剂百分比-电力消耗")
+    private BigDecimal dlxhPercent;
+
+    /** 能源药剂百分比-药剂消耗 */
+    @Excel(name = "能源药剂百分比-药剂消耗")
+    private BigDecimal yjxhPercent;
+
+    /** 能源药剂百分比-净购入热力 */
+    @Excel(name = "能源药剂百分比-净购入热力")
+    private BigDecimal jgrrlPercent;
+
+    /** 能源药剂百分比-燃料消耗 */
+    @Excel(name = "能源药剂百分比-燃料消耗")
+    private BigDecimal rlxhPercent;
+
+
+
+    //下面是查询条件或者是需要每次展示的时候,临时查询使用的
+
+
     /**  填报开始时间 */
 //    @JsonFormat(pattern = "yyyy-MM-dd")
     private String timeBegin;
@@ -404,44 +465,13 @@ public class TXinyiCarbonMajor extends BaseEntity
     @Excel(name = "总碳排放量-环比上个月")
     private BigDecimal ztTotalCo2Hb;
 
-    /** 污水厂行业碳排放强度
-     * 月碳排放强度 = 月碳排放总量 /  月进水量
-     * */
-    @Excel(name = "污水厂行业碳排放强度")
-    private BigDecimal wschytpfqd;
-
-    @Excel(name = "污水厂行业碳排放强度-和同行业平均水平对比: -1:低于;0持平;1:高于")
-    private Integer exceedAvgHY;
-
     //近七个月的趋势(碳排放量 + 污水厂行业碳排放强度)
     private List<ChartBasic> recent7Datas;
 
 
-    //能源药剂百分比
-    //固定式能源燃料消耗产生的碳排放量 (燃料消耗)
-    private BigDecimal gdsnyrlCo2;
-
-    //污水处理阶段药剂消耗产生的碳排放量(药剂消耗)
-    private BigDecimal wscljdyjxhCo2;
-
-
-    //电力消耗
-    private BigDecimal dlxhPercent;
-
-    //药剂消耗
-    private BigDecimal yjxhPercent;
-
-    //净购入热力
-    private BigDecimal jgrrlPercent;
-
-    //燃料消耗
-    private BigDecimal rlxhPercent;
-
-    //外加碳源矿化产生的化石源CO₂碳排放量
-    private BigDecimal wjtykuCo2;
+    /*//污泥热解碳化或气化  =
+    private BigDecimal wnrjthqhCo2;*/
 
-    //污泥热解碳化或气化
-    private BigDecimal wnrjthqhCo2;
 
     //额外的关联多条数据的集合
     private List<TXinyiCarbonExtra> extraList;

+ 246 - 39
slibra-system/src/main/java/com/slibra/business/service/impl/TXinyiCarbonMajorServiceImpl.java

@@ -2,11 +2,10 @@ package com.slibra.business.service.impl;
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
+import java.util.stream.Collectors;
 
+import com.alibaba.fastjson2.JSON;
 import com.slibra.business.domain.TXinyiCarbonExtra;
 import com.slibra.business.mapper.TXinyiCarbonExtraMapper;
 import com.slibra.business.res.CarbonSmartQueryDB;
@@ -98,18 +97,241 @@ public class TXinyiCarbonMajorServiceImpl implements ITXinyiCarbonMajorService
         //填报日期(只要年月日)
         tXinyiCarbonMajor.setRemark(DateUtils.parseDateToStr(DateUtils.YYYY_MM_DD, nowDate));
         int i = tXinyiCarbonMajorMapper.insertTXinyiCarbonMajor(tXinyiCarbonMajor);
+        Long id = tXinyiCarbonMajor.getId();
         //处理关联表
         List<TXinyiCarbonExtra> extraList = tXinyiCarbonMajor.getExtraList();
         if(!CollectionUtils.isEmpty(extraList)){
             for (TXinyiCarbonExtra tXinyiCarbonExtra : extraList) {
-                tXinyiCarbonExtra.setMajorId(tXinyiCarbonMajor.getId());
+                tXinyiCarbonExtra.setMajorId(id);
                 tXinyiCarbonExtra.setVal(this.calculate(tXinyiCarbonExtra));//需要单独计算
                 tXinyiCarbonExtra.setCreateTime(nowDate);
                 tXinyiCarbonExtra.setCreateBy(username);
                 this.xinyiCarbonExtraMapper.insertTXinyiCarbonExtra(tXinyiCarbonExtra);
             }
         }
+        TXinyiCarbonMajor tXinyiCarbonMajorUpdate = new TXinyiCarbonMajor();
+        tXinyiCarbonMajorUpdate.setId(id);
+        //更新部分字段(计算相关:多条数据的)
+        Optional<BigDecimal> reduce0 = extraList.stream().filter(v -> v.getType() == BusinessEnum.CarbonExtraTeypEnum.ZERO.getCode()).map(TXinyiCarbonExtra::getVal).reduce(BigDecimal::add);
+        reduce0.ifPresent(tXinyiCarbonMajorUpdate::setWjtykuCo2);
+        Optional<BigDecimal> reduce1 = extraList.stream().filter(v -> v.getType() == BusinessEnum.CarbonExtraTeypEnum.ONE.getCode()).map(TXinyiCarbonExtra::getVal).reduce(BigDecimal::add);
+        reduce1.ifPresent(tXinyiCarbonMajorUpdate::setGdsnyrlCo2);
+        Optional<BigDecimal> reduce2 = extraList.stream().filter(v -> v.getType() == BusinessEnum.CarbonExtraTeypEnum.TWO.getCode()).map(TXinyiCarbonExtra::getVal).reduce(BigDecimal::add);
+        reduce2.ifPresent(tXinyiCarbonMajorUpdate::setWscljdyjxhCo2);
+        Optional<BigDecimal> reduce3 = extraList.stream().filter(v -> v.getType() == BusinessEnum.CarbonExtraTeypEnum.THREE.getCode()).map(TXinyiCarbonExtra::getVal).reduce(BigDecimal::add);
+        reduce3.ifPresent(tXinyiCarbonMajorUpdate::setRbjsTTL);
+        Optional<BigDecimal> reduce4 = extraList.stream().filter(v -> v.getType() == BusinessEnum.CarbonExtraTeypEnum.FOUR.getCode()).map(TXinyiCarbonExtra::getVal).reduce(BigDecimal::add);
+        reduce4.ifPresent(tXinyiCarbonMajorUpdate::setWnyyxhzqlyTTL);
+        Optional<BigDecimal> reduce5 = extraList.stream().filter(v -> v.getType() == BusinessEnum.CarbonExtraTeypEnum.FIVE.getCode()).map(TXinyiCarbonExtra::getVal).reduce(BigDecimal::add);
+        reduce5.ifPresent(tXinyiCarbonMajorUpdate::setWnfshrjnlyTTL);
+
         //处理计算信息
+        BigDecimal wsHsytkhClsl = tXinyiCarbonMajor.getWsHsytkhClsl();
+        BigDecimal wsHsytkhJsCod = tXinyiCarbonMajor.getWsHsytkhJsCod();
+        BigDecimal wsHsytkhCsCod = tXinyiCarbonMajor.getWsHsytkhCsCod();
+        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));
+        }
+        BigDecimal wsSjclCh4Clsl = tXinyiCarbonMajor.getWsSjclCh4Clsl();
+        BigDecimal wsSjclCh4JsCod = tXinyiCarbonMajor.getWsSjclCh4JsCod();
+        BigDecimal wsSjclCh4CsCod = tXinyiCarbonMajor.getWsSjclCh4CsCod();
+        BigDecimal wsSjclCh4Pfyz = tXinyiCarbonMajor.getWsSjclCh4Pfyz();
+        BigDecimal wsSjclCh4Tsb = tXinyiCarbonMajor.getWsSjclCh4Tsb();
+        BigDecimal wsSjclCh4Csc = tXinyiCarbonMajor.getWsSjclCh4Csc();
+        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));
+            }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));
+            }
+        }
+
+        BigDecimal wsTdN2oClsl = tXinyiCarbonMajor.getWsTdN2oClsl();
+        BigDecimal wsTdN2oJsTn = tXinyiCarbonMajor.getWsTdN2oJsTn();
+        BigDecimal wsTdN2oCsTn = tXinyiCarbonMajor.getWsTdN2oCsTn();
+        BigDecimal wsTdN2oPfyz = tXinyiCarbonMajor.getWsTdN2oPfyz();
+        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));
+        }
+
+        //耗电相关
+        Long provinceId = tXinyiCarbonMajor.getProvinceId();
+        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);
+
+                    //总耗电
+                    BigDecimal nyyjDlxhZhdl = tXinyiCarbonMajor.getNyyjDlxhZhdl();
+                    if(!Objects.isNull(nyyjDlxhZhdl)){
+                        tXinyiCarbonMajorUpdate.setNyyjDlxhZhdlCo2(nyyjDlxhZhdl.multiply(yz).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP));
+                    }
+
+                    //进水泵房
+                    BigDecimal nyyjDlxhJsbf = tXinyiCarbonMajor.getNyyjDlxhJsbf();
+                    if(!Objects.isNull(nyyjDlxhJsbf)){
+                        tXinyiCarbonMajorUpdate.setNyyjDlxhJsbfCo2(nyyjDlxhJsbf.multiply(yz).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP));
+                    }
+
+                    //鼓风机房
+                    BigDecimal nyyjDlxhGfjf = tXinyiCarbonMajor.getNyyjDlxhGfjf();
+                    if(!Objects.isNull(nyyjDlxhGfjf)){
+                        tXinyiCarbonMajorUpdate.setNyyjDlxhGfjfCo2(nyyjDlxhGfjf.multiply(yz).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP));
+                    }
+
+                    //脱水机房
+                    BigDecimal nyyjDlxhTsjf = tXinyiCarbonMajor.getNyyjDlxhTsjf();
+                    if(!Objects.isNull(nyyjDlxhTsjf)){
+                        tXinyiCarbonMajorUpdate.setNyyjDlxhTsjfCo2(nyyjDlxhTsjf.multiply(yz).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP));
+                    }
+
+                    //消毒间
+                    BigDecimal nyyjDlxhXdj = tXinyiCarbonMajor.getNyyjDlxhXdj();
+                    if(!Objects.isNull(nyyjDlxhXdj)){
+                        tXinyiCarbonMajorUpdate.setNyyjDlxhXdjCo2(nyyjDlxhXdj.multiply(yz).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP));
+                    }
+
+                    //深度处理用电
+                    BigDecimal nyyjDlxhSdcl = tXinyiCarbonMajor.getNyyjDlxhSdcl();
+                    if(!Objects.isNull(nyyjDlxhSdcl)){
+                        tXinyiCarbonMajorUpdate.setNyyjDlxhSdclCo2(nyyjDlxhSdcl.multiply(yz).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP));
+                    }
+
+                    //污泥处置
+                    BigDecimal nyyjDlxhWncz = tXinyiCarbonMajor.getNyyjDlxhWncz();
+                    if(!Objects.isNull(nyyjDlxhWncz)){
+                        tXinyiCarbonMajorUpdate.setNyyjDlxhWnczCo2(nyyjDlxhWncz.multiply(yz).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP));
+                    }
+
+                    //生活区
+                    BigDecimal nyyjDlxhShq = tXinyiCarbonMajor.getNyyjDlxhShq();
+                    if(!Objects.isNull(nyyjDlxhShq)){
+                        tXinyiCarbonMajorUpdate.setNyyjDlxhShqCo2(nyyjDlxhShq.multiply(yz).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP));
+                    }
+
+                    //其他耗电区
+                    BigDecimal nyyjDlxhQt = tXinyiCarbonMajor.getNyyjDlxhQt();
+                    if(!Objects.isNull(nyyjDlxhQt)){
+                        tXinyiCarbonMajorUpdate.setNyyjDlxhQtCo2(nyyjDlxhQt.multiply(yz).divide(BigDecimal_1000, NUMBER_SCALE_2, RoundingMode.HALF_UP));
+                    }
+                }
+            }
+        }
+
+        //能源、药剂碳排-净购入热力消耗产生的碳排放量-燃料消耗产生的碳排放量
+        BigDecimal nyyjGrrlZq = tXinyiCarbonMajor.getNyyjGrrlZq();
+        BigDecimal nyyjGrrlDyhz = tXinyiCarbonMajor.getNyyjGrrlDyhz();
+        BigDecimal nyyjGrrlRl = tXinyiCarbonMajor.getNyyjGrrlRl();
+        //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));
+        }
+
+        //污泥处理-污泥厌氧消化沼气收集管路无意泄露的CH₄或沼气火炬燃烧不充分导致的碳排放-污泥厌氧消化过程排放的CH₄的CO₂当量(t CO₂-eq/月)
+        BigDecimal wnclYyzqZqcl = tXinyiCarbonMajor.getWnclYyzqZqcl();
+        BigDecimal wnclYyzqChZlfs = tXinyiCarbonMajor.getWnclYyzqChZlfs();
+        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));
+        }
+
+        //污泥处理-单独处理污泥厌氧消化过程产生的碳排放量-单独处理污泥厌氧消化产生沼液的CO₂当量(t CO₂-eq/月)
+        BigDecimal wnclDdclZycll = tXinyiCarbonMajor.getWnclDdclZycll();
+        BigDecimal wnclDdclClqnd = tXinyiCarbonMajor.getWnclDdclClqnd();
+        BigDecimal wnclDdclClhnd = tXinyiCarbonMajor.getWnclDdclClhnd();
+        BigDecimal wnclDdclPfyz = tXinyiCarbonMajor.getWnclDdclPfyz();
+        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));
+        }
+
+        //污泥处理-污泥好氧发酵过程生化反应的碳排放-污泥好氧发酵过程排放的CH₄的CO₂当量(t CO₂-eq/月)
+        //污泥处理-污泥好氧发酵过程生化反应的碳排放-污泥好氧发酵过程排放的N₂O的CO₂当量(t CO₂-eq/月)
+        BigDecimal wnclHyfjFjl = tXinyiCarbonMajor.getWnclHyfjFjl();
+        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));
+        }
+
+        //污泥处理-污泥干化焚烧或协同焚烧过程,化石源碳被氧化产生的化石源CO₂碳排放量-污泥好氧发酵过程排放的CH₄的CO₂当量(t CO₂-eq/月)
+        BigDecimal wnclWnfsXhl = tXinyiCarbonMajor.getWnclWnfsXhl();
+        BigDecimal wnclWnfsHtbl = tXinyiCarbonMajor.getWnclWnfsHtbl();
+        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));
+        }
+
+        //污泥处理-污泥焚烧过程不完全燃烧产生的CH₄和N₂O的CO₂排放当量-污泥焚烧过程排放的CH₄的CO₂当量(t CO₂-eq/月)
+        Integer wnclBwqrsRslx = tXinyiCarbonMajor.getWnclBwqrsRslx();
+        BigDecimal wnclBwqrsFsl = tXinyiCarbonMajor.getWnclBwqrsFsl();
+        BigDecimal wnclBwqrsPfyz = tXinyiCarbonMajor.getWnclBwqrsPfyz();
+        if(!Objects.isNull(wnclBwqrsFsl)){
+            if(Objects.isNull(wnclBwqrsPfyz)){
+                if(Objects.isNull(wnclBwqrsRslx)){
+                    //类型前端必须选,不选默认就是0
+                    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;
+                    }
+                }
+            }
+            tXinyiCarbonMajorUpdate.setWnclBwqrsCh4Co2(null);
+        }
+
+
+        //处理百分比信息
+
+        //计算总的co2
+
+        //处理本月份的 污水厂行业碳排放强度 和 污水厂行业碳排放强度-是否高于同行业平均水平
+        BigDecimal avgJsl = this.tXinyiCarbonMajorMapper.selectSumJslByMonth(addYearMonth.replaceAll("-", "/"));
+        BigDecimal ztTotalCo2 = tXinyiCarbonMajorUpdate.getZtTotalCo2();
+        if(!Objects.isNull(avgJsl) && !Objects.isNull(ztTotalCo2)){
+            //2024年08月27日09:36:14 计算公式有调整:再乘以10的三次方。
+            BigDecimal wschytpfqd = ztTotalCo2.divide(avgJsl, NUMBER_SCALE_4, RoundingMode.HALF_UP).multiply(BigDecimal_1000);
+            tXinyiCarbonMajorUpdate.setWschytpfqd(wschytpfqd);
+            BigDecimal avgCod = this.tXinyiCarbonMajorMapper.selectAvgCodByMonth(addYearMonth.replaceAll("-", "/"));
+            //从字典获取不同cod对应的标准
+            if(!Objects.isNull(avgCod)){
+                List<SysDictData> sysDictData = this.sysDictDataMapper.selectDictDataByType(TPFQD);
+                if(!CollectionUtils.isEmpty(sysDictData)){
+                    for (SysDictData sysDictDatum : sysDictData) {
+                        String dictLabel = sysDictDatum.getDictLabel();
+                        if(StringUtils.isNotBlank(dictLabel) && dictLabel.contains(SPLIT_)){
+                            String[] split = dictLabel.split(SPLIT_);
+                            BigDecimal first = new BigDecimal(split[0]);
+                            BigDecimal last = new BigDecimal(split[1]);
+                            if(avgCod.compareTo(first) >= 0 && avgCod.compareTo(last) < 0){
+                                BigDecimal bzz = new BigDecimal(sysDictDatum.getDictValue());
+                                log.info("当前月份平均cod是{},匹配到的标准值是{}", avgCod, bzz);
+                                tXinyiCarbonMajorUpdate.setExceedAvgHY(wschytpfqd.compareTo(bzz));
+                            }
+                        }
+                    }
+                }
+            }
+        }
+        //更新
+        this.tXinyiCarbonMajorMapper.updateTXinyiCarbonMajor(tXinyiCarbonMajorUpdate);
+        //处理其他字段(能源药剂百分比)
         return i;
     }
 
@@ -121,8 +343,13 @@ public class TXinyiCarbonMajorServiceImpl implements ITXinyiCarbonMajorService
      * @return
      */
     private BigDecimal calculate(TXinyiCarbonExtra tXinyiCarbonExtra) {
-        int type = tXinyiCarbonExtra.getType();
-        if(type == BusinessEnum.CarbonExtraTeypEnum.ZERO.getCode()){
+//        int type = tXinyiCarbonExtra.getType();
+        BigDecimal amount = tXinyiCarbonExtra.getAmount();
+        SysDictData sysDictData = this.sysDictDataMapper.selectDictDataById(tXinyiCarbonExtra.getDictCode());
+        if(Objects.isNull(sysDictData)){
+            throw new ServiceException("没有查询到对应的配置项");
+        }
+        /*if(type == BusinessEnum.CarbonExtraTeypEnum.ZERO.getCode()){
 
         }else if(type == BusinessEnum.CarbonExtraTeypEnum.ONE.getCode()){
 
@@ -136,9 +363,10 @@ public class TXinyiCarbonMajorServiceImpl implements ITXinyiCarbonMajorService
 
         }else {
             log.error("暂不支持的类型");
-            throw new ServiceException("");
+            throw new ServiceException("暂不支持的类型");
         }
-        return null;
+        return null;*/
+        return amount.multiply(new BigDecimal(sysDictData.getDictValue()).divide(BigDecimal_1000,NUMBER_SCALE_4, RoundingMode.HALF_UP));
     }
 
     /**
@@ -275,38 +503,8 @@ public class TXinyiCarbonMajorServiceImpl implements ITXinyiCarbonMajorService
             }
         }
         tXinyiCarbonMajor.setRecent7Datas(recent7PflDatas);
-        //处理本月份的 污水厂行业碳排放强度 和 污水厂行业碳排放强度-是否高于同行业平均水平
-        BigDecimal avgJsl = this.tXinyiCarbonMajorMapper.selectSumJslByMonth(addYearMonth.replaceAll("-", "/"));
-        BigDecimal ztTotalCo2 = tXinyiCarbonMajor.getZtTotalCo2();
-        if(!Objects.isNull(avgJsl) && !Objects.isNull(ztTotalCo2)){
-            BigDecimal wschytpfqd = ztTotalCo2.divide(avgJsl, NUMBER_SCALE_4, RoundingMode.HALF_UP);
-            tXinyiCarbonMajor.setWschytpfqd(wschytpfqd);
-            BigDecimal avgCod = this.tXinyiCarbonMajorMapper.selectAvgCodByMonth(addYearMonth.replaceAll("-", "/"));
-            //从字典获取不同cod对应的标准
-            if(!Objects.isNull(avgCod)){
-                List<SysDictData> sysDictData = this.sysDictDataMapper.selectDictDataByType(TPFQD);
-                if(!CollectionUtils.isEmpty(sysDictData)){
-                    for (SysDictData sysDictDatum : sysDictData) {
-                        String dictLabel = sysDictDatum.getDictLabel();
-                        if(StringUtils.isNotBlank(dictLabel) && dictLabel.contains(SPLIT_)){
-                            String[] split = dictLabel.split(SPLIT_);
-                            BigDecimal first = new BigDecimal(split[0]);
-                            BigDecimal last = new BigDecimal(split[1]);
-                            if(avgCod.compareTo(first) >= 0 && avgCod.compareTo(last) < 0){
-                                BigDecimal bzz = new BigDecimal(sysDictDatum.getDictValue());
-                                log.info("当前月份平均cod是{},匹配到的标准值是{}", avgCod, bzz);
-                                tXinyiCarbonMajor.setExceedAvgHY(wschytpfqd.compareTo(bzz));
-                            }
-                        }
-                    }
-                }
-            }
-        }
         //关联的多条数据
         tXinyiCarbonMajor.setExtraList(this.xinyiCarbonExtraMapper.selectTXinyiCarbonExtraList(TXinyiCarbonExtra.builder().majorId(tXinyiCarbonMajor.getId()).build()));
-        //处理其他字段
-        //todo
-
     }
 
     public static void main(String[] args) {
@@ -315,5 +513,14 @@ public class TXinyiCarbonMajorServiceImpl implements ITXinyiCarbonMajorService
         System.out.println(str.replace("-", "/"));
         System.out.println(DateUtils.getMonthsBefore(str, 6));
         System.out.println(BigDecimal.ONE.compareTo(BigDecimal_100));
+        System.out.println(JSON.toJSONString(null));
+        ArrayList<TXinyiCarbonExtra> list = new ArrayList<>();
+        list.add(TXinyiCarbonExtra.builder().val(BigDecimal_100).type(1).build());
+        list.add(TXinyiCarbonExtra.builder().val(BigDecimal_100).type(0).build());
+        list.add(TXinyiCarbonExtra.builder().val(BigDecimal_100).type(0).build());
+        Optional<BigDecimal> reduce = list.stream().filter(v -> v.getType() == BusinessEnum.CarbonExtraTeypEnum.ZERO.getCode()).map(TXinyiCarbonExtra::getVal).reduce(BigDecimal::add);
+        System.out.println(reduce);
+        System.out.println(reduce.isPresent());
+        System.out.println(reduce.get());
     }
 }

+ 61 - 1
slibra-system/src/main/resources/mapper/business/TXinyiCarbonMajorMapper.xml

@@ -88,6 +88,18 @@
         <result property="wnclTotalCo2"    column="wncl_total_co2"    />
         <result property="ttthTotalCo2"    column="ttth_total_co2"    />
         <result property="ztTotalCo2"    column="zt_total_co2"    />
+        <result property="wschytpfqd"    column="wschytpfqd"    />
+        <result property="exceedAvgHY"    column="exceedAvgHY"    />
+        <result property="wjtykuCo2"    column="wjtykuCo2"    />
+        <result property="gdsnyrlCo2"    column="gdsnyrlCo2"    />
+        <result property="wscljdyjxhCo2"    column="wscljdyjxhCo2"    />
+        <result property="rbjsTTL"    column="rbjsTTL"    />
+        <result property="wnyyxhzqlyTTL"    column="wnyyxhzqlyTTL"    />
+        <result property="wnfshrjnlyTTL"    column="wnfshrjnlyTTL"    />
+        <result property="dlxhPercent"    column="dlxhPercent"    />
+        <result property="yjxhPercent"    column="yjxhPercent"    />
+        <result property="jgrrlPercent"    column="jgrrlPercent"    />
+        <result property="rlxhPercent"    column="rlxhPercent"    />
         <result property="delFlag"    column="del_flag"    />
         <result property="revision"    column="revision"    />
         <result property="createBy"    column="create_by"    />
@@ -97,7 +109,7 @@
     </resultMap>
 
     <sql id="selectTXinyiCarbonMajorVo">
-        select id, add_owner, province_id, province_name, add_year, add_year_month, ws_hsytkh_clsl, ws_hsytkh_js_cod, ws_hsytkh_cs_cod, ws_hsytkh_co2, ws_sjcl_ch4_clsl, ws_sjcl_ch4_js_cod, ws_sjcl_ch4_cs_cod, ws_sjcl_ch4_pfyz, ws_sjcl_ch4_tsb, ws_sjcl_ch4_csc, ws_sjcl_ch4_co2, ws_td_n2o_clsl, ws_td_n2o_js_tn, ws_td_n2o_cs_tn, ws_td_n2o_pfyz, ws_td_n2o_co2, nyyj_dlxh_zhdl, nyyj_dlxh_zhdl_co2, nyyj_dlxh_jsbf, nyyj_dlxh_jsbf_co2, nyyj_dlxh_gfjf, nyyj_dlxh_gfjf_co2, nyyj_dlxh_tsjf, nyyj_dlxh_tsjf_co2, nyyj_dlxh_xdj, nyyj_dlxh_xdj_co2, nyyj_dlxh_sdcl, nyyj_dlxh_sdcl_co2, nyyj_dlxh_wncz, nyyj_dlxh_wncz_co2, nyyj_dlxh_shq, nyyj_dlxh_shq_co2, nyyj_dlxh_qt, nyyj_dlxh_qt_co2, nyyj_grrl_zq, nyyj_grrl_dyhz, nyyj_grrl_rl, nyyj_grrl_co2, wncl_yyzq_zqcl, wncl_yyzq_ch_zlfs, wncl_yyzq_co2, wncl_ddcl_zycll, wncl_ddcl_clqnd, wncl_ddcl_clhnd, wncl_ddcl_pfyz, wncl_ddcl_co2, wncl_hyfj_fjl, wncl_hyfj_ch4_co2, wncl_hyfj_n2o_co2, wncl_wnfs_xhl, wncl_wnfs_htbl, wncl_wnfs_co2, wncl_bwqrs_rslx, wncl_bwqrs_fsl, wncl_bwqrs_pfyz, wncl_bwqrs_ch4_co2, wncl_bwqrs_n2o_co2, wncl_wnrj_byh_xhl, wncl_wnrj_byh_htbl, wncl_wnrj_byh_co2, wncl_wnrj_qt_lx, wncl_wnrj_qt_xhl, wncl_wnrj_qt_pfyz, wncl_wnrj_qt_ch4_co2, wncl_wnrj_qt_n2o_co2, th_gf_zhdl, th_gf_co2, th_zss_scgm, th_zss_gyl, th_zss_co2, th_wn_clh_flwnl, th_wn_clh_co2, wscl_total_co2, nyyj_total_co2, wncl_total_co2, ttth_total_co2, zt_total_co2, del_flag, revision, create_by, create_time, update_by, update_time from t_xinyi_carbon_major
+        select id, add_owner, province_id, province_name, add_year, add_year_month, ws_hsytkh_clsl, ws_hsytkh_js_cod, ws_hsytkh_cs_cod, ws_hsytkh_co2, ws_sjcl_ch4_clsl, ws_sjcl_ch4_js_cod, ws_sjcl_ch4_cs_cod, ws_sjcl_ch4_pfyz, ws_sjcl_ch4_tsb, ws_sjcl_ch4_csc, ws_sjcl_ch4_co2, ws_td_n2o_clsl, ws_td_n2o_js_tn, ws_td_n2o_cs_tn, ws_td_n2o_pfyz, ws_td_n2o_co2, nyyj_dlxh_zhdl, nyyj_dlxh_zhdl_co2, nyyj_dlxh_jsbf, nyyj_dlxh_jsbf_co2, nyyj_dlxh_gfjf, nyyj_dlxh_gfjf_co2, nyyj_dlxh_tsjf, nyyj_dlxh_tsjf_co2, nyyj_dlxh_xdj, nyyj_dlxh_xdj_co2, nyyj_dlxh_sdcl, nyyj_dlxh_sdcl_co2, nyyj_dlxh_wncz, nyyj_dlxh_wncz_co2, nyyj_dlxh_shq, nyyj_dlxh_shq_co2, nyyj_dlxh_qt, nyyj_dlxh_qt_co2, nyyj_grrl_zq, nyyj_grrl_dyhz, nyyj_grrl_rl, nyyj_grrl_co2, wncl_yyzq_zqcl, wncl_yyzq_ch_zlfs, wncl_yyzq_co2, wncl_ddcl_zycll, wncl_ddcl_clqnd, wncl_ddcl_clhnd, wncl_ddcl_pfyz, wncl_ddcl_co2, wncl_hyfj_fjl, wncl_hyfj_ch4_co2, wncl_hyfj_n2o_co2, wncl_wnfs_xhl, wncl_wnfs_htbl, wncl_wnfs_co2, wncl_bwqrs_rslx, wncl_bwqrs_fsl, wncl_bwqrs_pfyz, wncl_bwqrs_ch4_co2, wncl_bwqrs_n2o_co2, wncl_wnrj_byh_xhl, wncl_wnrj_byh_htbl, wncl_wnrj_byh_co2, wncl_wnrj_qt_lx, wncl_wnrj_qt_xhl, wncl_wnrj_qt_pfyz, wncl_wnrj_qt_ch4_co2, wncl_wnrj_qt_n2o_co2, th_gf_zhdl, th_gf_co2, th_zss_scgm, th_zss_gyl, th_zss_co2, th_wn_clh_flwnl, th_wn_clh_co2, wscl_total_co2, nyyj_total_co2, wncl_total_co2, ttth_total_co2, zt_total_co2, wschytpfqd, exceedAvgHY, wjtykuCo2, gdsnyrlCo2, wscljdyjxhCo2, rbjsTTL, wnyyxhzqlyTTL, wnfshrjnlyTTL, dlxhPercent, yjxhPercent, jgrrlPercent, rlxhPercent, del_flag, revision, create_by, create_time, update_by, update_time from t_xinyi_carbon_major
     </sql>
 
     <select id="selectTXinyiCarbonMajorById" parameterType="Long" resultMap="TXinyiCarbonMajorResult">
@@ -190,6 +202,18 @@
             <if test="wnclTotalCo2 != null">wncl_total_co2,</if>
             <if test="ttthTotalCo2 != null">ttth_total_co2,</if>
             <if test="ztTotalCo2 != null">zt_total_co2,</if>
+            <if test="wschytpfqd != null">wschytpfqd,</if>
+            <if test="exceedAvgHY != null">exceedAvgHY,</if>
+            <if test="wjtykuCo2 != null">wjtykuCo2,</if>
+            <if test="gdsnyrlCo2 != null">gdsnyrlCo2,</if>
+            <if test="wscljdyjxhCo2 != null">wscljdyjxhCo2,</if>
+            <if test="rbjsTTL != null">rbjsTTL,</if>
+            <if test="wnyyxhzqlyTTL != null">wnyyxhzqlyTTL,</if>
+            <if test="wnfshrjnlyTTL != null">wnfshrjnlyTTL,</if>
+            <if test="dlxhPercent != null">dlxhPercent,</if>
+            <if test="yjxhPercent != null">yjxhPercent,</if>
+            <if test="jgrrlPercent != null">jgrrlPercent,</if>
+            <if test="rlxhPercent != null">rlxhPercent,</if>
             <if test="delFlag != null">del_flag,</if>
             <if test="revision != null">revision,</if>
             <if test="createBy != null">create_by,</if>
@@ -280,6 +304,18 @@
             <if test="wnclTotalCo2 != null">#{wnclTotalCo2},</if>
             <if test="ttthTotalCo2 != null">#{ttthTotalCo2},</if>
             <if test="ztTotalCo2 != null">#{ztTotalCo2},</if>
+            <if test="wschytpfqd != null">#{wschytpfqd},</if>
+            <if test="exceedAvgHY != null">#{exceedAvgHY},</if>
+            <if test="wjtykuCo2 != null">#{wjtykuCo2},</if>
+            <if test="gdsnyrlCo2 != null">#{gdsnyrlCo2},</if>
+            <if test="wscljdyjxhCo2 != null">#{wscljdyjxhCo2},</if>
+            <if test="rbjsTTL != null">#{rbjsTTL},</if>
+            <if test="wnyyxhzqlyTTL != null">#{wnyyxhzqlyTTL},</if>
+            <if test="wnfshrjnlyTTL != null">#{wnfshrjnlyTTL},</if>
+            <if test="dlxhPercent != null">#{dlxhPercent},</if>
+            <if test="yjxhPercent != null">#{yjxhPercent},</if>
+            <if test="jgrrlPercent != null">#{jgrrlPercent},</if>
+            <if test="rlxhPercent != null">#{rlxhPercent},</if>
             <if test="delFlag != null">#{delFlag},</if>
             <if test="revision != null">#{revision},</if>
             <if test="createBy != null">#{createBy},</if>
@@ -374,6 +410,18 @@
             <if test="wnclTotalCo2 != null">wncl_total_co2 = #{wnclTotalCo2},</if>
             <if test="ttthTotalCo2 != null">ttth_total_co2 = #{ttthTotalCo2},</if>
             <if test="ztTotalCo2 != null">zt_total_co2 = #{ztTotalCo2},</if>
+            <if test="wschytpfqd != null">wschytpfqd = #{wschytpfqd},</if>
+            <if test="exceedAvgHY != null">exceedAvgHY = #{exceedAvgHY},</if>
+            <if test="wjtykuCo2 != null">wjtykuCo2 = #{wjtykuCo2},</if>
+            <if test="gdsnyrlCo2 != null">gdsnyrlCo2 = #{gdsnyrlCo2},</if>
+            <if test="wscljdyjxhCo2 != null">wscljdyjxhCo2 = #{wscljdyjxhCo2},</if>
+            <if test="rbjsTTL != null">rbjsTTL = #{rbjsTTL},</if>
+            <if test="wnyyxhzqlyTTL != null">wnyyxhzqlyTTL = #{wnyyxhzqlyTTL},</if>
+            <if test="wnfshrjnlyTTL != null">wnfshrjnlyTTL = #{wnfshrjnlyTTL},</if>
+            <if test="dlxhPercent != null">dlxhPercent = #{dlxhPercent},</if>
+            <if test="yjxhPercent != null">yjxhPercent = #{yjxhPercent},</if>
+            <if test="jgrrlPercent != null">jgrrlPercent = #{jgrrlPercent},</if>
+            <if test="rlxhPercent != null">rlxhPercent = #{rlxhPercent},</if>
             <if test="delFlag != null">del_flag = #{delFlag},</if>
             <if test="revision != null">revision = #{revision},</if>
             <if test="createBy != null">create_by = #{createBy},</if>
@@ -507,6 +555,18 @@
             <if test="wnclTotalCo2 != null "> and wncl_total_co2 = #{wnclTotalCo2}</if>
             <if test="ttthTotalCo2 != null "> and ttth_total_co2 = #{ttthTotalCo2}</if>
             <if test="ztTotalCo2 != null "> and zt_total_co2 = #{ztTotalCo2}</if>
+            <if test="wschytpfqd != null "> and wschytpfqd = #{wschytpfqd}</if>
+            <if test="exceedAvgHY != null "> and exceedAvgHY = #{exceedAvgHY}</if>
+            <if test="wjtykuCo2 != null "> and wjtykuCo2 = #{wjtykuCo2}</if>
+            <if test="gdsnyrlCo2 != null "> and gdsnyrlCo2 = #{gdsnyrlCo2}</if>
+            <if test="wscljdyjxhCo2 != null "> and wscljdyjxhCo2 = #{wscljdyjxhCo2}</if>
+            <if test="rbjsTTL != null "> and rbjsTTL = #{rbjsTTL}</if>
+            <if test="wnyyxhzqlyTTL != null "> and wnyyxhzqlyTTL = #{wnyyxhzqlyTTL}</if>
+            <if test="wnfshrjnlyTTL != null "> and wnfshrjnlyTTL = #{wnfshrjnlyTTL}</if>
+            <if test="dlxhPercent != null "> and dlxhPercent = #{dlxhPercent}</if>
+            <if test="yjxhPercent != null "> and yjxhPercent = #{yjxhPercent}</if>
+            <if test="jgrrlPercent != null "> and jgrrlPercent = #{jgrrlPercent}</if>
+            <if test="rlxhPercent != null "> and rlxhPercent = #{rlxhPercent}</if>
             <if test="revision != null "> and revision = #{revision}</if>
             <if test="timeBegin != null  and timeBegin != ''"> and remark &gt;= #{timeBegin}</if>
             <if test="timeEnd != null  and timeEnd != ''"> and remark &lt;= #{timeEnd}</if>