Browse Source

定时任务计算碳源投加并模拟组态 获取最新的投加数据关联实时数据

王苗苗 6 months ago
parent
commit
059ce31136

+ 0 - 8
slibra-common/src/main/java/com/slibra/common/TYAddUtil.java

@@ -1,8 +0,0 @@
-package com.slibra.common;
-
-/**
- * 碳源投加计算工具类
- * ToDo 部分数据需要实时获取,而不是依靠传过来的数据
- */
-public class TYAddUtil {
-}

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

@@ -110,6 +110,8 @@ public class MyConstants {
     public static final BigDecimal BigDecimal_0_0022  = new BigDecimal("0.0022");
 
 
+    public static final BigDecimal BigDecimal_2  = new BigDecimal("2");
+
     //温度的范围  超过该温度表示夏季;没有超过表示冬季
     public static final String TEMPERATURE_VALUE = "12";
 

+ 178 - 0
slibra-common/src/main/java/com/slibra/common/utils/bean/TXinyiMedicineParam.java

@@ -0,0 +1,178 @@
+package com.slibra.common.utils.bean;
+
+import com.slibra.common.annotation.Excel;
+import com.slibra.common.core.domain.BaseEntity;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+/**
+ * 智能投药参数设置对象 t_xinyi_medicine_param
+ * 
+ * @author slibra
+ * @date 2024-09-09
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class TXinyiMedicineParam extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键 */
+    private Long id;
+
+    /** 加药泵(0 1号泵 ;1 2号泵 ;2 3号泵) */
+    @Excel(name = "加药泵", readConverterExp = "0=,1=号泵,;=1,2=号泵,;=2,3=号泵")
+    private Long numberBeng;
+
+    /** 加药方式(0自动 1一号池 2二号池 3人工投放) */
+    @Excel(name = "加药方式(0自动 1一号池 2二号池 3人工投放)")
+    private Integer type;
+
+    /** 进水流量类型(0手动 1仪表) */
+    @Excel(name = "进水流量类型", readConverterExp = "0=手动,1=仪表")
+    private Integer jsLlType;
+
+    /** 进水流量1号池 */
+    @Excel(name = "进水流量1号池")
+    private BigDecimal jsLlOne;
+
+    /** 进水流量2号池 */
+    @Excel(name = "进水流量2号池")
+    private BigDecimal jsLlTwo;
+
+    /** 进水cod类型(0手动 1仪表 2化验) */
+    @Excel(name = "进水cod类型", readConverterExp = "0=手动,1=仪表,2=化验")
+    private Integer jsCodType;
+
+    /** 进水cod1号池 */
+    @Excel(name = "进水cod1号池")
+    private BigDecimal jsCodOne;
+
+    /** 进水cod二号池 */
+    @Excel(name = "进水cod二号池")
+    private BigDecimal jsCodTwo;
+
+    /** 好氧池硝酸盐类型(0手动 1化验 2预测) */
+    @Excel(name = "好氧池硝酸盐类型", readConverterExp = "0=手动,1=化验,2=预测")
+    private Integer hycXsyType;
+
+    /** 好氧池硝酸盐1号池 */
+    @Excel(name = "好氧池硝酸盐1号池")
+    private BigDecimal hycXsyOne;
+
+    /** 好氧池硝酸盐二号池 */
+    @Excel(name = "好氧池硝酸盐二号池")
+    private BigDecimal hycXsyTwo;
+
+    /** 缺氧池硝酸盐类型(0手动 1化验) */
+    @Excel(name = "缺氧池硝酸盐类型", readConverterExp = "0=手动,1=化验")
+    private Integer qycYxyType;
+
+    /** 缺氧池硝酸盐1号池 */
+    @Excel(name = "缺氧池硝酸盐1号池")
+    private BigDecimal qycYxyOne;
+
+    /** 缺氧池硝酸盐2号池 */
+    @Excel(name = "缺氧池硝酸盐2号池")
+    private BigDecimal qycYxyTwo;
+
+    /** 缺氧池氨氮类型(0手动 1化验) */
+    @Excel(name = "缺氧池氨氮类型", readConverterExp = "0=手动,1=化验")
+    private Integer qycAdType;
+
+    /** 缺氧池氨氮1号池 */
+    @Excel(name = "缺氧池氨氮1号池")
+    private BigDecimal qycAdOne;
+
+    /** 缺氧池氨氮二号池 */
+    @Excel(name = "缺氧池氨氮二号池")
+    private BigDecimal qycAdTwo;
+
+    /** 进水总氮类型(0手动 1仪表) */
+    @Excel(name = "进水总氮类型", readConverterExp = "0=手动,1=仪表")
+    private Integer jsTnType;
+
+    /** 进水总氮1号池 */
+    @Excel(name = "进水总氮1号池")
+    private BigDecimal jsTnOne;
+
+    /** 进水总氮2号池 */
+    @Excel(name = "进水总氮2号池")
+    private BigDecimal jsTnTwo;
+
+    /** 后台反馈设定 */
+    @Excel(name = "后台反馈设定")
+    private BigDecimal htfksd;
+
+    /** 基准系数 */
+    @Excel(name = "基准系数")
+    private BigDecimal jzxs;
+
+    /** 修正系数 */
+    @Excel(name = "修正系数")
+    private BigDecimal xzxs;
+
+    /** 控制系数 */
+    @Excel(name = "控制系数")
+    private BigDecimal kzxs;
+
+    /** 水量分配系数 */
+    @Excel(name = "水量分配系数")
+    private BigDecimal slfpxs;
+
+    /** 碳源当量 */
+    @Excel(name = "碳源当量")
+    private BigDecimal tydl;
+
+    /** 转换系数 */
+    @Excel(name = "转换系数")
+    private BigDecimal zhxs;
+
+    /** 稀释配属 */
+    @Excel(name = "稀释配属")
+    private BigDecimal sxps;
+
+    /** 药剂密度 */
+    @Excel(name = "药剂密度")
+    private BigDecimal yymd;
+
+    /** 最小启动流量 */
+    @Excel(name = "最小启动流量")
+    private BigDecimal zxqdll;
+
+    /** 碳氮比 */
+    @Excel(name = "碳氮比")
+    private BigDecimal tdb;
+
+    /** 加药量 */
+    @Excel(name = "加药量")
+    private BigDecimal medicineAmount;
+
+    /** 删除标志(0代表存在 2代表删除) */
+    private Long delFlag;
+
+    /** 乐观锁 */
+    @Excel(name = "乐观锁")
+    private Long revision;
+
+    //额外查询的字段
+    //碳源投加瞬时流量
+    private BigDecimal tytjTransientLL;
+
+    //投加运行方式(0启用智适应碳源投加  1手动碳源投加)
+    private Integer addType;
+
+    //请求参数
+
+    /**  开始时间 */
+    private String timeBegin;
+
+    /** 截止时间 */
+    private String timeEnd;
+}

+ 199 - 2
slibra-quartz/src/main/java/com/slibra/quartz/task/RyTask.java

@@ -16,6 +16,8 @@ import com.slibra.business.req.GenerateArgs;
 import com.slibra.business.req.PredictorRequest;
 import com.slibra.business.res.ChartBasic;
 import com.slibra.business.res.ShowValueChartBasic;
+import com.slibra.business.res.SmartAdd;
+import com.slibra.business.service.IFrontService;
 import com.slibra.business.service.ITXinyiForecastComparisonService;
 import com.slibra.common.DecimalUtils;
 import com.slibra.common.config.BigModelConfig;
@@ -42,6 +44,7 @@ import org.springframework.util.CollectionUtils;
 
 import java.io.IOException;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.text.ParseException;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
@@ -118,6 +121,15 @@ public class RyTask
     @Autowired
     private JsCsFormatData jsCsFormatData;
 
+    @Autowired
+    private TXinyiMedicineParamMapper xinyiMedicineParamMapper;
+
+    @Autowired
+    private TXinyiMedicineConfMapper xinyiMedicineConfMapper;
+
+    @Autowired
+    private IFrontService frontService;
+
     /** 使用的是哪个环境 */
     @Value("${spring.profiles.active}")
     private String environment;
@@ -833,6 +845,189 @@ public class RyTask
     }
 
 
+    public void calculateAndAddMedicine(){
+        log.info("进入了 定时计算投药 定时任务处理++++++");
+        BigDecimal val = this.calculateMedicine();
+        log.info("计算的结果是{}", val);
+        boolean canAdd = false;
+        TXinyiMedicineConf tXinyiMedicineConf = xinyiMedicineConfMapper.selectTXinyiMedicineConfById(LONG_1);
+        if(!Objects.isNull(tXinyiMedicineConf) && !Objects.isNull(tXinyiMedicineConf.getAddStatus()) && 1 == tXinyiMedicineConf.getAddStatus()){
+            canAdd = true;
+        }
+        if(!Objects.isNull(val) && canAdd){
+            //todo 调用组态接口,实施碳源投加
+            log.info("开始调用组态接口,实施碳源投加^^^^^^");
+
+            log.info("调用组态接口,实施碳源投加结束******");
+        }
+        log.info(" 定时计算投药 定时任务处理 结束------");
+    }
+
+    private BigDecimal calculateMedicine() {
+        //获取最新的配置信息
+        TXinyiMedicineParam latestRecord = this.xinyiMedicineParamMapper.getLatestRecord();
+        if(!Objects.isNull(latestRecord)){
+            return this.calculateMedicineByLastRecord(latestRecord);
+        }
+        return null;
+    }
+
+    private BigDecimal calculateMedicineByLastRecord(TXinyiMedicineParam param) {
+        if (Objects.isNull(param)) {
+            return null;
+        }
+        //计算用到的值
+        Integer hycXsyType = param.getHycXsyType();
+        BigDecimal hycXsyOne = param.getHycXsyOne();
+        BigDecimal hycXsyTwo = param.getHycXsyTwo();
+
+        BigDecimal htfksd = param.getHtfksd();
+
+        Integer qycAdType = param.getQycAdType();
+        BigDecimal qycAdOne = param.getQycAdOne();
+        BigDecimal qycAdTwo = param.getQycAdTwo();
+
+        Integer qycYxyType = param.getQycYxyType();
+        BigDecimal qycYxyOne = param.getQycYxyOne();
+        BigDecimal qycYxyTwo = param.getQycYxyTwo();
+
+        BigDecimal xzxs = param.getXzxs();
+
+        BigDecimal jzxs = param.getJzxs();
+
+        Integer jsLlType = param.getJsLlType();
+        BigDecimal jsLlOne = param.getJsLlOne();//两个池子的值是一样的
+
+        BigDecimal slfpxs = param.getSlfpxs();
+
+        BigDecimal kzxs = param.getKzxs();
+
+        Integer jsCodType = param.getJsCodType();
+        BigDecimal jsCodOne = param.getJsCodOne();
+        BigDecimal jsCodTwo = param.getJsCodTwo();
+
+        BigDecimal zhxs = param.getZhxs();
+
+        BigDecimal tydl = param.getTydl();
+
+        BigDecimal medicineAmount = param.getMedicineAmount();//手动需要
+
+        Integer type = param.getType();//0自动 1一号池 2二号池 3人工投放
+
+        //计算
+        if(!Objects.isNull(type)) {
+            if(3 == type){
+                return medicineAmount;
+            }
+            //计算1号池的值
+            BigDecimal oneResult = this.getResultByDiff(hycXsyType, hycXsyOne, htfksd, qycAdType, qycAdOne, qycYxyType, qycYxyOne, xzxs, jzxs, jsLlType, jsLlOne, slfpxs, kzxs, jsCodType, jsCodOne, zhxs, tydl, "one");
+            //计算二号池的值
+            BigDecimal twoResult = this.getResultByDiff(hycXsyType, hycXsyTwo, htfksd, qycAdType, qycAdTwo, qycYxyType, qycYxyTwo, xzxs, jzxs, jsLlType, jsLlOne, slfpxs, kzxs, jsCodType, jsCodTwo, zhxs, tydl, "two");
+            //判断,返回值
+            if(0 == type)
+                return oneResult.compareTo(twoResult) > 0 ? oneResult : twoResult;
+            else if(1 == type) {
+                return oneResult;
+            }else if(2 == type)
+                return twoResult;
+            else {
+                return null;//错误的配置
+            }
+        }
+        return null;
+    }
+
+    private BigDecimal getResultByDiff(Integer hycXsyType, BigDecimal hycXsyVal, BigDecimal htfksd, Integer qycAdType, BigDecimal qycAdVal, Integer qycYxyType,
+                                       BigDecimal qycYxyVal, BigDecimal xzxs, BigDecimal jzxs, Integer jsLlType, BigDecimal jsLlVal, BigDecimal slfpxs, BigDecimal kzxs, Integer jsCodType,
+                                       BigDecimal jsCodVal, BigDecimal zhxs, BigDecimal tydl, String whichCZ) {
+        //2024年09月14日10:26:11  不同池子,根据不同类型,获取最新的数据,计算碳源投加量
+        //获取最新的实时数据
+        SmartAdd smartAdd = this.frontService.smartAddDataInfo();
+        if(!Objects.isNull(smartAdd)){
+            if("one".equals(whichCZ)){//一池
+                if(!Objects.isNull(hycXsyType)){
+                    if(1 == hycXsyType){//化验
+                        hycXsyVal = smartAdd.getHyXsyHYOne();
+                    }else if(2 == hycXsyType){//预测
+                        hycXsyVal = smartAdd.getHyXsyYCOne();
+                    }
+                }
+                if(!Objects.isNull(qycAdType) && 1 == qycAdType){//化验
+                    qycAdVal = smartAdd.getQyAdHYOne();
+                }
+                if(!Objects.isNull(qycYxyType) && 1 == qycYxyType){//化验
+                    qycYxyVal = smartAdd.getQyXsyHYOne();
+                }
+                if(!Objects.isNull(jsCodType)){
+                    if(1 == jsCodType){//仪表
+                        jsCodVal = smartAdd.getJsCodYB();
+                    }else if(2 == jsCodType){//化验
+                        jsCodVal = smartAdd.getJsCodHY();
+                    }
+                }
+                if(!Objects.isNull(jsLlType) && 1 == jsLlType){//仪表
+                    jsLlVal = smartAdd.getJslYB();
+                }
+            }else {//二池
+                if(!Objects.isNull(hycXsyType)){
+                    if(1 == hycXsyType){//化验
+                        hycXsyVal = smartAdd.getHyXsyHYTwo();
+                    }else if(2 == hycXsyType){//预测
+                        hycXsyVal = smartAdd.getHyXsyYCTwo();
+                    }
+                }
+                if(!Objects.isNull(qycAdType) && 1 == qycAdType){//化验
+                    qycAdVal = smartAdd.getQyAdHYTwo();
+                }
+                if(!Objects.isNull(qycYxyType) && 1 == qycYxyType){//化验
+                    qycYxyVal = smartAdd.getQyXsyHYTwo();
+                }
+                if(!Objects.isNull(jsCodType)){
+                    if(1 == jsCodType){//仪表
+                        jsCodVal = smartAdd.getJsCodYB();
+                    }else if(2 == jsCodType){//化验
+                        jsCodVal = smartAdd.getJsCodHY();
+                    }
+                }
+                if(!Objects.isNull(jsLlType) && 1 == jsLlType){//仪表
+                    jsLlVal = smartAdd.getJslYB();
+                }
+            }
+        }
+
+
+        //兜底处理
+        if(Objects.isNull(hycXsyVal))
+            hycXsyVal = BigDecimal.ZERO;
+        if(Objects.isNull(htfksd))
+            htfksd = BigDecimal.ZERO;
+        if(Objects.isNull(qycAdVal))
+            qycAdVal = BigDecimal.ZERO;
+        if(Objects.isNull(qycYxyVal))
+            qycYxyVal = BigDecimal.ZERO;
+        if(Objects.isNull(xzxs))
+            xzxs = BigDecimal.ZERO;
+        if(Objects.isNull(jzxs))
+            jzxs = BigDecimal.ZERO;
+        if(Objects.isNull(jsLlVal))
+            jsLlVal = BigDecimal.ZERO;
+        if(Objects.isNull(slfpxs))
+            slfpxs = BigDecimal.ZERO;
+        if(Objects.isNull(kzxs))
+            kzxs = BigDecimal.ZERO;
+        if(Objects.isNull(jsCodVal))
+            jsCodVal = BigDecimal.ZERO;
+        if(Objects.isNull(zhxs))
+            zhxs = BigDecimal.ZERO;
+        if(Objects.isNull(tydl))
+            tydl = BigDecimal.ZERO;
+        //1)计算挟走量
+        BigDecimal xzl = (((BigDecimal_2.multiply(hycXsyVal).subtract(htfksd)).add(((qycAdVal.add(qycYxyVal)).multiply(xzxs).subtract(htfksd)))).multiply((jzxs.subtract(BigDecimal_1)))).multiply((jsLlVal.multiply(slfpxs))).divide(BigDecimal_1000, NUMBER_SCALE_4, RoundingMode.HALF_UP);
+        //2)计算碳源投加总量
+        return (xzl.multiply(kzxs).subtract((jsLlVal.multiply(slfpxs).multiply(jsCodVal).multiply(zhxs).divide(BigDecimal_1000, NUMBER_SCALE_4, RoundingMode.HALF_UP)))).divide(tydl, NUMBER_SCALE_4, RoundingMode.HALF_UP);
+    }
+
+
     public String formatList(List<BigDecimal> list) {
         if (CollectionUtils.isEmpty(list)) {
             return null;
@@ -2026,12 +2221,12 @@ public class RyTask
 
 //        System.out.println(new BigDecimal("1").compareTo(null));//空指针 要判断
 
-        System.out.println("2022/01/01 10".substring(11));*/
+        System.out.println("2022/01/01 10".substring(11));
 
         String date = DateUtil.format(DateUtils.getNowDate(), DateUtils.YYYY_MM_DD_HH);
         System.out.println("date = " + date);
 
-        System.out.println(HttpUtil.get("http://10.0.3.52:10003/system/forecast?type=2&time=" + date, 10));
+        System.out.println(HttpUtil.get("http://10.0.3.52:10003/system/forecast?type=2&time=" + date, 10));*/
 
         System.out.println("2024-06-18 14".replaceAll("-", "/"));
 
@@ -2049,6 +2244,8 @@ public class RyTask
 
         System.out.println("2024/07/07 12".substring(0, 7));
 
+        System.out.println(BigDecimal_0_1.multiply(null));
+
 
     }
 

+ 8 - 8
slibra-system/src/main/java/com/slibra/business/domain/TXinyiMedicineParam.java

@@ -30,15 +30,15 @@ public class TXinyiMedicineParam extends BaseEntity
 
     /** 加药泵(0 1号泵 ;1 2号泵 ;2 3号泵) */
     @Excel(name = "加药泵", readConverterExp = "0=,1=号泵,;=1,2=号泵,;=2,3=号泵")
-    private Long numberBeng;
+    private Integer numberBeng;
 
     /** 加药方式(0自动 1一号池 2二号池 3人工投放) */
     @Excel(name = "加药方式(0自动 1一号池 2二号池 3人工投放)")
-    private Long type;
+    private Integer type;
 
     /** 进水流量类型(0手动 1仪表) */
     @Excel(name = "进水流量类型", readConverterExp = "0=手动,1=仪表")
-    private Long jsLlType;
+    private Integer jsLlType;
 
     /** 进水流量1号池 */
     @Excel(name = "进水流量1号池")
@@ -50,7 +50,7 @@ public class TXinyiMedicineParam extends BaseEntity
 
     /** 进水cod类型(0手动 1仪表 2化验) */
     @Excel(name = "进水cod类型", readConverterExp = "0=手动,1=仪表,2=化验")
-    private Long jsCodType;
+    private Integer jsCodType;
 
     /** 进水cod1号池 */
     @Excel(name = "进水cod1号池")
@@ -62,7 +62,7 @@ public class TXinyiMedicineParam extends BaseEntity
 
     /** 好氧池硝酸盐类型(0手动 1化验 2预测) */
     @Excel(name = "好氧池硝酸盐类型", readConverterExp = "0=手动,1=化验,2=预测")
-    private Long hycXsyType;
+    private Integer hycXsyType;
 
     /** 好氧池硝酸盐1号池 */
     @Excel(name = "好氧池硝酸盐1号池")
@@ -74,7 +74,7 @@ public class TXinyiMedicineParam extends BaseEntity
 
     /** 缺氧池硝酸盐类型(0手动 1化验) */
     @Excel(name = "缺氧池硝酸盐类型", readConverterExp = "0=手动,1=化验")
-    private Long qycYxyType;
+    private Integer qycYxyType;
 
     /** 缺氧池硝酸盐1号池 */
     @Excel(name = "缺氧池硝酸盐1号池")
@@ -86,7 +86,7 @@ public class TXinyiMedicineParam extends BaseEntity
 
     /** 缺氧池氨氮类型(0手动 1化验) */
     @Excel(name = "缺氧池氨氮类型", readConverterExp = "0=手动,1=化验")
-    private Long qycAdType;
+    private Integer qycAdType;
 
     /** 缺氧池氨氮1号池 */
     @Excel(name = "缺氧池氨氮1号池")
@@ -98,7 +98,7 @@ public class TXinyiMedicineParam extends BaseEntity
 
     /** 进水总氮类型(0手动 1仪表) */
     @Excel(name = "进水总氮类型", readConverterExp = "0=手动,1=仪表")
-    private Long jsTnType;
+    private Integer jsTnType;
 
     /** 进水总氮1号池 */
     @Excel(name = "进水总氮1号池")

+ 52 - 0
slibra-system/src/main/java/com/slibra/business/service/impl/TXinyiMedicineParamServiceImpl.java

@@ -6,6 +6,8 @@ import java.util.Objects;
 
 import com.slibra.business.domain.TXinyiIndustry;
 import com.slibra.business.mapper.TXinyiIndustryMapper;
+import com.slibra.business.res.SmartAdd;
+import com.slibra.business.service.IFrontService;
 import com.slibra.common.DecimalUtils;
 import com.slibra.common.utils.DateUtils;
 import com.slibra.common.utils.StringUtils;
@@ -33,6 +35,9 @@ public class TXinyiMedicineParamServiceImpl implements ITXinyiMedicineParamServi
     @Autowired
     private TXinyiIndustryMapper xinyiIndustryMapper;
 
+    @Autowired
+    private IFrontService frontService;
+
     /**
      * 查询智能投药参数设置
      * 
@@ -124,6 +129,53 @@ public class TXinyiMedicineParamServiceImpl implements ITXinyiMedicineParamServi
             if (!Objects.isNull(tXinyiIndustry)) {
                 latestRecord.setTytjTransientLL(DecimalUtils.getAbsAndScale(tXinyiIndustry.getSJTYJLY(), INT_4));
             }
+            //2024年09月14日11:02:12  有可能用户选择的是仪表或者化验,需要获取实时数据
+            //获取最新的实时数据
+            SmartAdd smartAdd = this.frontService.smartAddDataInfo();
+            if(!Objects.isNull(smartAdd)){
+                //获取对应的类型
+                Integer hycXsyType = latestRecord.getHycXsyType();
+                Integer qycAdType = latestRecord.getQycAdType();
+                Integer qycYxyType = latestRecord.getQycYxyType();
+                Integer jsCodType = latestRecord.getJsCodType();
+                Integer jsLlType = latestRecord.getJsLlType();
+                Integer jsTnType = latestRecord.getJsTnType();
+                if(!Objects.isNull(hycXsyType)){
+                    if(1 == hycXsyType){//化验
+                        latestRecord.setHycXsyOne(smartAdd.getHyXsyHYOne());
+                        latestRecord.setHycXsyTwo(smartAdd.getHyXsyHYTwo());
+                    }else if(2 == hycXsyType){//预测
+                        latestRecord.setHycXsyOne(smartAdd.getHyXsyYCOne());
+                        latestRecord.setHycXsyTwo(smartAdd.getHyXsyYCTwo());
+                    }
+                }
+                if(!Objects.isNull(qycAdType) && 1 == qycAdType){//化验
+                    latestRecord.setQycAdOne(smartAdd.getQyAdHYOne());
+                    latestRecord.setQycAdTwo(smartAdd.getQyAdHYTwo());
+                }
+                if(!Objects.isNull(qycYxyType) && 1 == qycYxyType){//化验
+                    latestRecord.setQycYxyOne(smartAdd.getQyXsyHYOne());
+                    latestRecord.setQycYxyTwo(smartAdd.getQyXsyHYTwo());
+                }
+                if(!Objects.isNull(jsCodType)){
+                    if(1 == jsCodType){//仪表
+                        latestRecord.setJsCodOne(smartAdd.getJsCodYB());
+                        latestRecord.setJsCodTwo(smartAdd.getJsCodYB());
+                    }else if(2 == jsCodType){//化验
+                        latestRecord.setJsCodOne(smartAdd.getJsCodHY());
+                        latestRecord.setJsCodTwo(smartAdd.getJsCodHY());
+                    }
+                }
+                if(!Objects.isNull(jsLlType) && 1 == jsLlType){//仪表
+                    latestRecord.setJsLlOne(smartAdd.getJslYB());
+                    latestRecord.setJsLlTwo(smartAdd.getJslYB());
+                }
+                if(!Objects.isNull(jsTnType) && 1 == jsTnType){//仪表
+                    latestRecord.setJsTnOne(smartAdd.getJsTnYB());
+                    latestRecord.setJsTnTwo(smartAdd.getJsTnYB());
+                }
+
+            }
         }
         //todo 调用组态,获取投加状态
         latestRecord.setAddType(Math.random() < 0.5 ? 0 : 1);