浏览代码

新建传感器注册功能。

zhuoning 2 年之前
父节点
当前提交
34e5d7cef4
共有 23 个文件被更改,包括 844 次插入33 次删除
  1. 5 5
      huimv-env-platform/huimv-env-common/pom.xml
  2. 5 2
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/entity/EnvAmmoniaEntity.java
  3. 5 2
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/entity/EnvHumiEntity.java
  4. 45 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/entity/EnvSensorRegisterEntity.java
  5. 2 2
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/entity/EnvSprayConfigEntity.java
  6. 2 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/entity/EnvTempEntity.java
  7. 14 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/repo/EnvSensorRegisterEntityRepo.java
  8. 4 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/IDeviceRegisterService.java
  9. 14 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/ISensorRegisterService.java
  10. 13 1
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/impl/DeviceRegisterServiceImpl.java
  11. 97 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/impl/SensorRegisterServiceImpl.java
  12. 5 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/utils/Const.java
  13. 6 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/utils/DateUtil.java
  14. 24 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/utils/MathUtil.java
  15. 27 0
      huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/HuimvDeviceApplication.java
  16. 77 0
      huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/config/TopicRabbitMQConfig.java
  17. 233 0
      huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/listener/DeviceListener.java
  18. 52 0
      huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/listener/SensorListener.java
  19. 45 0
      huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/producer/Producer.java
  20. 104 0
      huimv-env-platform/huimv-env-device/src/main/resources/application-dev.yml
  21. 31 0
      huimv-env-platform/huimv-env-device/src/main/resources/application.properties
  22. 28 16
      huimv-env-platform/huimv-env-input/src/main/java/com/huimv/env/input/config/TopicRabbitMQConfig.java
  23. 6 5
      huimv-env-platform/huimv-env-input/src/main/java/com/huimv/env/input/server/EnvInputServerHandler.java

+ 5 - 5
huimv-env-platform/huimv-env-common/pom.xml

@@ -57,11 +57,6 @@
             <groupId>org.apache.velocity</groupId>
             <groupId>org.apache.velocity</groupId>
             <artifactId>velocity-engine-core</artifactId>
             <artifactId>velocity-engine-core</artifactId>
         </dependency>
         </dependency>
-        <!-- freemarker -->
-<!--        <dependency>-->
-<!--            <groupId>org.springframework.boot</groupId>-->
-<!--            <artifactId>spring-boot-starter-freemarker</artifactId>-->
-<!--        </dependency>-->
         <!-- junit -->
         <!-- junit -->
         <dependency>
         <dependency>
             <groupId>org.junit.platform</groupId>
             <groupId>org.junit.platform</groupId>
@@ -87,6 +82,11 @@
             <groupId>cn.hutool</groupId>
             <groupId>cn.hutool</groupId>
             <artifactId>hutool-all</artifactId>
             <artifactId>hutool-all</artifactId>
         </dependency>
         </dependency>
+        <!-- 二方包统一版本管理 -->
+        <dependency>
+            <groupId>com.huimv</groupId>
+            <artifactId>huimv-common</artifactId>
+        </dependency>
     </dependencies>
     </dependencies>
 
 
 </project>
 </project>

+ 5 - 2
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/entity/EnvAmmoniaEntity.java

@@ -28,8 +28,8 @@ public class EnvAmmoniaEntity implements Serializable {
     @Column(name = "sensor_sn")
     @Column(name = "sensor_sn")
     private Integer sensorSn;
     private Integer sensorSn;
 
 
-    @Column(name = "temp")
-    private BigDecimal temp;
+    @Column(name = "ammonia")
+    private BigDecimal ammonia;
 
 
     @Column(name = "ask_time")
     @Column(name = "ask_time")
     private String askTime;
     private String askTime;
@@ -49,4 +49,7 @@ public class EnvAmmoniaEntity implements Serializable {
     @Column(name = "farm_code")
     @Column(name = "farm_code")
     private String farmCode;
     private String farmCode;
 
 
+    @Column(name = "data_unit")
+    private String dataUnit;
+
 }
 }

+ 5 - 2
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/entity/EnvHumiEntity.java

@@ -28,8 +28,8 @@ public class EnvHumiEntity implements Serializable {
     @Column(name = "sensor_sn")
     @Column(name = "sensor_sn")
     private Integer sensorSn;
     private Integer sensorSn;
 
 
-    @Column(name = "temp")
-    private BigDecimal temp;
+    @Column(name = "humi")
+    private BigDecimal humi;
 
 
     @Column(name = "ask_time")
     @Column(name = "ask_time")
     private String askTime;
     private String askTime;
@@ -49,4 +49,7 @@ public class EnvHumiEntity implements Serializable {
     @Column(name = "farm_code")
     @Column(name = "farm_code")
     private String farmCode;
     private String farmCode;
 
 
+    @Column(name = "data_unit")
+    private String dataUnit;
+
 }
 }

+ 45 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/entity/EnvSensorRegisterEntity.java

@@ -0,0 +1,45 @@
+package com.huimv.env.common.dao.entity;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.sql.Date;
+import java.sql.Timestamp;
+
+@Entity
+@Table(name = "env_sensor_register")
+@Data
+@Accessors(chain = true)
+public class EnvSensorRegisterEntity implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    @Column(name = "id", nullable = false)
+    private Integer id;
+
+    @Column(name = "device_code")
+    private String deviceCode;
+
+    @Column(name = "sensor_sort")
+    private Integer sensorSort;
+
+    @Column(name = "sensor_sn")
+    private Integer sensorSn;
+
+    @Column(name = "data")
+    private String data;
+
+    @Column(name = "last_time")
+    private Timestamp lastTime;
+
+    @Column(name = "last_date")
+    private Date lastDate;
+
+    @Column(name = "farm_code")
+    private String farmCode;
+
+}

+ 2 - 2
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/entity/EnvSprayConfigEntity.java

@@ -29,8 +29,8 @@ public class EnvSprayConfigEntity implements Serializable {
     @Column(name = "device_status")
     @Column(name = "device_status")
     private Integer deviceStatus;
     private Integer deviceStatus;
 
 
-    @Column(name = "interval")
-    private Integer interval;
+    @Column(name = "time_interval")
+    private Integer timeInterval;
 
 
     @Column(name = "set_time")
     @Column(name = "set_time")
     private Timestamp setTime;
     private Timestamp setTime;

+ 2 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/entity/EnvTempEntity.java

@@ -49,4 +49,6 @@ public class EnvTempEntity implements Serializable {
     @Column(name = "farm_code")
     @Column(name = "farm_code")
     private String farmCode;
     private String farmCode;
 
 
+    @Column(name = "data_unit")
+    private String dataUnit;
 }
 }

+ 14 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/repo/EnvSensorRegisterEntityRepo.java

@@ -0,0 +1,14 @@
+package com.huimv.env.common.dao.repo;
+
+import com.huimv.env.common.dao.entity.EnvSensorRegisterEntity;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+
+import java.util.List;
+
+public interface EnvSensorRegisterEntityRepo extends JpaRepository<EnvSensorRegisterEntity, Integer>, JpaSpecificationExecutor<EnvSensorRegisterEntity> {
+
+    @Query(nativeQuery = true,value = "SELECT count(*) AS total FROM env_sensor_register WHERE device_code=?1 AND sensor_sn=?2 AND farm_code=?3 AND sensor_sort=?4")
+    List<Object[]> getByDeviceCodeAndSensorSnAndFarmCode(String deviceCode, int sensorSn, String farmCode, int sensorSort);
+}

+ 4 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/IDeviceRegisterService.java

@@ -1,5 +1,7 @@
 package com.huimv.env.common.service;
 package com.huimv.env.common.service;
 
 
+import com.huimv.env.common.dao.entity.EnvDeviceRegisterEntity;
+
 public interface IDeviceRegisterService {
 public interface IDeviceRegisterService {
     //
     //
     String getDeviceCodeByChipId(String chipId);
     String getDeviceCodeByChipId(String chipId);
@@ -7,4 +9,6 @@ public interface IDeviceRegisterService {
     boolean isExistByDeviceCode(String idCode);
     boolean isExistByDeviceCode(String idCode);
 
 
     String getFarmCodeByDeviceCode(String deviceCode);
     String getFarmCodeByDeviceCode(String deviceCode);
+
+    EnvDeviceRegisterEntity getDeviceRegisterByDeviceCode(String deviceCode);
 }
 }

+ 14 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/ISensorRegisterService.java

@@ -0,0 +1,14 @@
+package com.huimv.env.common.service;
+
+import java.sql.Date;
+import java.sql.Timestamp;
+
+public interface ISensorRegisterService {
+
+    boolean isExistSensorRegister(String deviceCode, int sensorSn, String farmCode, int sensorSort);
+
+
+    void updateSensorRegister(String deviceCode, int sensorSn, Timestamp nowTimestamp, Date todayDate, String value, String farmCode, int sensorSort);
+
+    void saveSensorRegister(String deviceCode, int sensorSn, Timestamp nowTimestamp, Date todayDate, String value, String farmCode, int sensorSort);
+}

+ 13 - 1
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/impl/DeviceRegisterServiceImpl.java

@@ -53,9 +53,21 @@ public class DeviceRegisterServiceImpl implements IDeviceRegisterService {
         Optional<EnvDeviceRegisterEntity> optional =  envDeviceRegisterEntityRepo.getDeviceRegisterByDeviceCode(deviceCode);
         Optional<EnvDeviceRegisterEntity> optional =  envDeviceRegisterEntityRepo.getDeviceRegisterByDeviceCode(deviceCode);
         if(!optional.isPresent()){
         if(!optional.isPresent()){
             log.error("该设备[设备编码:"+deviceCode+"]未注册.");
             log.error("该设备[设备编码:"+deviceCode+"]未注册.");
-            return optional.get().getFarmCode();
+            return null;
         }else{
         }else{
+            return optional.get().getFarmCode();
+        }
+    }
+
+    @Override
+    public EnvDeviceRegisterEntity getDeviceRegisterByDeviceCode(String deviceCode){
+        //
+        Optional<EnvDeviceRegisterEntity> optional =  envDeviceRegisterEntityRepo.getDeviceRegisterByDeviceCode(deviceCode);
+        if(!optional.isPresent()){
+            log.error("该设备[设备编码:"+deviceCode+"]未注册.");
             return null;
             return null;
+        }else{
+            return optional.get();
         }
         }
     }
     }
 }
 }

+ 97 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/impl/SensorRegisterServiceImpl.java

@@ -0,0 +1,97 @@
+package com.huimv.env.common.service.impl;
+
+import com.huimv.env.common.dao.entity.EnvSensorRegisterEntity;
+import com.huimv.env.common.dao.repo.EnvSensorRegisterEntityRepo;
+import com.huimv.env.common.service.ISensorRegisterService;
+import com.huimv.env.common.utils.MathUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Example;
+import org.springframework.stereotype.Service;
+
+import java.sql.Date;
+import java.sql.Timestamp;
+import java.util.List;
+import java.util.Optional;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@Service
+@Slf4j
+public class SensorRegisterServiceImpl implements ISensorRegisterService {
+    @Autowired
+    private EnvSensorRegisterEntityRepo envSensorRegisterEntityRepo;
+    @Autowired
+    private MathUtil mathUtil;
+
+    @Override
+    public boolean isExistSensorRegister(String deviceCode, int sensorSn, String farmCode, int sensorSort){
+        //
+        List<Object[]> objectList = envSensorRegisterEntityRepo.getByDeviceCodeAndSensorSnAndFarmCode(deviceCode,sensorSn,farmCode,sensorSort);
+        Object[] sensorObjArray = objectList.get(0);
+        if(Integer.parseInt(sensorObjArray[0].toString()) > 0){
+            return true;
+        }else{
+            return false;
+        }
+    }
+
+    /**
+     * @Method      : updateSensorRegister
+     * @Description : 更新传感器注册数据
+     * @Params      : [dataJo, farmCode]
+     * @Return      : com.huimv.common.utils.Result
+     *
+     * @Author      : ZhuoNing
+     * @Date        : 2022/8/18
+     * @Time        : 16:25
+     */
+    @Override
+    public void updateSensorRegister(String deviceCode, int sensorSn, Timestamp nowTimestamp, Date todayDate, String value, String farmCode, int sensorSort){
+        EnvSensorRegisterEntity envSensorRegisterEntity = new EnvSensorRegisterEntity();
+        envSensorRegisterEntity.setDeviceCode(deviceCode);
+        envSensorRegisterEntity.setSensorSn(sensorSn);
+        envSensorRegisterEntity.setFarmCode(farmCode);
+        envSensorRegisterEntity.setSensorSort(sensorSort);
+        Example<EnvSensorRegisterEntity> example = Example.of(envSensorRegisterEntity);
+        Optional<EnvSensorRegisterEntity> optional = envSensorRegisterEntityRepo.findOne(example);
+        if(!optional.isPresent()){
+            log.error("该设备["+deviceCode+"]下的传感器["+sensorSn+"]未注册.");
+        }else{
+            EnvSensorRegisterEntity existSensorRegisterEntity = optional.get();
+            existSensorRegisterEntity.setData(value);
+            existSensorRegisterEntity.setLastTime(nowTimestamp);
+            existSensorRegisterEntity.setLastDate(todayDate);
+            envSensorRegisterEntityRepo.saveAndFlush(existSensorRegisterEntity);
+        }
+    }
+
+    /**
+     * @Method      : saveSensorRegister
+     * @Description : 保存传感器注册数据
+     * @Params      : [dataJo, nowTimestamp, todayDate, farmCode]
+     * @Return      : com.huimv.common.utils.Result
+     *
+     * @Author      : ZhuoNing
+     * @Date        : 2022/8/18
+     * @Time        : 16:25
+     */
+    @Override
+    public void saveSensorRegister(String deviceCode, int sensorSn, Timestamp nowTimestamp, Date todayDate, String value, String farmCode, int sensorSort){
+        EnvSensorRegisterEntity envSensorRegisterEntity = new EnvSensorRegisterEntity();
+        envSensorRegisterEntity.setDeviceCode(deviceCode);
+        envSensorRegisterEntity.setSensorSn(sensorSn);
+        envSensorRegisterEntity.setData(value);
+        envSensorRegisterEntity.setFarmCode(farmCode);
+        envSensorRegisterEntity.setLastTime(nowTimestamp);
+        envSensorRegisterEntity.setLastDate(todayDate);
+        envSensorRegisterEntity.setSensorSort(sensorSort);
+        envSensorRegisterEntityRepo.saveAndFlush(envSensorRegisterEntity);
+    }
+}

+ 5 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/utils/Const.java

@@ -23,4 +23,9 @@ public class Const {
     public final static String ROUTING_KEY_AMMONIA = "topic.ammonia.key";
     public final static String ROUTING_KEY_AMMONIA = "topic.ammonia.key";
     public final static String QUEUE_AMMONIA = "topic.ammonia.queue";
     public final static String QUEUE_AMMONIA = "topic.ammonia.queue";
     public final static String EXCHANGE_AMMONIA = "topic.ammonia.exchange";
     public final static String EXCHANGE_AMMONIA = "topic.ammonia.exchange";
+
+    // 传感器
+    public final static String ROUTING_KEY_SENSOR = "topic.sensor.key";
+    public final static String QUEUE_SENSOR = "topic.sensor.queue";
+    public final static String EXCHANGE_SENSOR = "topic.sensor.exchange";
 }
 }

+ 6 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/utils/DateUtil.java

@@ -23,6 +23,12 @@ import java.util.List;
 //@Slf4j
 //@Slf4j
 public class DateUtil {
 public class DateUtil {
 
 
+    //
+    public String handleAskTime(String askTime) {
+        String newAskTime = askTime.substring(0, 4) + "-" + askTime.substring(4, 6) + "-" + askTime.substring(6, 8) + " " + askTime.substring(8, 10) + ":" + askTime.substring(10, 12) + ":" + askTime.substring(12, 14);
+        return newAskTime;
+    }
+
     public int getNowHour(){
     public int getNowHour(){
         Calendar cal = Calendar.getInstance();
         Calendar cal = Calendar.getInstance();
         return cal.get(Calendar.HOUR_OF_DAY);
         return cal.get(Calendar.HOUR_OF_DAY);

+ 24 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/utils/MathUtil.java

@@ -0,0 +1,24 @@
+package com.huimv.env.common.utils;
+
+import org.springframework.stereotype.Component;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@Component
+public class MathUtil {
+    //计算温度
+    public double countTemp(int temp){
+        return temp * 0.1;
+    }
+
+    //计算湿度
+    public double countHumi(int temp){
+        return temp * 0.1;
+    }
+}

+ 27 - 0
huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/HuimvDeviceApplication.java

@@ -0,0 +1,27 @@
+package com.huimv.env.device;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.ComponentScans;
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@ComponentScans({@ComponentScan("com.huimv.env.common.utils"),
+        @ComponentScan("com.huimv.env.common.service")})
+@EntityScan(value = "com.huimv.env.common.dao.entity")
+@EnableJpaRepositories(basePackages = "com.huimv.env.common.dao.repo")
+@SpringBootApplication
+public class HuimvDeviceApplication {
+    public static void main(String[] args) {
+        SpringApplication.run(HuimvDeviceApplication.class, args);
+    }
+}

+ 77 - 0
huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/config/TopicRabbitMQConfig.java

@@ -0,0 +1,77 @@
+package com.huimv.env.device.config;
+
+import com.huimv.env.common.utils.Const;
+import org.springframework.amqp.core.Binding;
+import org.springframework.amqp.core.BindingBuilder;
+import org.springframework.amqp.core.Queue;
+import org.springframework.amqp.core.TopicExchange;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@Configuration
+public class TopicRabbitMQConfig {
+    //温度
+    @Bean
+    public Queue tempQueue() {
+        return new Queue(Const.QUEUE_TEMP);
+    }
+    @Bean
+    TopicExchange tempExchange() {
+        return new TopicExchange(Const.EXCHANGE_TEMP);
+    }
+    @Bean
+    Binding bindingTempExchangeMessage() {
+        return BindingBuilder.bind(tempQueue()).to(tempExchange()).with(Const.ROUTING_KEY_TEMP);
+    }
+
+    //湿度
+    @Bean
+    public Queue humiQueue() {
+        return new Queue(Const.QUEUE_HUMI);
+    }
+    @Bean
+    TopicExchange humiExchange() {
+        return new TopicExchange(Const.EXCHANGE_HUMI);
+    }
+    @Bean
+    Binding bindingHumiExchangeMessage() {
+        return BindingBuilder.bind(humiQueue()).to(humiExchange()).with(Const.ROUTING_KEY_HUMI);
+    }
+
+    //氨气
+    @Bean
+    public Queue ammoniaQueue() {
+        return new Queue(Const.QUEUE_AMMONIA);
+    }
+    @Bean
+    TopicExchange ammoniaExchange() {
+        return new TopicExchange(Const.EXCHANGE_AMMONIA);
+    }
+    @Bean
+    Binding bindingAmmoniaExchangeMessage() {
+        return BindingBuilder.bind(ammoniaQueue()).to(ammoniaExchange()).with(Const.ROUTING_KEY_AMMONIA);
+    }
+
+    //传感器
+    @Bean
+    public Queue sensorQueue() {
+        return new Queue(Const.QUEUE_SENSOR);
+    }
+    @Bean
+    TopicExchange sensorExchange() {
+        return new TopicExchange(Const.EXCHANGE_SENSOR);
+    }
+    @Bean
+    Binding bindingSensorExchangeMessage() {
+        return BindingBuilder.bind(sensorQueue()).to(sensorExchange()).with(Const.ROUTING_KEY_SENSOR);
+    }
+
+}

+ 233 - 0
huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/listener/DeviceListener.java

@@ -0,0 +1,233 @@
+package com.huimv.env.device.listener;
+
+import com.alibaba.fastjson.JSONObject;
+import com.huimv.env.common.dao.entity.EnvAmmoniaEntity;
+import com.huimv.env.common.dao.entity.EnvDeviceRegisterEntity;
+import com.huimv.env.common.dao.entity.EnvHumiEntity;
+import com.huimv.env.common.dao.entity.EnvTempEntity;
+import com.huimv.env.common.dao.repo.EnvAmmoniaEntityRepo;
+import com.huimv.env.common.dao.repo.EnvHumiEntityRepo;
+import com.huimv.env.common.dao.repo.EnvTempEntityRepo;
+import com.huimv.env.common.service.IDeviceRegisterService;
+import com.huimv.env.common.service.ISensorRegisterService;
+import com.huimv.env.common.utils.Const;
+import com.huimv.env.common.utils.DateUtil;
+import com.huimv.env.common.utils.MathUtil;
+import com.huimv.env.device.producer.Producer;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.sql.Date;
+import java.sql.Timestamp;
+import java.text.ParseException;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@Component
+@Slf4j
+public class DeviceListener {
+    @Autowired
+    private EnvTempEntityRepo envTempEntityRepo;
+    @Autowired
+    private EnvHumiEntityRepo envHumiEntityRepo;
+    @Autowired
+    private EnvAmmoniaEntityRepo envAmmoniaEntityRepo;
+    @Autowired
+    private IDeviceRegisterService deviceRegisterService;
+    @Autowired
+    private ISensorRegisterService sensorRegisterService;
+    @Autowired
+    private MathUtil mathUtil;
+    @Autowired
+    private DateUtil dateUtil;
+    @Autowired
+    private Producer producer;
+
+    @RabbitListener(queues = Const.QUEUE_TEMP)
+    @RabbitHandler
+    public void processTemp(Map RawMap) throws ParseException {
+        System.out.println(">>>>>>>>>>>>>>接收温度数据 RawMap>>" + RawMap.toString());
+        String askText = RawMap.get("askText").toString();
+        JSONObject dataJo = handleAskText(askText);
+        dataJo.put("dataUnit", "°");
+        System.out.println("温度数据=" + dataJo);
+        java.sql.Date todayDate = new java.sql.Date(new java.util.Date().getTime());
+        Timestamp nowTimestamp = new Timestamp(new java.util.Date().getTime());
+        String deviceCode = dataJo.getString("deviceCode");
+        //根据设备编码获取设备注册信息
+        EnvDeviceRegisterEntity envDeviceRegisterEntity = deviceRegisterService.getDeviceRegisterByDeviceCode(deviceCode);
+        if (envDeviceRegisterEntity == null) {
+            log.error("该设备[" + dataJo.getString("deviceCode") + "]未注册.");
+            return;
+        }
+        String farmCode = envDeviceRegisterEntity.getFarmCode();
+        String temp = new BigDecimal(mathUtil.countTemp(dataJo.getIntValue("value"))).setScale(1, RoundingMode.UP) + dataJo.getString("dataUnit");
+        int sensorSort = 1;
+        //更新传感器数据
+//        updateSensorRegister(deviceCode, dataJo.getInteger("sensorSn"), nowTimestamp, todayDate, temp, farmCode,sensorSort);
+        sendSensorToMQ(deviceCode, dataJo.getInteger("sensorSn"), nowTimestamp, todayDate, temp, farmCode,sensorSort);
+
+        //保存温度流水数据
+        saveTempFlow(dataJo, envDeviceRegisterEntity, nowTimestamp, todayDate, farmCode);
+    }
+
+    private void sendSensorToMQ(String deviceCode, Integer sensorSn, Timestamp nowTimestamp, Date todayDate, String value, String farmCode, int sensorSort) {
+        JSONObject sensorJo = new JSONObject();
+        sensorJo.put("deviceCode",deviceCode);
+        sensorJo.put("sensorSn",sensorSn);
+        sensorJo.put("timestamp",nowTimestamp);
+        sensorJo.put("todayDate",todayDate);
+        sensorJo.put("value",value);
+        sensorJo.put("farmCode",farmCode);
+        sensorJo.put("sensorSort",sensorSort);
+        producer.sendSensorAskToMQ(sensorJo);
+    }
+
+    //更新传感器数据
+    private void updateSensorRegister(String deviceCode, int sensorSn, Timestamp nowTimestamp, Date todayDate, String value, String farmCode, int sensorSort) {
+        if (sensorRegisterService.isExistSensorRegister(deviceCode, sensorSn, farmCode,sensorSort)) {
+            System.out.println("更新...");
+            //{更新传感器注册信息}
+            sensorRegisterService.updateSensorRegister(deviceCode, sensorSn, nowTimestamp, todayDate, value, farmCode,sensorSort);
+        } else {
+            System.out.println("新建...");
+            //{保存传感器注册信息}
+            sensorRegisterService.saveSensorRegister(deviceCode, sensorSn, nowTimestamp, todayDate, value, farmCode,sensorSort);
+        }
+    }
+
+    //保存温度流水数据
+    private void saveTempFlow(JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode) {
+        EnvTempEntity envTempEntity = new EnvTempEntity();
+        envTempEntity.setDeviceCode(dataJo.getString("deviceCode"));
+        envTempEntity.setSensorSn(dataJo.getInteger("sensorSn"));
+        envTempEntity.setTemp(new BigDecimal(mathUtil.countTemp(dataJo.getIntValue("value"))));
+        envTempEntity.setAskTime(dateUtil.handleAskTime(dataJo.getString("askTime")));
+        envTempEntity.setAddTime(nowTimestamp);
+        envTempEntity.setAddDate(todayDate);
+        envTempEntity.setFarmCode(farmCode);
+        envTempEntity.setPigpenId(envDeviceRegisterEntity.getPigpenId());
+        envTempEntity.setUnitId(envDeviceRegisterEntity.getUnitId());
+        envTempEntity.setDataUnit(dataJo.getString("dataUnit"));
+        envTempEntityRepo.saveAndFlush(envTempEntity);
+    }
+
+    @RabbitListener(queues = Const.QUEUE_HUMI)
+    @RabbitHandler
+    public void processHumi(Map RawMap) throws ParseException {
+        System.out.println(">>>>>>>>>>>>>>接收湿度数据 RawMap>>" + RawMap.toString());
+        String askText = RawMap.get("askText").toString();
+        JSONObject dataJo = handleAskText(askText);
+        dataJo.put("dataUnit", "%");
+        System.out.println("湿度数据=" + dataJo);
+        String todayDateText = new DateUtil().getTodayDateText();
+        java.sql.Date todayDate = new java.sql.Date(new java.util.Date().getTime());
+        Timestamp nowTimestamp = new Timestamp(new java.util.Date().getTime());
+        String deviceCode = dataJo.getString("deviceCode");
+        //根据设备编码获取设备注册信息
+        EnvDeviceRegisterEntity envDeviceRegisterEntity = deviceRegisterService.getDeviceRegisterByDeviceCode(deviceCode);
+        if (envDeviceRegisterEntity == null) {
+            log.error("该设备[" + dataJo.getString("deviceCode") + "]未注册.");
+            return;
+        }
+        String farmCode = envDeviceRegisterEntity.getFarmCode();
+        String humi = new BigDecimal(mathUtil.countTemp(dataJo.getIntValue("value"))).setScale(1, RoundingMode.UP) + dataJo.getString("dataUnit");
+        int sensorSort = 2;
+        //更新传感器数据
+//        updateSensorRegister(deviceCode, dataJo.getInteger("sensorSn"), nowTimestamp, todayDate, humi, farmCode, sensorSort);
+        sendSensorToMQ(deviceCode, dataJo.getInteger("sensorSn"), nowTimestamp, todayDate, humi, farmCode, sensorSort);
+        //保存湿度流水数据
+        saveHumiFlow(dataJo, envDeviceRegisterEntity, nowTimestamp, todayDate, farmCode);
+    }
+
+    //保存湿度流水数据
+    private void saveHumiFlow(JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode) {
+        EnvHumiEntity envHumiEntity = new EnvHumiEntity();
+        envHumiEntity.setDeviceCode(dataJo.getString("deviceCode"));
+        envHumiEntity.setSensorSn(dataJo.getInteger("sensorSn"));
+        envHumiEntity.setHumi(new BigDecimal(mathUtil.countHumi(dataJo.getIntValue("value"))));
+        envHumiEntity.setAskTime(dateUtil.handleAskTime(dataJo.getString("askTime")));
+        envHumiEntity.setAddTime(nowTimestamp);
+        envHumiEntity.setAddDate(todayDate);
+        envHumiEntity.setFarmCode(farmCode);
+        envHumiEntity.setPigpenId(envDeviceRegisterEntity.getPigpenId());
+        envHumiEntity.setUnitId(envDeviceRegisterEntity.getUnitId());
+        envHumiEntity.setDataUnit(dataJo.getString("dataUnit"));
+        envHumiEntityRepo.saveAndFlush(envHumiEntity);
+    }
+
+    @RabbitListener(queues = Const.QUEUE_AMMONIA)
+    @RabbitHandler
+    public void processAmmonia(Map RawMap) throws ParseException {
+        System.out.println(">>>>>>>>>>>>>>接收氨气数据 RawMap>>" + RawMap.toString());
+        String askText = RawMap.get("askText").toString();
+        JSONObject dataJo = handleAskText(askText);
+        dataJo.put("dataUnit", "ppm");
+        System.out.println("氨气数据=" + dataJo);
+        String todayDateText = new DateUtil().getTodayDateText();
+        java.sql.Date todayDate = new java.sql.Date(new java.util.Date().getTime());
+        Timestamp nowTimestamp = new Timestamp(new java.util.Date().getTime());
+        String deviceCode = dataJo.getString("deviceCode");
+        //根据设备编码获取设备注册信息
+        EnvDeviceRegisterEntity envDeviceRegisterEntity = deviceRegisterService.getDeviceRegisterByDeviceCode(dataJo.getString("deviceCode"));
+        if (envDeviceRegisterEntity == null) {
+            log.error("该设备[" + dataJo.getString("deviceCode") + "]未注册.");
+            return;
+        }
+        String farmCode = envDeviceRegisterEntity.getFarmCode();
+        String anmonia = dataJo.getString("value") + dataJo.getString("dataUnit");
+        int sensorSort = 3;
+        //更新传感器数据
+//        updateSensorRegister(deviceCode, dataJo.getInteger("sensorSn"), nowTimestamp, todayDate, anmonia, farmCode, sensorSort);
+        sendSensorToMQ(deviceCode, dataJo.getInteger("sensorSn"), nowTimestamp, todayDate, anmonia, farmCode, sensorSort);
+        //保存氨气流水数据
+        saveAmmoniaFlow(dataJo, envDeviceRegisterEntity, nowTimestamp, todayDate, farmCode);
+    }
+
+    //保存氨气流水数据
+    private void saveAmmoniaFlow(JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode) {
+        EnvAmmoniaEntity envAmmoniaEntity = new EnvAmmoniaEntity();
+        envAmmoniaEntity.setDeviceCode(dataJo.getString("deviceCode"));
+        envAmmoniaEntity.setSensorSn(dataJo.getInteger("sensorSn"));
+        envAmmoniaEntity.setAmmonia(new BigDecimal(dataJo.getIntValue("value")));
+        envAmmoniaEntity.setAskTime(dateUtil.handleAskTime(dataJo.getString("askTime")));
+        envAmmoniaEntity.setAddTime(nowTimestamp);
+        envAmmoniaEntity.setAddDate(todayDate);
+        envAmmoniaEntity.setFarmCode(farmCode);
+        envAmmoniaEntity.setPigpenId(envDeviceRegisterEntity.getPigpenId());
+        envAmmoniaEntity.setUnitId(envDeviceRegisterEntity.getUnitId());
+        envAmmoniaEntity.setDataUnit(dataJo.getString("dataUnit"));
+        envAmmoniaEntityRepo.saveAndFlush(envAmmoniaEntity);
+    }
+
+    //
+    private JSONObject handleAskText(String askText) {
+        String[] dataArray = askText.split("\\+");
+        return buildDataObj(dataArray);
+    }
+
+    //
+    public JSONObject buildDataObj(String[] dataArray) {
+        JSONObject dataJo = new JSONObject();
+        dataJo.put("deviceCode", dataArray[1]);
+        dataJo.put("cmd", dataArray[2]);
+        dataJo.put("sensorSn", dataArray[3]);
+        dataJo.put("value", dataArray[4]);
+        dataJo.put("askTime", dataArray[5]);
+        return dataJo;
+    }
+}

+ 52 - 0
huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/listener/SensorListener.java

@@ -0,0 +1,52 @@
+package com.huimv.env.device.listener;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.huimv.env.common.service.ISensorRegisterService;
+import com.huimv.env.common.utils.Const;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.annotation.RabbitHandler;
+import org.springframework.amqp.rabbit.annotation.RabbitListener;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.sql.Timestamp;
+import java.text.ParseException;
+import java.util.Date;
+import java.util.Map;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@Component
+@Slf4j
+public class SensorListener {
+    @Autowired
+    private ISensorRegisterService sensorRegisterService;
+
+    @RabbitListener(queues = Const.QUEUE_SENSOR)
+    @RabbitHandler
+    public void processTemp(Map RawMap) throws ParseException {
+        System.out.println(">>>>>>接收传感器数据 RawMap>>" + RawMap.toString());
+        JSONObject sensorJo = JSON.parseObject(RawMap.get("sensor").toString());
+        String deviceCode = sensorJo.getString("deviceCode");
+        int sensorSn = sensorJo.getInteger("sensorSn");
+        int sensorSort = sensorJo.getInteger("sensorSort");
+        String farmCode = sensorJo.getString("farmCode");
+        Timestamp nowTimestamp = sensorJo.getTimestamp("timestamp");
+        java.sql.Date todayDate = new java.sql.Date(sensorJo.getDate("todayDate").getTime());
+        String value = sensorJo.getString("value");
+        if (sensorRegisterService.isExistSensorRegister(deviceCode, sensorSn, farmCode,sensorSort)) {
+            //{更新传感器注册信息}
+            sensorRegisterService.updateSensorRegister(deviceCode, sensorSn, nowTimestamp, todayDate, value, farmCode,sensorSort);
+        } else {
+            //{保存传感器注册信息}
+            sensorRegisterService.saveSensorRegister(deviceCode, sensorSn, nowTimestamp, todayDate, value, farmCode,sensorSort);
+        }
+    }
+}

+ 45 - 0
huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/producer/Producer.java

@@ -0,0 +1,45 @@
+package com.huimv.env.device.producer;
+
+import com.alibaba.fastjson.JSONObject;
+import com.huimv.env.common.utils.Const;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.amqp.rabbit.core.RabbitTemplate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@Component
+@Slf4j
+public class Producer {
+    @Autowired
+    RabbitTemplate rabbitTemplate;  //使用RabbitTemplate,这提供了接收/发送等等方法
+
+    /**
+     * @Method      : sendTempAskToMQ
+     * @Description : 
+     * @Params      : [askText]
+     * @Return      : java.lang.String
+     * 
+     * @Author      : ZhuoNing
+     * @Date        : 2022/8/17       
+     * @Time        : 19:29
+     */
+    public String sendSensorAskToMQ(JSONObject sensorJo){
+        Map map = new HashMap();
+        map.put("sensor",sensorJo);
+        rabbitTemplate.convertAndSend(Const.EXCHANGE_SENSOR, Const.ROUTING_KEY_SENSOR, map);
+        return "ok";
+    }
+
+
+}

+ 104 - 0
huimv-env-platform/huimv-env-device/src/main/resources/application-dev.yml

@@ -0,0 +1,104 @@
+server:
+  port: 8092
+
+spring:
+  application:
+    name: huimv-env-device
+
+  datasource:
+    url: jdbc:mysql://192.168.1.7:3306/huimv-env-platform?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
+    username: root
+    password: hm123456
+    driver-class-name: com.mysql.cj.jdbc.Driver
+  jpa:
+    show-sql: true
+    database: mysql
+    hibernate:
+      ddl-auto: update
+    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
+    open-in-view: true
+
+  #配置rabbitMq 服务器
+#  rabbitmq:
+#    host: 10.0.0.4
+#    port: 5672
+#    username: huimv
+#    password: hm123456
+#    #虚拟host 可以不设置,使用server默认host
+#    virtual-host: /
+  rabbitmq:
+    host: 192.168.1.82
+    port: 5672
+    username: admin
+    password: admin
+    #虚拟host 可以不设置,使用server默认host
+    virtual-host: /env
+
+    #确认消息已发送到交换机(Exchange)
+#    publisher-confirms: true #(过时、弃用)
+    publisher-confirm-type: correlated
+    #确认消息已发送到队列(Queue)
+    publisher-returns: true
+
+  #redis
+  redis:
+    database: 0
+    host: 192.168.1.68
+    port: 6379
+    password: hm123456
+    timeout: 5000ms
+    jedis:
+      pool:
+        max-active: 20
+        max-wait: -1
+        max-idle: 10
+        min-idle: 0
+    lettuce:
+      pool:
+        max-active: 3
+        min-idle: 2
+        max-idle: 3
+        max-wait: 1
+      shutdown-timeout: 100
+
+  data:
+    redis:
+      repositories:
+        enabled: false
+
+  #是否缓存空值
+  cache:
+    redis:
+      cache-null-values: false
+
+
+
+    #server:
+#  port: 9110
+#spring:
+#  application:
+#    name: huimv-hy-autoGetData
+#
+#  datasource:
+##    url: jdbc:mysql://47.98.175.112:3306/huimv_ql_farm_haiyan?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
+#    #    url: jdbc:mysql://36.22.189.214:3306/huimv_ql_farm?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
+#        url: jdbc:mysql://192.168.1.7:3306/huimv_ql_farm?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
+#    username: root
+#    password: hm123456
+#    driver-class-name: com.mysql.cj.jdbc.Driver
+#  jpa:
+#    properties:
+#      hibernate:
+#        enable_lazy_load_no_trans: true
+#    show-sql: true
+#    database: mysql
+#    hibernate:
+#      ddl-auto: update
+#    database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
+#    open-in-view: true
+management:
+  endpoints:
+    web:
+      exposure:
+        include: "*"   # * 在yaml 文件属于关键字,所以需要加引号
+

+ 31 - 0
huimv-env-platform/huimv-env-device/src/main/resources/application.properties

@@ -0,0 +1,31 @@
+spring.profiles.active=dev
+
+#开启健康监控
+management.endpoints.web.exposure.include=*
+
+#########################################################
+###             配置undertow取代tomcat                ###
+#########################################################
+# 是否打开 undertow 日志,默认为 false
+server.undertow.accesslog.enabled=false
+# 设置访问日志所在目录
+server.undertow.accesslog.dir=logs
+# 指定工作者线程的 I/0 线程数,默认为 2 或者 CPU 的个数
+server.undertow.io-threads=
+# 指定工作者线程个数,默认为 I/O 线程个数的 8 倍
+server.undertow.worker-threads=
+# 设置 HTTP POST 内容的最大长度,默认不做限制
+server.undertow.max-http-post-size=0
+
+#########################################################
+###   Actuator Monitor  --   Actuator configuration   ###
+#########################################################
+management.security.enabled=false
+
+# 数据处理流程
+data.input.flow=2
+
+# 是否写入测试数据(1:写入 0:不写入)
+data.test.input=0
+
+

+ 28 - 16
huimv-env-platform/huimv-env-input/src/main/java/com/huimv/env/input/config/TopicRabbitMQConfig.java

@@ -18,47 +18,59 @@ import org.springframework.context.annotation.Configuration;
  **/
  **/
 @Configuration
 @Configuration
 public class TopicRabbitMQConfig {
 public class TopicRabbitMQConfig {
-    //原始数据队列
+    //温度
     @Bean
     @Bean
     public Queue tempQueue() {
     public Queue tempQueue() {
         return new Queue(Const.QUEUE_TEMP);
         return new Queue(Const.QUEUE_TEMP);
     }
     }
     @Bean
     @Bean
-    public Queue humiQueue() {
-        return new Queue(Const.QUEUE_HUMI);
+    TopicExchange tempExchange() {
+        return new TopicExchange(Const.EXCHANGE_TEMP);
     }
     }
     @Bean
     @Bean
-    public Queue ammoniaQueue() {
-        return new Queue(Const.QUEUE_AMMONIA);
+    Binding bindingTempExchangeMessage() {
+        return BindingBuilder.bind(tempQueue()).to(tempExchange()).with(Const.ROUTING_KEY_TEMP);
     }
     }
 
 
-
-    //原始交换机
+    //湿度
     @Bean
     @Bean
-    TopicExchange tempExchange() {
-        return new TopicExchange(Const.EXCHANGE_TEMP);
+    public Queue humiQueue() {
+        return new Queue(Const.QUEUE_HUMI);
     }
     }
     @Bean
     @Bean
     TopicExchange humiExchange() {
     TopicExchange humiExchange() {
         return new TopicExchange(Const.EXCHANGE_HUMI);
         return new TopicExchange(Const.EXCHANGE_HUMI);
     }
     }
     @Bean
     @Bean
-    TopicExchange ammoniaExchange() {
-        return new TopicExchange(Const.EXCHANGE_AMMONIA);
+    Binding bindingHumiExchangeMessage() {
+        return BindingBuilder.bind(humiQueue()).to(humiExchange()).with(Const.ROUTING_KEY_HUMI);
     }
     }
 
 
-    //绑定关系
+    //氨气
     @Bean
     @Bean
-    Binding bindingTempExchangeMessage() {
-        return BindingBuilder.bind(tempQueue()).to(tempExchange()).with(Const.ROUTING_KEY_TEMP);
+    public Queue ammoniaQueue() {
+        return new Queue(Const.QUEUE_AMMONIA);
     }
     }
     @Bean
     @Bean
-    Binding bindingHumiExchangeMessage() {
-        return BindingBuilder.bind(humiQueue()).to(humiExchange()).with(Const.ROUTING_KEY_HUMI);
+    TopicExchange ammoniaExchange() {
+        return new TopicExchange(Const.EXCHANGE_AMMONIA);
     }
     }
     @Bean
     @Bean
     Binding bindingAmmoniaExchangeMessage() {
     Binding bindingAmmoniaExchangeMessage() {
         return BindingBuilder.bind(ammoniaQueue()).to(ammoniaExchange()).with(Const.ROUTING_KEY_AMMONIA);
         return BindingBuilder.bind(ammoniaQueue()).to(ammoniaExchange()).with(Const.ROUTING_KEY_AMMONIA);
     }
     }
 
 
+    //传感器
+    @Bean
+    public Queue sensorQueue() {
+        return new Queue(Const.QUEUE_SENSOR);
+    }
+    @Bean
+    TopicExchange sensorExchange() {
+        return new TopicExchange(Const.EXCHANGE_SENSOR);
+    }
+    @Bean
+    Binding bindingSensorExchangeMessage() {
+        return BindingBuilder.bind(sensorQueue()).to(sensorExchange()).with(Const.ROUTING_KEY_SENSOR);
+    }
 }
 }

+ 6 - 5
huimv-env-platform/huimv-env-input/src/main/java/com/huimv/env/input/server/EnvInputServerHandler.java

@@ -212,7 +212,7 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
             System.out.println("##高温,低温报警参数请求-未注册设备 idCode=" + idCode);
             System.out.println("##高温,低温报警参数请求-未注册设备 idCode=" + idCode);
             return;
             return;
         }
         }
-        String answerText = "hm+158+18+265+12+6+end";
+        String answerText = "hm+115+18+265+12+6+end";
         log.info(">>高温,低温报警参数请求-应答数据>>" + answerText);
         log.info(">>高温,低温报警参数请求-应答数据>>" + answerText);
         answerCmd(answerText, ctx);
         answerCmd(answerText, ctx);
     }
     }
@@ -260,7 +260,7 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
             System.out.println("##获取报警使能请求-未注册设备 idCode=" + idCode);
             System.out.println("##获取报警使能请求-未注册设备 idCode=" + idCode);
             return;
             return;
         }
         }
-        String answerText = "hm+158+14+1(122)1(122)1(122)1(122)1(122)1(122)1(122)1(122)1(122)1(122)1(122)1(122)1(122)1(122)+0+4+end";
+        String answerText = "hm+115+14+1(122)1(122)1(122)1(122)1(122)1(122)1(122)1(122)1(122)1(122)1(122)1(122)1(122)1(122)+0+4+end";
         log.info(">>获取报警使能请求-应答数据>>" + answerText);
         log.info(">>获取报警使能请求-应答数据>>" + answerText);
         answerCmd(answerText, ctx);
         answerCmd(answerText, ctx);
     }
     }
@@ -272,7 +272,8 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
             System.out.println("##上报喷雾除臭状态请求-未注册设备 idCode=" + idCode);
             System.out.println("##上报喷雾除臭状态请求-未注册设备 idCode=" + idCode);
             return;
             return;
         }
         }
-        String answerText = "hm+158+7+6+end";
+//        String answerText = "hm+115+7+6+end";
+        String answerText = "hm+115+7+1+201702081523+6+end";
         log.info(">>上报喷雾除臭状态请求-应答数据>>" + answerText);
         log.info(">>上报喷雾除臭状态请求-应答数据>>" + answerText);
         answerCmd(answerText, ctx);
         answerCmd(answerText, ctx);
     }
     }
@@ -284,7 +285,8 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
             System.out.println("##获取喷雾除臭配置请求-未注册设备 idCode=" + idCode);
             System.out.println("##获取喷雾除臭配置请求-未注册设备 idCode=" + idCode);
             return;
             return;
         }
         }
-        String answerText = "hm+158+6+1+1+(201708080101,60,10,10)(201708080202,60,10,10)(201708080303,60,10,10)(201708080404,60,10,10)...+60+201702081523+6+end";
+//        String answerText = "hm+115+6+1+1+(201708080101,60,10,10)(201708080202,60,10,10)(201708080303,60,10,10)(201708080404,60,10,10)...+60+201702081523+6+end";
+        String answerText = "hm+115+6+1+1+0101,60,10,10,0202,60,10,10,0303,60,10,10,0404,60,10,10+60+6+end";
         log.info(">>获取喷雾除臭配置请求-应答数据>>" + answerText);
         log.info(">>获取喷雾除臭配置请求-应答数据>>" + answerText);
         answerCmd(answerText, ctx);
         answerCmd(answerText, ctx);
     }
     }
@@ -339,7 +341,6 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
             System.out.println("##时间同步请求-未注册设备 idCode=" + deviceCode);
             System.out.println("##时间同步请求-未注册设备 idCode=" + deviceCode);
             return;
             return;
         }
         }
-        System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"+dateUtil.getNowText() );
         String answerText = "hm+2+" + dateUtil.getNowText() + "+0+4+end";
         String answerText = "hm+2+" + dateUtil.getNowText() + "+0+4+end";
         log.info(">>时间同步请求-应答数据>>" + answerText);
         log.info(">>时间同步请求-应答数据>>" + answerText);
         answerCmd(answerText, ctx);
         answerCmd(answerText, ctx);