Prechádzať zdrojové kódy

Merge remote-tracking branch 'origin/master'

lwb 3 mesiacov pred
rodič
commit
9a6c2f5feb

+ 29 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/bean/influxdb/SensorData.java

@@ -48,6 +48,35 @@ public class SensorData extends JfcloudInFluxEntity {
     @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.00")
     private Float co2;
 
+    @Column(name = "pm2.5")
+    @JsonSerialize(using = FloatNullToDashSerializer.class)
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.00")
+    private Float pm25;
+
+    @Column(name = "pm10")
+    @JsonSerialize(using = FloatNullToDashSerializer.class)
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.00")
+    private Float pm10;
+
+    @Column(name = "pressure")
+    @JsonSerialize(using = FloatNullToDashSerializer.class)
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.00")
+    private Float pressure;
+
+    @Column(name = "illuminance")
+    @JsonSerialize(using = FloatNullToDashSerializer.class)
+    private Integer illuminance;
+
+    @Column(name = "TVOC")
+    @JsonSerialize(using = FloatNullToDashSerializer.class)
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.00")
+    private Float tvoc;
+
+    @Column(name = "CH4O")
+    @JsonSerialize(using = FloatNullToDashSerializer.class)
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.00")
+    private Float ch4o;
+
     @Column(name = "battery")
     @JsonSerialize(using = FloatNullToDashSerializer.class)  // 使用自定义序列化器
     @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.00")

+ 5 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/service/dataprocess/dataclean/MonitorDataProcessor.java

@@ -52,6 +52,11 @@ public interface MonitorDataProcessor<T> {
      */
     String RS_WD_WIFI5_C3_Y4_5WL = "RS-WD-WIFI5-C3-Y4-5WL";
 
+    /**
+     * 环境七合一
+     */
+    String RS_MG111_WIFI_1 = "RS-MG111-WIFI-1";
+
     Boolean processData(T data);
 
     /**

+ 47 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/service/dataprocess/dataclean/impl/WifiEvnSevenInOne.java

@@ -0,0 +1,47 @@
+package vip.xiaonuo.coldchain.core.service.dataprocess.dataclean.impl;
+
+import com.google.common.collect.Lists;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.context.ApplicationEventPublisher;
+import org.springframework.stereotype.Component;
+import rk.netDevice.sdk.p2.NodeData;
+import rk.netDevice.sdk.p2.RealTimeData;
+import vip.xiaonuo.coldchain.core.bean.influxdb.SensorData;
+import vip.xiaonuo.coldchain.core.service.dataprocess.dataclean.MonitorDataProcessor;
+import vip.xiaonuo.coldchain.modular.monitordevice.enums.DeviceModelEnum;
+
+import java.util.List;
+
+@Slf4j
+@Component(MonitorDataProcessor.RS_MG111_WIFI_1)
+public class WifiEvnSevenInOne extends AbsRenkeMonitorDataProcessor{
+    public WifiEvnSevenInOne(ApplicationEventPublisher applicationEventPublisher) {
+        super(applicationEventPublisher);
+    }
+
+    @Override
+    List<SensorData> transRealTimeData2SensorDatas(RealTimeData data) {
+        List<NodeData> nodeList = data.getNodeList();
+        final int numNodes = nodeList.size();
+        if (numNodes < 7) {
+            log.error("数据节点数量不够,需要7个节点,但只有{}个", nodeList.size());
+            return null;
+        }
+        SensorData sensorData = defaultSensorData(data);
+        sensorData.setPm10(floatValue(nodeList.get(0).getTem() * 10));
+        sensorData.setPm25(floatValue(nodeList.get(0).getHum() * 10));
+        sensorData.setHumidity(floatValue(nodeList.get(1).getHum()));
+        sensorData.setTemperature(floatValue(nodeList.get(1).getTem()));
+        sensorData.setPressure(floatValue(nodeList.get(2).getTem()));
+        sensorData.setIlluminance((nodeList.get(3).getSignedInt32Value()));
+        sensorData.setTvoc(floatValue(nodeList.get(4).getHum()));
+        sensorData.setCo2(floatValue(nodeList.get(5).getTem()) * 10);
+        sensorData.setCh4o(floatValue(nodeList.get(6).getTem() / 10));
+        return Lists.newArrayList(sensorData);
+    }
+
+    @Override
+    DeviceModelEnum deviceModel() {
+        return DeviceModelEnum.RS_MG111_WIFI_1;
+    }
+}

+ 1 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitordevice/enums/DeviceModelEnum.java

@@ -23,6 +23,7 @@ public enum DeviceModelEnum {
     RS_CO2WS_WIFI_2_2000P(MonitorDataProcessor.RS_CO2WS_WIFI_2_2000P, "WIFI单二氧化碳指标不带温湿度"),
     RS_WD_WIFI5_C3_Y2_5WL(MonitorDataProcessor.RS_WD_WIFI5_C3_Y2_5WL, "WIFI多探头单温度变迭记录仪带电池(2路)"),
     RS_WD_WIFI5_C3_Y4_5WL(MonitorDataProcessor.RS_WD_WIFI5_C3_Y4_5WL, "WIFI多探头单温度变迭记录仪带电池(4路)"),
+    RS_MG111_WIFI_1(MonitorDataProcessor.RS_MG111_WIFI_1, "WIFI环境七合一变送记录仪"),
     DEFAULT(MonitorDataProcessor.RS_WS_DEFAULT, "默认温湿度处理");