Quellcode durchsuchen

添加水表,电表,ph的接收

523096025 vor 2 Jahren
Ursprung
Commit
f9e8d72bc0
17 geänderte Dateien mit 497 neuen und 28 gelöschten Zeilen
  1. 53 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/entity/EnvElectricityMeter.java
  2. 53 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/entity/EnvPh.java
  3. 53 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/entity/EnvWaterMeter.java
  4. 9 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/repo/EnvElectricityMeterRepo.java
  5. 9 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/repo/EnvPhEntityRepo.java
  6. 9 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/repo/EnvWaterMeterRepo.java
  7. 18 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/utils/Const.java
  8. 6 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/utils/MathUtil2.java
  9. 22 16
      huimv-env-platform/huimv-env-common/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
  10. 42 0
      huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/config/TopicRabbitMQConfig.java
  11. 89 2
      huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/listener/DeviceListener.java
  12. 6 0
      huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/service/IDeviceService.java
  13. 60 6
      huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/service/impl/DeviceServiceImpl.java
  14. 43 0
      huimv-env-platform/huimv-env-input/src/main/java/com/huimv/env/input/config/TopicRabbitMQConfig.java
  15. 21 0
      huimv-env-platform/huimv-env-input/src/main/java/com/huimv/env/input/producer/Producer.java
  16. 3 3
      huimv-env-platform/huimv-env-input/src/main/java/com/huimv/env/input/server/EnvInputServerHandler.java
  17. 1 1
      huimv-env-platform/huimv-env-input/src/main/resources/application-dev.yml

+ 53 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/entity/EnvElectricityMeter.java

@@ -0,0 +1,53 @@
+package com.huimv.env.common.dao.entity;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2022-10-11
+ */
+@Data
+@Accessors(chain = true)
+@Table(name = "env_electricity_meter")
+@Entity
+public class EnvElectricityMeter implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    @Column(name = "id", nullable = false)
+    private Integer id;
+
+    private String deviceCode;
+
+    private Integer sensorSn;
+
+    private BigDecimal electricityMeter;
+
+    private String askTime;
+
+    private Date addTime;
+
+    private Date addDate;
+
+    private String pigpenId;
+
+    private String unitId;
+
+    private String farmCode;
+
+    private String dataUnit;
+
+
+}

+ 53 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/entity/EnvPh.java

@@ -0,0 +1,53 @@
+package com.huimv.env.common.dao.entity;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2022-10-11
+ */
+@Data
+@Accessors(chain = true)
+@Table(name = "env_ph")
+@Entity
+public class EnvPh implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    @Column(name = "id", nullable = false)
+    private Integer id;
+
+    private String deviceCode;
+
+    private Integer sensorSn;
+
+    private BigDecimal ph;
+
+    private String askTime;
+
+    private Date addTime;
+
+    private Date addDate;
+
+    private String pigpenId;
+
+    private String unitId;
+
+    private String farmCode;
+
+    private String dataUnit;
+
+
+}

+ 53 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/entity/EnvWaterMeter.java

@@ -0,0 +1,53 @@
+package com.huimv.env.common.dao.entity;
+
+import lombok.Data;
+import lombok.experimental.Accessors;
+
+import javax.persistence.*;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2022-10-11
+ */
+@Data
+@Accessors(chain = true)
+@Table(name = "env_water_meter")
+@Entity
+public class EnvWaterMeter implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.AUTO)
+    @Column(name = "id", nullable = false)
+    private Integer id;
+
+    private String deviceCode;
+
+    private Integer sensorSn;
+
+    private BigDecimal waterMeter;
+
+    private String askTime;
+
+    private Date addTime;
+
+    private Date addDate;
+
+    private String pigpenId;
+
+    private String unitId;
+
+    private String farmCode;
+
+    private String dataUnit;
+
+
+}

+ 9 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/repo/EnvElectricityMeterRepo.java

@@ -0,0 +1,9 @@
+package com.huimv.env.common.dao.repo;
+
+import com.huimv.env.common.dao.entity.EnvElectricityMeter;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+
+public interface EnvElectricityMeterRepo extends JpaRepository<EnvElectricityMeter, Integer>, JpaSpecificationExecutor<EnvPhEntityRepo> {
+
+}

+ 9 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/repo/EnvPhEntityRepo.java

@@ -0,0 +1,9 @@
+package com.huimv.env.common.dao.repo;
+
+import com.huimv.env.common.dao.entity.EnvPh;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+
+public interface EnvPhEntityRepo extends JpaRepository<EnvPh, Integer>, JpaSpecificationExecutor<EnvPh> {
+
+}

+ 9 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/repo/EnvWaterMeterRepo.java

@@ -0,0 +1,9 @@
+package com.huimv.env.common.dao.repo;
+
+import com.huimv.env.common.dao.entity.EnvWaterMeter;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+
+public interface EnvWaterMeterRepo extends JpaRepository<EnvWaterMeter, Integer>, JpaSpecificationExecutor<EnvWaterMeter> {
+
+}

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

@@ -43,4 +43,22 @@ public class Const {
     public final static String ROUTING_KEY_WATER_GEGE = "topic.waterGege.key";
     public final static String QUEUE_WATER_GEGE = "topic.waterGege.queue";
     public final static String EXCHANGE_WATER_GEGE = "topic.waterGege.exchange";
+
+    // PH
+    public final static String ROUTING_KEY_PH = "topic.ph.key";
+    public final static String QUEUE_PH = "topic.ph.queue";
+    public final static String EXCHANGE_PH = "topic.ph.exchange";
+
+    // 水表
+    public final static String ROUTING_KEY_WATER_METER = "topic.waterMeter.key";
+    public final static String QUEUE_WATER_METER = "topic.waterMeter.queue";
+    public final static String EXCHANGE_WATER_METER = "topic.waterMeter.exchange";
+
+
+    // 电表
+    public final static String ROUTING_KEY_ELECTRICITY_METER = "topic.electricityMeter.key";
+    public final static String QUEUE_ELECTRICITY_METER = "topic.electricityMeter.queue";
+    public final static String EXCHANGE_ELECTRICITY_METER = "topic.electricityMeter.exchange";
+
+
 }

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

@@ -21,4 +21,10 @@ public class MathUtil2 {
     public double countHumi(int temp){
         return temp * 0.1;
     }
+
+    //计算温度
+    public double countMeter(int temp){
+        return temp * 0.01;
+    }
+
 }

+ 22 - 16
huimv-env-platform/huimv-env-common/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst

@@ -1,47 +1,53 @@
 com\huimv\env\common\dao\entity\EnvSprayTimeEntity.class
-com\huimv\env\common\dao\repo\EnvAmmoniaEntityRepo.class
-com\huimv\env\common\dao\repo\EnvSprayTimeEntityRepo.class
 com\huimv\env\common\dao\entity\EnvDeviceRegisterEntity.class
 com\huimv\env\common\dao\entity\EnvSprayStatusEntity.class
-com\huimv\env\common\dao\entity\EnvAmmoniaEntity.class
-com\huimv\env\common\service\impl\TempThresholdServiceImpl.class
-com\huimv\env\common\service\ISensorRegisterService.class
 com\huimv\env\common\dao\entity\EnvPushMessageEntity.class
 com\huimv\env\common\service\IPigpenService.class
-com\huimv\env\common\utils\RegexUtil.class
 com\huimv\env\common\dao\repo\EnvTempThresholdEntityRepo.class
 com\huimv\env\common\utils\Const.class
+com\huimv\env\common\dao\entity\EnvElectricityMeter.class
 com\huimv\env\common\service\impl\SensorRegisterServiceImpl.class
 com\huimv\env\common\service\ITempThresholdService.class
 com\huimv\env\common\service\IDeviceRegisterService.class
 com\huimv\env\common\dao\entity\EnvHumiEntity.class
 com\huimv\env\common\dao\repo\EnvAlarmTypeEntityRepo.class
 com\huimv\env\common\service\ISprayTimeService.class
-com\huimv\env\common\service\ISprayConfigService.class
-com\huimv\env\common\dao\repo\EnvHumiEntityRepo.class
 com\huimv\env\common\dao\repo\EnvTempEntityRepo.class
 com\huimv\env\common\dao\repo\EnvDeviceRegisterEntityRepo.class
-com\huimv\env\common\dao\repo\EnvSensorRegisterEntityRepo.class
 com\huimv\env\common\service\impl\PigpenServiceImpl.class
 com\huimv\env\common\dao\entity\EnvAlarmTypeEntity.class
-com\huimv\env\common\service\impl\PushMessageServiceImpl.class
 com\huimv\env\common\service\impl\DeviceRegisterServiceImpl.class
-com\huimv\env\common\service\IPushMessageService.class
 com\huimv\env\common\service\impl\SprayTimeServiceImpl.class
 com\huimv\env\common\dao\entity\EnvSprayConfigEntity.class
-com\huimv\env\common\service\impl\SprayStatusServiceImpl.class
-com\huimv\env\common\dao\repo\EnvSprayConfigEntityRepo.class
 com\huimv\env\common\dao\entity\EnvTempThresholdEntity.class
 com\huimv\env\common\dao\repo\BasePigpenEntityRepo.class
 com\huimv\env\common\dao\repo\EnvWaterGegeEntityRepo.class
 com\huimv\env\common\dao\repo\EnvPushMessageEntityRepo.class
+com\huimv\env\common\utils\MathUtil.class
+com\huimv\env\common\dao\entity\EnvTempEntity.class
+com\huimv\env\common\dao\entity\BasePigpenEntity.class
+com\huimv\env\common\dao\repo\EnvAmmoniaEntityRepo.class
+com\huimv\env\common\dao\repo\EnvSprayTimeEntityRepo.class
+com\huimv\env\common\dao\entity\EnvAmmoniaEntity.class
+com\huimv\env\common\service\impl\TempThresholdServiceImpl.class
+com\huimv\env\common\service\ISensorRegisterService.class
+com\huimv\env\common\dao\entity\EnvPh.class
+com\huimv\env\common\utils\RegexUtil.class
+com\huimv\env\common\dao\repo\EnvElectricityMeterRepo.class
+com\huimv\env\common\service\ISprayConfigService.class
+com\huimv\env\common\dao\repo\EnvHumiEntityRepo.class
+com\huimv\env\common\dao\repo\EnvSensorRegisterEntityRepo.class
+com\huimv\env\common\service\impl\PushMessageServiceImpl.class
+com\huimv\env\common\dao\entity\EnvWaterMeter.class
+com\huimv\env\common\service\IPushMessageService.class
+com\huimv\env\common\service\impl\SprayStatusServiceImpl.class
+com\huimv\env\common\dao\repo\EnvSprayConfigEntityRepo.class
 com\huimv\env\common\service\impl\SprayConfigServiceImpl.class
 com\huimv\env\common\utils\DateUtil.class
-com\huimv\env\common\utils\MathUtil.class
 com\huimv\env\common\service\ISprayStatusService.class
 com\huimv\env\common\dao\entity\EnvSensorRegisterEntity.class
 com\huimv\env\common\dao\repo\EnvSprayStatusEntityRepo.class
+com\huimv\env\common\dao\repo\EnvPhEntityRepo.class
 com\huimv\env\common\dao\entity\EnvWaterGege.class
-com\huimv\env\common\dao\entity\EnvTempEntity.class
-com\huimv\env\common\dao\entity\BasePigpenEntity.class
+com\huimv\env\common\dao\repo\EnvWaterMeterRepo.class
 com\huimv\env\common\utils\SMSManager.class

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

@@ -116,4 +116,46 @@ public class TopicRabbitMQConfig {
     Binding bindingWaterGegeExchangeMessage() {
         return BindingBuilder.bind(waterGegeQueue()).to(waterGegeExchange()).with(Const.ROUTING_KEY_WATER_GEGE);
     }
+    //推送PH
+    @Bean
+    public Queue phGegeQueue() {
+        return new Queue(Const.QUEUE_PH);
+    }
+    @Bean
+    TopicExchange phGegeExchange() {
+        return new TopicExchange(Const.EXCHANGE_PH);
+    }
+    @Bean
+    Binding bindingPhExchangeMessage() {
+        return BindingBuilder.bind(phGegeQueue()).to(phGegeExchange()).with(Const.ROUTING_KEY_PH);
+    }
+
+    //推送水表
+    @Bean
+    public Queue waterMeterQueue() {
+        return new Queue(Const.QUEUE_WATER_METER);
+    }
+    @Bean
+    TopicExchange waterMeterExchange() {
+        return new TopicExchange(Const.EXCHANGE_WATER_METER);
+    }
+    @Bean
+    Binding bindingwaterMeterExchangeMessage() {
+        return BindingBuilder.bind(waterMeterQueue()).to(waterMeterExchange()).with(Const.ROUTING_KEY_WATER_METER);
+    }
+
+
+    //推送电表
+    @Bean
+    public Queue electricityMeterQueue() {
+        return new Queue(Const.QUEUE_ELECTRICITY_METER);
+    }
+    @Bean
+    TopicExchange electricityMeterExchange() {
+        return new TopicExchange(Const.EXCHANGE_ELECTRICITY_METER);
+    }
+    @Bean
+    Binding bindingelectricityMeterExchangeMessage() {
+        return BindingBuilder.bind(electricityMeterQueue()).to(electricityMeterExchange()).with(Const.ROUTING_KEY_ELECTRICITY_METER);
+    }
 }

+ 89 - 2
huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/listener/DeviceListener.java

@@ -15,6 +15,7 @@ import com.huimv.env.common.service.ISprayStatusService;
 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.common.utils.MathUtil2;
 import com.huimv.env.device.config.WeChatMessageHelperTest;
 import com.huimv.env.device.config.WebSocket;
 import com.huimv.env.device.producer.Producer;
@@ -52,7 +53,7 @@ public class DeviceListener {
     @Autowired
     private IDeviceService deviceService;
     @Autowired
-    private MathUtil mathUtil;
+    private MathUtil2 mathUtil;
     @Autowired
     private ICommandParserService cmdParserService;
     @Autowired
@@ -63,6 +64,92 @@ public class DeviceListener {
     @Autowired
     private WebSocket webSocket;
 
+    @RabbitListener(queues = Const.QUEUE_ELECTRICITY_METER)
+    @RabbitHandler
+    public void processElectricityMeter(Map RawMap)   {
+        System.out.println(">>>>>>>>>>>>>>接收电表数据 RawMap>>" + RawMap.toString());
+        String askText = RawMap.get("askText").toString();
+        JSONObject dataJo = deviceService.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 electricityMeter =  new BigDecimal(mathUtil.countMeter(dataJo.getIntValue("value"))).setScale(1, RoundingMode.UP)+dataJo.getString("dataUnit");;
+        int sensorSort = 1;
+        //更新传感器数据
+//        deviceService.updateSensorRegister(deviceCode, dataJo.getInteger("sensorSn"), nowTimestamp, todayDate, temp, farmCode,sensorSort);
+        deviceService.sendSensorToMQ(deviceCode, dataJo.getInteger("sensorSn"), nowTimestamp, todayDate, electricityMeter, farmCode,sensorSort);
+
+        //保存电表流水数据
+        deviceService.saveElectricityMeter(dataJo, envDeviceRegisterEntity, nowTimestamp, todayDate, farmCode);
+    }
+
+
+    @RabbitListener(queues = Const.QUEUE_WATER_METER)
+    @RabbitHandler
+    public void processWaterMeterGege(Map RawMap)   {
+        System.out.println(">>>>>>>>>>>>>>接收水表数据 RawMap>>" + RawMap.toString());
+        String askText = RawMap.get("askText").toString();
+        JSONObject dataJo = deviceService.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 waterMeter =  new BigDecimal(mathUtil.countMeter(dataJo.getIntValue("value"))).setScale(1, RoundingMode.UP)+dataJo.getString("dataUnit");;
+        int sensorSort = 1;
+        //更新传感器数据
+//        deviceService.updateSensorRegister(deviceCode, dataJo.getInteger("sensorSn"), nowTimestamp, todayDate, temp, farmCode,sensorSort);
+        deviceService.sendSensorToMQ(deviceCode, dataJo.getInteger("sensorSn"), nowTimestamp, todayDate, waterMeter, farmCode,sensorSort);
+
+        //保存水表流水数据
+        deviceService.saveWaterMeter(dataJo, envDeviceRegisterEntity, nowTimestamp, todayDate, farmCode);
+    }
+    
+    @RabbitListener(queues = Const.QUEUE_PH)
+    @RabbitHandler
+    public void processPhGege(Map RawMap)   {
+        System.out.println(">>>>>>>>>>>>>>接收PH数据 RawMap>>" + RawMap.toString());
+        String askText = RawMap.get("askText").toString();
+        JSONObject dataJo = deviceService.handleAskText(askText);
+        dataJo.put("dataUnit", "");
+        System.out.println("PH数据=" + 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 PH = new BigDecimal(mathUtil.countMeter(dataJo.getIntValue("value"))).setScale(1, RoundingMode.UP)+dataJo.getString("dataUnit");
+
+        int sensorSort = 1;
+        //更新传感器数据
+//        deviceService.updateSensorRegister(deviceCode, dataJo.getInteger("sensorSn"), nowTimestamp, todayDate, temp, farmCode,sensorSort);
+        deviceService.sendSensorToMQ(deviceCode, dataJo.getInteger("sensorSn"), nowTimestamp, todayDate, PH, farmCode,sensorSort);
+
+        //保存PH流水数据
+        deviceService.savePH(dataJo, envDeviceRegisterEntity, nowTimestamp, todayDate, farmCode);
+    }
+
 
     @RabbitListener(queues = Const.QUEUE_WATER_GEGE)
     @RabbitHandler
@@ -88,7 +175,7 @@ public class DeviceListener {
 //        deviceService.updateSensorRegister(deviceCode, dataJo.getInteger("sensorSn"), nowTimestamp, todayDate, temp, farmCode,sensorSort);
         deviceService.sendSensorToMQ(deviceCode, dataJo.getInteger("sensorSn"), nowTimestamp, todayDate, watreGege, farmCode,sensorSort);
 
-        //保存温度流水数据
+        //保存水压流水数据
         deviceService.saveWaterGege(dataJo, envDeviceRegisterEntity, nowTimestamp, todayDate, farmCode);
     }
 

+ 6 - 0
huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/service/IDeviceService.java

@@ -28,4 +28,10 @@ public interface IDeviceService {
     JSONObject handleSprayStatusAskCmd(String askText);
 
     void saveWaterGege(JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode);
+
+    void savePH(JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode);
+
+    void saveWaterMeter(JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode);
+
+    void saveElectricityMeter(JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode);
 }

+ 60 - 6
huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/service/impl/DeviceServiceImpl.java

@@ -2,14 +2,12 @@ package com.huimv.env.device.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
 import com.huimv.env.common.dao.entity.*;
-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.dao.repo.EnvWaterGegeEntityRepo;
+import com.huimv.env.common.dao.repo.*;
 import com.huimv.env.common.service.IPigpenService;
 import com.huimv.env.common.service.ISensorRegisterService;
 import com.huimv.env.common.utils.DateUtil;
 import com.huimv.env.common.utils.MathUtil;
+import com.huimv.env.common.utils.MathUtil2;
 import com.huimv.env.device.config.ConfigBean;
 import com.huimv.env.device.producer.Producer;
 import com.huimv.env.device.service.IDeviceService;
@@ -39,7 +37,7 @@ public class DeviceServiceImpl implements IDeviceService {
     @Autowired
     private EnvAmmoniaEntityRepo envAmmoniaEntityRepo;
     @Autowired
-    private MathUtil mathUtil;
+    private MathUtil2 mathUtil;
     @Autowired
     private DateUtil dateUtil;
     @Autowired
@@ -54,6 +52,15 @@ public class DeviceServiceImpl implements IDeviceService {
     @Autowired
     private EnvWaterGegeEntityRepo envWaterGegeEntityRepo;
 
+    @Autowired
+    private EnvPhEntityRepo envPhEntityRepo;
+
+    @Autowired
+    private EnvWaterMeterRepo envWaterMeterRepo;
+
+    @Autowired
+    private EnvElectricityMeterRepo envElectricityMeterRepo;
+
     @Override
     public void sendSensorToMQ(String deviceCode, Integer sensorSn, Timestamp nowTimestamp, Date todayDate, String value, String farmCode, int sensorSort) {
         JSONObject sensorJo = new JSONObject();
@@ -147,8 +154,55 @@ public class DeviceServiceImpl implements IDeviceService {
         envAmmoniaEntity.setDataUnit(dataJo.getString("dataUnit"));
         envWaterGegeEntityRepo.saveAndFlush(envAmmoniaEntity);
     }
+    //保存PH
+    @Override
+    public void savePH(JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode) {
+        EnvPh envPh = new EnvPh();
+        envPh.setDeviceCode(dataJo.getString("deviceCode"));
+        envPh.setSensorSn(dataJo.getInteger("sensorSn"));
+        envPh.setPh(new BigDecimal(mathUtil.countMeter(dataJo.getIntValue("value"))));
+        envPh.setAskTime(dateUtil.handleAskTime(dataJo.getString("askTime")));
+        envPh.setAddTime(nowTimestamp);
+        envPh.setAddDate(todayDate);
+        envPh.setFarmCode(farmCode);
+        envPh.setPigpenId(envDeviceRegisterEntity.getPigpenId());
+        envPh.setUnitId(envDeviceRegisterEntity.getUnitId());
+        envPh.setDataUnit(dataJo.getString("dataUnit"));
+        envPhEntityRepo.saveAndFlush(envPh);
+    }
+    //保存水表
+    @Override
+    public void saveWaterMeter(JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode) {
+        EnvWaterMeter envWaterMeter = new EnvWaterMeter();
+        envWaterMeter.setDeviceCode(dataJo.getString("deviceCode"));
+        envWaterMeter.setSensorSn(dataJo.getInteger("sensorSn"));
+        envWaterMeter.setWaterMeter(new BigDecimal(mathUtil.countMeter(dataJo.getIntValue("value"))));
+        envWaterMeter.setAskTime(dateUtil.handleAskTime(dataJo.getString("askTime")));
+        envWaterMeter.setAddTime(nowTimestamp);
+        envWaterMeter.setAddDate(todayDate);
+        envWaterMeter.setFarmCode(farmCode);
+        envWaterMeter.setPigpenId(envDeviceRegisterEntity.getPigpenId());
+        envWaterMeter.setUnitId(envDeviceRegisterEntity.getUnitId());
+        envWaterMeter.setDataUnit(dataJo.getString("dataUnit"));
+        envWaterMeterRepo.saveAndFlush(envWaterMeter);
+    }
 
-
+    //保存电表
+    @Override
+    public void saveElectricityMeter(JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode) {
+        EnvElectricityMeter envElectricityMeter = new EnvElectricityMeter();
+        envElectricityMeter.setDeviceCode(dataJo.getString("deviceCode"));
+        envElectricityMeter.setSensorSn(dataJo.getInteger("sensorSn"));
+        envElectricityMeter.setElectricityMeter(new BigDecimal(mathUtil.countMeter(dataJo.getIntValue("value"))));
+        envElectricityMeter.setAskTime(dateUtil.handleAskTime(dataJo.getString("askTime")));
+        envElectricityMeter.setAddTime(nowTimestamp);
+        envElectricityMeter.setAddDate(todayDate);
+        envElectricityMeter.setFarmCode(farmCode);
+        envElectricityMeter.setPigpenId(envDeviceRegisterEntity.getPigpenId());
+        envElectricityMeter.setUnitId(envDeviceRegisterEntity.getUnitId());
+        envElectricityMeter.setDataUnit(dataJo.getString("dataUnit"));
+        envElectricityMeterRepo.saveAndFlush(envElectricityMeter);
+    }
     //
     @Override
     public JSONObject handleAskText(String askText) {

+ 43 - 0
huimv-env-platform/huimv-env-input/src/main/java/com/huimv/env/input/config/TopicRabbitMQConfig.java

@@ -114,4 +114,47 @@ public class TopicRabbitMQConfig {
     Binding bindingWaterGegeExchangeMessage() {
         return BindingBuilder.bind(waterGegeQueue()).to(waterGegeExchange()).with(Const.ROUTING_KEY_WATER_GEGE);
     }
+
+    //推送PH
+    @Bean
+    public Queue phGegeQueue() {
+        return new Queue(Const.QUEUE_PH);
+    }
+    @Bean
+    TopicExchange phGegeExchange() {
+        return new TopicExchange(Const.EXCHANGE_PH);
+    }
+    @Bean
+    Binding bindingPhExchangeMessage() {
+        return BindingBuilder.bind(phGegeQueue()).to(phGegeExchange()).with(Const.ROUTING_KEY_PH);
+    }
+
+    //推送水表
+    @Bean
+    public Queue waterMeterQueue() {
+        return new Queue(Const.QUEUE_WATER_METER);
+    }
+    @Bean
+    TopicExchange waterMeterExchange() {
+        return new TopicExchange(Const.EXCHANGE_WATER_METER);
+    }
+    @Bean
+    Binding bindingwaterMeterExchangeMessage() {
+        return BindingBuilder.bind(waterMeterQueue()).to(waterMeterExchange()).with(Const.ROUTING_KEY_WATER_METER);
+    }
+
+
+    //推送电表
+    @Bean
+    public Queue electricityMeterQueue() {
+        return new Queue(Const.QUEUE_ELECTRICITY_METER);
+    }
+    @Bean
+    TopicExchange electricityMeterExchange() {
+        return new TopicExchange(Const.EXCHANGE_ELECTRICITY_METER);
+    }
+    @Bean
+    Binding bindingelectricityMeterExchangeMessage() {
+        return BindingBuilder.bind(electricityMeterQueue()).to(electricityMeterExchange()).with(Const.ROUTING_KEY_ELECTRICITY_METER);
+    }
 }

+ 21 - 0
huimv-env-platform/huimv-env-input/src/main/java/com/huimv/env/input/producer/Producer.java

@@ -115,4 +115,25 @@ public class Producer {
         rabbitTemplate.convertAndSend(Const.EXCHANGE_WATER_GEGE, Const.ROUTING_KEY_WATER_GEGE, map);
         return "ok";
     }
+
+    public String sendPHGege(String askText) {
+        Map map = new HashMap();
+        map.put("askText",askText);
+        rabbitTemplate.convertAndSend(Const.EXCHANGE_PH, Const.ROUTING_KEY_PH, map);
+        return "ok";
+    }
+
+    public String sendWaterMeter(String askText) {
+        Map map = new HashMap();
+        map.put("askText",askText);
+        rabbitTemplate.convertAndSend(Const.EXCHANGE_WATER_METER, Const.ROUTING_KEY_WATER_METER, map);
+        return "ok";
+    }
+
+    public String sendElectricityMeter(String askText) {
+        Map map = new HashMap();
+        map.put("askText",askText);
+        rabbitTemplate.convertAndSend(Const.EXCHANGE_ELECTRICITY_METER, Const.ROUTING_KEY_ELECTRICITY_METER, map);
+        return "ok";
+    }
 }

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

@@ -268,7 +268,7 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
         log.info(">>电表上传请求-应答数据>>" + answerText);
         answerCmd(answerText, ctx);
         //电表请求到消息队列
-//        producer.sendWaterGege(askText);
+        producer.sendElectricityMeter(askText);
     }
 
     //水表
@@ -283,7 +283,7 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
         log.info(">>水表上传请求-应答数据>>" + answerText);
         answerCmd(answerText, ctx);
         //发送水表请求到消息队列
-//        producer.sendWaterGege(askText);
+        producer.sendWaterMeter(askText);
     }
 
     //PH
@@ -298,7 +298,7 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
         log.info(">>PH上传请求-应答数据>>" + answerText);
         answerCmd(answerText, ctx);
         //发送PH请求到消息队列
-//        producer.sendWaterGege(askText);
+        producer.sendPHGege(askText);
     }
 
     //水压

+ 1 - 1
huimv-env-platform/huimv-env-input/src/main/resources/application-dev.yml

@@ -6,7 +6,7 @@ spring:
     name: huimv-env-input
 
   datasource:
-    url: jdbc:mysql://122.112.224.199:3306/huimv-env-platform?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
+    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