Quellcode durchsuchen

修改modbus存储数据时 入库方式改为tdengine

hxf vor 1 Jahr
Ursprung
Commit
50990d0384

+ 5 - 9
neim-biz/src/main/java/com/jiayue/biz/conf/Channel.java

@@ -1,6 +1,5 @@
 package com.jiayue.biz.conf;
 
-import cn.hutool.core.date.DateTime;
 import cn.hutool.core.thread.ThreadFactoryBuilder;
 import com.jiayue.biz.domain.PointAttribute;
 import com.jiayue.biz.domain.TunnelInfo;
@@ -8,18 +7,11 @@ import com.jiayue.biz.domain.WindTowerInfo;
 import com.jiayue.biz.service.PointAttributeService;
 import com.jiayue.biz.service.TunnelInfoService;
 import com.jiayue.biz.service.WindTowerInfoService;
-import com.jiayue.biz.service.impl.PointAttributeServiceImpl;
 import com.jiayue.biz.service.impl.WindTowerDataParentTableServiceImpl;
 import com.jiayue.biz.util.CalculationUtil;
-import com.jiayue.common.annotation.Log;
 import com.jiayue.common.utils.DateUtil;
-import io.netty.channel.ChannelFuture;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.scheduling.annotation.Scheduled;
 import wei.yigulu.modbus.domain.FunctionCode;
 import wei.yigulu.modbus.domain.Obj4RequestRegister;
 import wei.yigulu.modbus.domain.datatype.IModbusDataType;
@@ -114,6 +106,8 @@ public class Channel {
         List<TunnelInfo> tunnelInfoList = tunnelInfoService.list();
         List<PointAttribute> attributeList = pointAttributeService.list();
         String time = DateUtil.format(DateUtil.date(), "yyyy-MM-dd HH:mm");
+        //TODO 现场测试筛选数据是否能正常入库
+//        List<HashMap<String, Object>> mapList = new ArrayList<>();
         for (Map.Entry<String, ModbusTcpMasterBuilder> masterBuilderEntry : masterMap.entrySet()) {
             //获取通道map中的key
             String stationId = masterBuilderEntry.getKey();
@@ -171,7 +165,7 @@ public class Channel {
                 windTowerInfo.setName(tunnelist.get(0).getStationId());
                 windTowerInfo.setHeights(wsHeight);
                 windTowerInfo.setWdHeights(wdHeight);
-                windTowerInfo.setType("2");
+                windTowerInfo.setType("station");
                 windTowerInfoService.save(windTowerInfo);
             }
             // 例如: key:wsAve val:数据
@@ -200,8 +194,10 @@ public class Channel {
                 throw new RuntimeException(e);
             }
             wsHeightSet.addAll(wdHeightSet);
+//            mapList.add(pointMap);
             windTowerDataParentTableService.saveDataForTunnel(pointMap, wsHeightSet,tunnelInfo.getEquipmentNo(),time);
         }
+//            List<Map<String, Object>> mapList = new CheckDataRecode().checkValue((List<Map<String, Object>>) pointMap, "station");
     }
 
 

+ 1 - 1
neim-biz/src/main/java/com/jiayue/biz/service/impl/CheckDataRecode.java

@@ -49,7 +49,7 @@ public class CheckDataRecode {
     public List<Map<String, Object>> checkValue(List<Map<String, Object>> allData, String type) {
         List<Map<String, Object>> filterData = new ArrayList<>();
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
-        if (type.equals("rld")) {
+        if (type.equals("rld") || type.equals("station")) {
             simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         }
         if (type.equals("sld")) {

+ 54 - 66
neim-biz/src/main/java/com/jiayue/biz/service/impl/WindTowerDataParentTableServiceImpl.java

@@ -492,99 +492,87 @@ public class WindTowerDataParentTableServiceImpl extends ServiceImpl<WindTowerDa
 
     //通道数据保存
     public void saveDataForTunnel(HashMap<String, BigDecimal> dataMap, HashSet<Integer> heightSet, String equipmentNo, String time) {
-        WindTowerDataParentTable windTowerDataParentTable = new WindTowerDataParentTable();
-        List<WindTowerInfo> windTowerInfos = windTowerInfoService.lambdaQuery().eq(WindTowerInfo::getType, "2").eq(WindTowerInfo::getEquipmentNo, "3002").list();
-        String id = String.valueOf(UUID.randomUUID());
-        List<EquipmentAttribute> equipmentAttributes = equipmentAttributeService.lambdaQuery().eq(EquipmentAttribute::getAttributeFunction, "height").list();
-        List<WindTowerDataChildTable> windTowerDataChildTableList = new ArrayList<>();
+
+//        List<WindTowerInfo> windTowerInfos = windTowerInfoService.lambdaQuery().eq(WindTowerInfo::getType, "2").eq(WindTowerInfo::getEquipmentNo, "3002").list();
+//        List<EquipmentAttribute> equipmentAttributes = equipmentAttributeService.lambdaQuery().eq(EquipmentAttribute::getAttributeFunction, "height").list();
         for (Integer height : heightSet) {
-            List<EquipmentAttribute> eqHeight = equipmentAttributes.stream().filter(e -> e.getFieldName().equals(height.toString())).collect(Collectors.toList());
-            WindTowerDataChildTable windTowerDataChildTable = new WindTowerDataChildTable();
-            windTowerDataChildTable.setParentId(id);
-            windTowerDataChildTable.setLayerHeight(eqHeight.get(0).getId());
-            windTowerDataChildTable.setWsAve(CalculationUtil.getBigDecimal(dataMap.get("wsAve" + height) == null ? null : dataMap.get("wsAve" + height).toString()));
-            windTowerDataChildTable.setWsMin(CalculationUtil.getBigDecimal(dataMap.get("wsMin" + height) == null ? null : dataMap.get("wsMin" + height).toString()));
-            windTowerDataChildTable.setWsMax(CalculationUtil.getBigDecimal(dataMap.get("wsMax" + height) == null ? null : dataMap.get("wsMax" + height).toString()));
-            windTowerDataChildTable.setWsSta(CalculationUtil.getBigDecimal(dataMap.get("wsSta" + height) == null ? null : dataMap.get("wsSta" + height).toString()));
-            windTowerDataChildTable.setWsInst(CalculationUtil.getBigDecimal(dataMap.get("wsInst" + height) == null ? null : dataMap.get("wsInst" + height).toString()));
-            windTowerDataChildTable.setWsGust(CalculationUtil.getBigDecimal(dataMap.get("wsGust" + height) == null ? null : dataMap.get("wsGust" + height).toString()));
-            windTowerDataChildTable.setWsGreat(CalculationUtil.getBigDecimal(dataMap.get("wsGreat" + height) == null ? null : dataMap.get("wsGreat" + height).toString()));
-            windTowerDataChildTable.setWdAve(CalculationUtil.getBigDecimal(dataMap.get("wdAve" + height) == null ? null : dataMap.get("wdAve" + height).toString()));
-            windTowerDataChildTable.setWdMax(CalculationUtil.getBigDecimal(dataMap.get("wdMax" + height) == null ? null : dataMap.get("wdMax" + height).toString()));
-            windTowerDataChildTable.setWdMin(CalculationUtil.getBigDecimal(dataMap.get("wdMin" + height) == null ? null : dataMap.get("wdMin" + height).toString()));
-            windTowerDataChildTable.setWdSta(CalculationUtil.getBigDecimal(dataMap.get("wdSta" + height) == null ? null : dataMap.get("wdSta" + height).toString()));
-            windTowerDataChildTable.setWdInst(CalculationUtil.getBigDecimal(dataMap.get("wdInst" + height) == null ? null : dataMap.get("wdInst" + height).toString()));
-            windTowerDataChildTable.setWdOnWs(CalculationUtil.getBigDecimal(dataMap.get("wdOnWs" + height) == null ? null : dataMap.get("wdOnWs" + height).toString()));
-            windTowerDataChildTable.setWdNow(CalculationUtil.getBigDecimal(dataMap.get("wdNow" + height) == null ? null : dataMap.get("wdNow" + height).toString()));
-            windTowerDataChildTableList.add(windTowerDataChildTable);
+//            List<EquipmentAttribute> eqHeight = equipmentAttributes.stream().filter(e -> e.getFieldName().equals(height.toString())).collect(Collectors.toList());
+            ProphaseAnemometryData prophaseAnemometryData = new ProphaseAnemometryData();
+
+            prophaseAnemometryData.setLayerHeight(height.toString());
+
+            prophaseAnemometryData.setWsAve(CalculationUtil.getBigDecimal(dataMap.get("wsAve" + height) == null ? null : dataMap.get("wsAve" + height).toString()).floatValue());
+            prophaseAnemometryData.setWsMin(CalculationUtil.getBigDecimal(dataMap.get("wsMin" + height) == null ? null : dataMap.get("wsMin" + height).toString()).floatValue());
+            prophaseAnemometryData.setWsMax(CalculationUtil.getBigDecimal(dataMap.get("wsMax" + height) == null ? null : dataMap.get("wsMax" + height).toString()).floatValue());
+            prophaseAnemometryData.setWsSta(CalculationUtil.getBigDecimal(dataMap.get("wsSta" + height) == null ? null : dataMap.get("wsSta" + height).toString()).floatValue());
+            prophaseAnemometryData.setWsInst(CalculationUtil.getBigDecimal(dataMap.get("wsInst" + height) == null ? null : dataMap.get("wsInst" + height).toString()).floatValue());
+            prophaseAnemometryData.setWsGust(CalculationUtil.getBigDecimal(dataMap.get("wsGust" + height) == null ? null : dataMap.get("wsGust" + height).toString()).floatValue());
+            prophaseAnemometryData.setWdAve(CalculationUtil.getBigDecimal(dataMap.get("wdAve" + height) == null ? null : dataMap.get("wdAve" + height).toString()).floatValue());
+            prophaseAnemometryData.setWdMax(CalculationUtil.getBigDecimal(dataMap.get("wdMax" + height) == null ? null : dataMap.get("wdMax" + height).toString()).floatValue());
+            prophaseAnemometryData.setWdMin(CalculationUtil.getBigDecimal(dataMap.get("wdMin" + height) == null ? null : dataMap.get("wdMin" + height).toString()).floatValue());
+            prophaseAnemometryData.setWdSta(CalculationUtil.getBigDecimal(dataMap.get("wdSta" + height) == null ? null : dataMap.get("wdSta" + height).toString()).floatValue());
+            prophaseAnemometryData.setWdInst(CalculationUtil.getBigDecimal(dataMap.get("wdInst" + height) == null ? null : dataMap.get("wdInst" + height).toString()).floatValue());
+            prophaseAnemometryData.setEquipmentId(equipmentNo);
+
+            prophaseAnemometryDataOrgService.insertOneWithNew(prophaseAnemometryData);
+            prophaseAnemometryDataService.insertOneWithNew(prophaseAnemometryData);
         }
 
-        windTowerDataParentTable.setEquipmentId(windTowerInfos.get(0).getEquipmentNo());
-        windTowerDataParentTable.setId(id);
+        ProphaseWeatherData prophaseWeatherData = new ProphaseWeatherData();
+
+
+        prophaseWeatherData.setEquipmentId(equipmentNo);
         //设置时间
-        windTowerDataParentTable.setTime(DateUtil.parseDate(time));
+        prophaseWeatherData.setTs(new Timestamp(DateUtil.parseDate(time).getTime()));
         if (dataMap.get("paMax") != null)
             //kpa转hpa
             if (BigDecimal.valueOf(Double.parseDouble(dataMap.get("paMax").toString())).compareTo(new BigDecimal(200)) < 0)
-                windTowerDataParentTable.setPaMax(CalculationUtil.getBigDecimal(dataMap.get("paMax").toString()).multiply(new BigDecimal(10)).setScale(4, RoundingMode.HALF_UP));
+                prophaseWeatherData.setPaMax(CalculationUtil.getBigDecimal(dataMap.get("paMax").toString()).multiply(new BigDecimal(10)).setScale(4, RoundingMode.HALF_UP).floatValue());
             else
-                windTowerDataParentTable.setPaMax(CalculationUtil.getBigDecimal(dataMap.get("paMax").toString()));
+                prophaseWeatherData.setPaMax(CalculationUtil.getBigDecimal(dataMap.get("paMax").toString()).floatValue());
         if (dataMap.get("paMin") != null)
             //kpa转hpa
             if (BigDecimal.valueOf(Double.parseDouble(dataMap.get("paMin").toString())).compareTo(new BigDecimal(200)) < 0)
-                windTowerDataParentTable.setPaMin(CalculationUtil.getBigDecimal(dataMap.get("paMin").toString()).multiply(new BigDecimal(10)).setScale(4, RoundingMode.HALF_UP));
+                prophaseWeatherData.setPaMin(CalculationUtil.getBigDecimal(dataMap.get("paMin").toString()).multiply(new BigDecimal(10)).setScale(4, RoundingMode.HALF_UP).floatValue());
             else
-                windTowerDataParentTable.setPaMin(CalculationUtil.getBigDecimal(dataMap.get("paMin").toString()));
+                prophaseWeatherData.setPaMin(CalculationUtil.getBigDecimal(dataMap.get("paMin").toString()).floatValue());
         if (dataMap.get("paInst") != null)
             //kpa转hpa
             if (BigDecimal.valueOf(Double.parseDouble(dataMap.get("paInst").toString())).compareTo(new BigDecimal(200)) < 0)
-                windTowerDataParentTable.setPaMin(CalculationUtil.getBigDecimal(dataMap.get("paInst").toString()).multiply(new BigDecimal(10)).setScale(4, RoundingMode.HALF_UP));
+                prophaseWeatherData.setPaMin(CalculationUtil.getBigDecimal(dataMap.get("paInst").toString()).multiply(new BigDecimal(10)).setScale(4, RoundingMode.HALF_UP).floatValue());
             else
-                windTowerDataParentTable.setPaMin(CalculationUtil.getBigDecimal(dataMap.get("paInst").toString()));
+                prophaseWeatherData.setPaMin(CalculationUtil.getBigDecimal(dataMap.get("paInst").toString()).floatValue());
         if (dataMap.get("paAve") != null)
             //kpa转hpa
             if (BigDecimal.valueOf(Double.parseDouble(dataMap.get("paAve").toString())).compareTo(new BigDecimal(200)) < 0)
-                windTowerDataParentTable.setPaAve(CalculationUtil.getBigDecimal(dataMap.get("paAve").toString()).multiply(new BigDecimal(10)).setScale(4, RoundingMode.HALF_UP));
+                prophaseWeatherData.setPaAve(CalculationUtil.getBigDecimal(dataMap.get("paAve").toString()).multiply(new BigDecimal(10)).setScale(4, RoundingMode.HALF_UP).floatValue());
             else
-                windTowerDataParentTable.setPaAve(CalculationUtil.getBigDecimal(dataMap.get("paAve").toString()));
-        windTowerDataParentTable.setPaSta(CalculationUtil.getBigDecimal(dataMap.get("paSta") == null ? null : dataMap.get("paSta").toString()));
-        windTowerDataParentTable.setPaNow(CalculationUtil.getBigDecimal(dataMap.get("paNow") == null ? null : dataMap.get("paNow").toString()));
-
-        windTowerDataParentTable.setTMax(CalculationUtil.getBigDecimal(dataMap.get("tMax") == null ? null : dataMap.get("tMax").toString()));
-        windTowerDataParentTable.setTMin(CalculationUtil.getBigDecimal(dataMap.get("tMin") == null ? null : dataMap.get("tMin").toString()));
-        windTowerDataParentTable.setTAve(CalculationUtil.getBigDecimal(dataMap.get("tAve") == null ? null : dataMap.get("tAve").toString()));
-        windTowerDataParentTable.setTSta(CalculationUtil.getBigDecimal(dataMap.get("tSta") == null ? null : dataMap.get("tSta").toString()));
-        windTowerDataParentTable.setTInst(CalculationUtil.getBigDecimal(dataMap.get("tInst") == null ? null : dataMap.get("tInst").toString()));
-        windTowerDataParentTable.setTNow(CalculationUtil.getBigDecimal(dataMap.get("tNow") == null ? null : dataMap.get("tNow").toString()));
-
-        windTowerDataParentTable.setRhMax(CalculationUtil.getBigDecimal(dataMap.get("rhMax") == null ? null : dataMap.get("rhMax").toString()));
-        windTowerDataParentTable.setRhMin(CalculationUtil.getBigDecimal(dataMap.get("rhMin") == null ? null : dataMap.get("rhMin").toString()));
-        windTowerDataParentTable.setRhAve(CalculationUtil.getBigDecimal(dataMap.get("rhAve") == null ? null : dataMap.get("rhAve").toString()));
-        windTowerDataParentTable.setRhSta(CalculationUtil.getBigDecimal(dataMap.get("rhSta") == null ? null : dataMap.get("rhSta").toString()));
-        windTowerDataParentTable.setRhInst(CalculationUtil.getBigDecimal(dataMap.get("rhInst") == null ? null : dataMap.get("rhInst").toString()));
-        windTowerDataParentTable.setRhNow(CalculationUtil.getBigDecimal(dataMap.get("rhNow") == null ? null : dataMap.get("rhNow").toString()));
-
-        windTowerDataParentTable.setVMax(CalculationUtil.getBigDecimal(dataMap.get("vMax") == null ? null : dataMap.get("vMax").toString()));
-        windTowerDataParentTable.setVMin(CalculationUtil.getBigDecimal(dataMap.get("vMin") == null ? null : dataMap.get("vMin").toString()));
-        windTowerDataParentTable.setVAve(CalculationUtil.getBigDecimal(dataMap.get("vAve") == null ? null : dataMap.get("vAve").toString()));
-        windTowerDataParentTable.setVSta(CalculationUtil.getBigDecimal(dataMap.get("vSta") == null ? null : dataMap.get("vSta").toString()));
-        windTowerDataParentTable.setVInst(CalculationUtil.getBigDecimal(dataMap.get("vInst") == null ? null : dataMap.get("vInst").toString()));
-        windTowerDataParentTable.setVNow(CalculationUtil.getBigDecimal(dataMap.get("vNow") == null ? null : dataMap.get("vNow").toString()));
+                prophaseWeatherData.setPaAve(CalculationUtil.getBigDecimal(dataMap.get("paAve").toString()).floatValue());
+        prophaseWeatherData.setPaSta(CalculationUtil.getBigDecimal(dataMap.get("paSta") == null ? null : dataMap.get("paSta").toString()).floatValue());
+
+        prophaseWeatherData.setTMax(CalculationUtil.getBigDecimal(dataMap.get("tMax") == null ? null : dataMap.get("tMax").toString()).floatValue());
+        prophaseWeatherData.setTMin(CalculationUtil.getBigDecimal(dataMap.get("tMin") == null ? null : dataMap.get("tMin").toString()).floatValue());
+        prophaseWeatherData.setTAve(CalculationUtil.getBigDecimal(dataMap.get("tAve") == null ? null : dataMap.get("tAve").toString()).floatValue());
+        prophaseWeatherData.setTSta(CalculationUtil.getBigDecimal(dataMap.get("tSta") == null ? null : dataMap.get("tSta").toString()).floatValue());
+        prophaseWeatherData.setTInst(CalculationUtil.getBigDecimal(dataMap.get("tInst") == null ? null : dataMap.get("tInst").toString()).floatValue());
+
+        prophaseWeatherData.setRhMax(CalculationUtil.getBigDecimal(dataMap.get("rhMax") == null ? null : dataMap.get("rhMax").toString()).floatValue());
+        prophaseWeatherData.setRhMin(CalculationUtil.getBigDecimal(dataMap.get("rhMin") == null ? null : dataMap.get("rhMin").toString()).floatValue());
+        prophaseWeatherData.setRhAve(CalculationUtil.getBigDecimal(dataMap.get("rhAve") == null ? null : dataMap.get("rhAve").toString()).floatValue());
+        prophaseWeatherData.setRhSta(CalculationUtil.getBigDecimal(dataMap.get("rhSta") == null ? null : dataMap.get("rhSta").toString()).floatValue());
+        prophaseWeatherData.setRhInst(CalculationUtil.getBigDecimal(dataMap.get("rhInst") == null ? null : dataMap.get("rhInst").toString()).floatValue());
+
 
         //计算空气密度
         if (dataMap.get("TAve") != null && dataMap.get("paAve") != null) {
             BigDecimal airDensity = BigDecimal.valueOf(1.293).multiply(new BigDecimal(273).divide(new BigDecimal(273).add(dataMap.get("TAve")), 2, RoundingMode.HALF_UP)).multiply(dataMap.get("paAve")).divide(new BigDecimal(1013), 2, RoundingMode.HALF_UP);
-            windTowerDataParentTable.setAirDensity(airDensity);
+            prophaseWeatherData.setAirDensity(airDensity.floatValue());
         }
-        ArrayList<WindTowerDataParentTable> windTowerDataParentTableList = new ArrayList<>();
-        windTowerDataParentTableList.add(windTowerDataParentTable);
-        // TODO 目前没有异常数据校验
-//        windTowerDataParentTable.setAbnormalData(dataMap.get("abnormalData") == null ? null : dataMap.get("abnormalData").toString());
-//        windTowerDataParentTable.setAbnormalType(dataMap.get("abnormalType") == null ? null : dataMap.get("abnormalType").toString());
-//        windTowerDataParentTableList.add(windTowerDataParentTable);
+
+        prophaseWeatherDataService.insertOne(prophaseWeatherData);
+        prophaseWeatherDataOrgService.insertOne(prophaseWeatherData);
 
 
-        this.saveBatchById(windTowerDataParentTableList, windTowerDataChildTableList, "station_" + equipmentNo);
     }