523096025 2 년 전
부모
커밋
da28ca9ab2
33개의 변경된 파일998개의 추가작업 그리고 62개의 파일을 삭제
  1. 20 0
      huimv-env-common/src/main/java/com/huimv/env/common/controller/EnvDayagePeizhiController.java
  2. 20 0
      huimv-env-common/src/main/java/com/huimv/env/common/controller/EnvFengPeizhiController.java
  3. 72 0
      huimv-env-common/src/main/java/com/huimv/env/common/entity/EnvDayagePeizhi.java
  4. 3 3
      huimv-env-common/src/main/java/com/huimv/env/common/entity/EnvDevice.java
  5. 3 1
      huimv-env-common/src/main/java/com/huimv/env/common/entity/EnvDeviceFan.java
  6. 3 1
      huimv-env-common/src/main/java/com/huimv/env/common/entity/EnvDeviceOther.java
  7. 114 0
      huimv-env-common/src/main/java/com/huimv/env/common/entity/EnvFengPeizhi.java
  8. 1 1
      huimv-env-common/src/main/java/com/huimv/env/common/entity/EnvWater.java
  9. 16 0
      huimv-env-common/src/main/java/com/huimv/env/common/mapper/EnvDayagePeizhiMapper.java
  10. 16 0
      huimv-env-common/src/main/java/com/huimv/env/common/mapper/EnvFengPeizhiMapper.java
  11. 17 0
      huimv-env-common/src/main/java/com/huimv/env/common/service/IEnvDayagePeizhiService.java
  12. 1 0
      huimv-env-common/src/main/java/com/huimv/env/common/service/IEnvDeviceService.java
  13. 17 0
      huimv-env-common/src/main/java/com/huimv/env/common/service/IEnvFengPeizhiService.java
  14. 42 0
      huimv-env-common/src/main/java/com/huimv/env/common/service/impl/EnvDayagePeizhiServiceImpl.java
  15. 11 3
      huimv-env-common/src/main/java/com/huimv/env/common/service/impl/EnvDeviceServiceImpl.java
  16. 44 0
      huimv-env-common/src/main/java/com/huimv/env/common/service/impl/EnvFengPeizhiServiceImpl.java
  17. 25 0
      huimv-env-common/src/main/java/com/huimv/env/common/utils/Const.java
  18. 20 0
      huimv-env-common/src/main/resources/mapper/EnvDayagePeizhiMapper.xml
  19. 28 0
      huimv-env-common/src/main/resources/mapper/EnvFengPeizhiMapper.xml
  20. 63 1
      huimv-env-device/src/main/java/com/huimv/env/device/listener/DeviceListener.java
  21. 10 0
      huimv-env-device/src/main/java/com/huimv/env/device/service/IDeviceService.java
  22. 180 13
      huimv-env-device/src/main/java/com/huimv/env/device/service/impl/DeviceServiceImpl.java
  23. 5 5
      huimv-env-input-water/pom.xml
  24. 1 1
      huimv-env-input-water/src/main/java/com/huimv/env/input/HuimvEnvInputApplication.java
  25. 1 1
      huimv-env-input-water/src/main/java/com/huimv/env/input/server/EnvInputServer.java
  26. 25 20
      huimv-env-input-water/src/main/java/com/huimv/env/input/server/EnvInputServerHandler.java
  27. 10 10
      huimv-env-input-water/src/main/resources/application-prod.yml
  28. 1 1
      huimv-env-input/src/main/java/com/huimv/env/input/HuimvEnvInputApplication.java
  29. 57 0
      huimv-env-input/src/main/java/com/huimv/env/input/config/TopicRabbitMQConfig.java
  30. 35 0
      huimv-env-input/src/main/java/com/huimv/env/input/producer/Producer.java
  31. 116 1
      huimv-env-input/src/main/java/com/huimv/env/input/server/EnvInputServerHandler.java
  32. 4 0
      huimv-env-input/src/main/java/com/huimv/env/input/service/ICommandProcessorService.java
  33. 17 0
      huimv-env-input/src/main/java/com/huimv/env/input/service/impl/CommandProcessorServiceImpl.java

+ 20 - 0
huimv-env-common/src/main/java/com/huimv/env/common/controller/EnvDayagePeizhiController.java

@@ -0,0 +1,20 @@
+package com.huimv.env.common.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2023-04-10
+ */
+@RestController
+@RequestMapping("/env-dayage-peizhi")
+public class EnvDayagePeizhiController {
+
+}

+ 20 - 0
huimv-env-common/src/main/java/com/huimv/env/common/controller/EnvFengPeizhiController.java

@@ -0,0 +1,20 @@
+package com.huimv.env.common.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ *  前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2023-04-10
+ */
+@RestController
+@RequestMapping("/env-feng-peizhi")
+public class EnvFengPeizhiController {
+
+}

+ 72 - 0
huimv-env-common/src/main/java/com/huimv/env/common/entity/EnvDayagePeizhi.java

@@ -0,0 +1,72 @@
+package com.huimv.env.common.entity;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2023-04-10
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("env_dayage_peizhi")
+public class EnvDayagePeizhi implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String deviceCode;
+
+    /**
+     * 序号
+     */
+    private Integer levelDayage;
+
+    /**
+     * 日龄
+     */
+    private Integer days;
+
+    /**
+     * 温度
+     */
+    private BigDecimal targetTemp;
+
+    /**
+     * 时间戳标志
+     */
+    private Date timeDayage;
+
+    /**
+     * 原始值
+     */
+    private String originalValue;
+
+    /**
+     * 0:未启用 1:启用
+     */
+    private Integer usingStart;
+
+    private String deployName;
+
+    private String other2;
+
+    private String other3;
+
+
+}

+ 3 - 3
huimv-env-common/src/main/java/com/huimv/env/common/entity/EnvDevice.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -79,13 +81,11 @@ public class EnvDevice implements Serializable {
 
     private Integer farmId;
 
-    private String ohter1;
-
-    private String ohter2;
 
     private String ohter3;
 
     private String remark;
+    private Date disposeTime;
 
 
 }

+ 3 - 1
huimv-env-common/src/main/java/com/huimv/env/common/entity/EnvDeviceFan.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -41,7 +43,7 @@ public class EnvDeviceFan implements Serializable {
     /**
      * 更新时间
      */
-    private LocalDateTime updateTime;
+    private Date updateTime;
 
     /**
      * 传感器名字

+ 3 - 1
huimv-env-common/src/main/java/com/huimv/env/common/entity/EnvDeviceOther.java

@@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
 import java.io.Serializable;
+import java.util.Date;
+
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -41,7 +43,7 @@ public class EnvDeviceOther implements Serializable {
     /**
      * 更新时间
      */
-    private LocalDateTime updateTime;
+    private Date updateTime;
 
     /**
      * 传感器名字

+ 114 - 0
huimv-env-common/src/main/java/com/huimv/env/common/entity/EnvFengPeizhi.java

@@ -0,0 +1,114 @@
+package com.huimv.env.common.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author author
+ * @since 2023-04-10
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("env_feng_peizhi")
+public class EnvFengPeizhi implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    private String deviceCode;
+
+    /**
+     * 序号
+     */
+    private Integer levelFeng;
+
+    /**
+     * 温差
+     */
+    private BigDecimal tempDiff;
+
+    /**
+     * 定速
+     */
+    private Integer fanEnable;
+
+    /**
+     * 时控
+     */
+    private Integer cycleMode;
+
+    /**
+     * 开启时间
+     */
+    private Integer runGap;
+
+    /**
+     * 停止时间
+     */
+    private Integer stopGap;
+
+    /**
+     * 变速开关
+     */
+    private Integer varFanEnable;
+
+    /**
+     * 风速
+     */
+    private Integer speed;
+
+    /**
+     * 风机状态 0关闭 1 开启
+     */
+    private String fansCtrl;
+
+    /**
+     * 变频风机控制
+     */
+    private Integer varFansCtrl;
+
+    /**
+     * 0未公共 1公共
+     */
+    private Integer openStatus;
+
+    /**
+     * 时间戳标志
+     */
+    private Date timeFeng;
+
+    /**
+     * 原始值
+     */
+    private String originalValue;
+
+    /**
+     * 0:未启用 1:启用
+     */
+    private Integer usingStart;
+
+    private String deployName;
+
+    private String other2;
+
+    private String other3;
+
+
+}

+ 1 - 1
huimv-env-common/src/main/java/com/huimv/env/common/entity/EnvWater.java

@@ -60,7 +60,7 @@ public class EnvWater implements Serializable {
     /**
      * 应答时间
      */
-    private LocalDateTime askTime;
+    private Date askTime;
 
     /**
      * 入库时间

+ 16 - 0
huimv-env-common/src/main/java/com/huimv/env/common/mapper/EnvDayagePeizhiMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.env.common.mapper;
+
+import com.huimv.env.common.entity.EnvDayagePeizhi;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2023-04-10
+ */
+public interface EnvDayagePeizhiMapper extends BaseMapper<EnvDayagePeizhi> {
+
+}

+ 16 - 0
huimv-env-common/src/main/java/com/huimv/env/common/mapper/EnvFengPeizhiMapper.java

@@ -0,0 +1,16 @@
+package com.huimv.env.common.mapper;
+
+import com.huimv.env.common.entity.EnvFengPeizhi;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2023-04-10
+ */
+public interface EnvFengPeizhiMapper extends BaseMapper<EnvFengPeizhi> {
+
+}

+ 17 - 0
huimv-env-common/src/main/java/com/huimv/env/common/service/IEnvDayagePeizhiService.java

@@ -0,0 +1,17 @@
+package com.huimv.env.common.service;
+
+import com.huimv.env.common.entity.EnvDayagePeizhi;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2023-04-10
+ */
+public interface IEnvDayagePeizhiService extends IService<EnvDayagePeizhi> {
+
+    String getDayAgePeiZhi(String[] dataArray,String idCode);
+}

+ 1 - 0
huimv-env-common/src/main/java/com/huimv/env/common/service/IEnvDeviceService.java

@@ -20,4 +20,5 @@ public interface IEnvDeviceService extends IService<EnvDevice> {
     EnvDevice getByDeviceCode(String deviceCode);
 
     void updateStatus(String idCode);
+
 }

+ 17 - 0
huimv-env-common/src/main/java/com/huimv/env/common/service/IEnvFengPeizhiService.java

@@ -0,0 +1,17 @@
+package com.huimv.env.common.service;
+
+import com.huimv.env.common.entity.EnvFengPeizhi;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author author
+ * @since 2023-04-10
+ */
+public interface IEnvFengPeizhiService extends IService<EnvFengPeizhi> {
+
+    String getFengPeiZhi(String[] dataArray);
+}

+ 42 - 0
huimv-env-common/src/main/java/com/huimv/env/common/service/impl/EnvDayagePeizhiServiceImpl.java

@@ -0,0 +1,42 @@
+package com.huimv.env.common.service.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.env.common.entity.EnvDayagePeizhi;
+import com.huimv.env.common.entity.EnvDevice;
+import com.huimv.env.common.mapper.EnvDayagePeizhiMapper;
+import com.huimv.env.common.service.IEnvDayagePeizhiService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huimv.env.common.service.IEnvDeviceService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2023-04-10
+ */
+@Service
+public class EnvDayagePeizhiServiceImpl extends ServiceImpl<EnvDayagePeizhiMapper, EnvDayagePeizhi> implements IEnvDayagePeizhiService {
+    @Autowired
+    private IEnvDeviceService envDeviceService;
+
+    @Override
+    public String getDayAgePeiZhi(String[] dataArray,String idCode) {
+        EnvDevice envDevice = envDeviceService.getOne(new QueryWrapper<EnvDevice>().eq("device_sort_code", idCode));
+        if (ObjectUtil.isNotEmpty(envDevice) && (ObjectUtil.isNotEmpty(envDevice.getDisposeTime()))){
+            Date disposeTime = envDevice.getDisposeTime();
+            String order = dataArray[3];
+            EnvDayagePeizhi one = this.getOne(new QueryWrapper<EnvDayagePeizhi>().eq("time_dayage", disposeTime).eq("level_dayage", order));
+            if (ObjectUtil.isNotEmpty(one)){
+                return one.getOriginalValue();
+            }
+        }
+        return null;
+    }
+}

+ 11 - 3
huimv-env-common/src/main/java/com/huimv/env/common/service/impl/EnvDeviceServiceImpl.java

@@ -24,9 +24,15 @@ public class EnvDeviceServiceImpl extends ServiceImpl<EnvDeviceMapper, EnvDevice
 
     @Override
     public String getDeviceCodeByChipId(String idCode) {
-        QueryWrapper<EnvDevice> deviceCode = new QueryWrapper<EnvDevice>().eq("device_code", idCode);
-        if (  envDeviceMapper.exists(deviceCode)){
-            return envDeviceMapper.selectOne(deviceCode).getDeviceSortCode();
+        try {
+            QueryWrapper<EnvDevice> deviceCode = new QueryWrapper<EnvDevice>().eq("device_code", idCode);
+            System.out.println(idCode);
+            System.out.println(deviceCode);
+            if (  envDeviceMapper.exists(deviceCode)){
+                return envDeviceMapper.selectOne(deviceCode).getDeviceSortCode();
+            }
+        }catch (Exception e){
+            System.out.println(e);
         }
         return null;
     }
@@ -48,4 +54,6 @@ public class EnvDeviceServiceImpl extends ServiceImpl<EnvDeviceMapper, EnvDevice
         envDevice.setDeviceStatus(1);
         envDeviceMapper.update(envDevice,wrapper);
     }
+
+
 }

+ 44 - 0
huimv-env-common/src/main/java/com/huimv/env/common/service/impl/EnvFengPeizhiServiceImpl.java

@@ -0,0 +1,44 @@
+package com.huimv.env.common.service.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.env.common.entity.EnvDayagePeizhi;
+import com.huimv.env.common.entity.EnvDevice;
+import com.huimv.env.common.entity.EnvFengPeizhi;
+import com.huimv.env.common.mapper.EnvFengPeizhiMapper;
+import com.huimv.env.common.service.IEnvDeviceService;
+import com.huimv.env.common.service.IEnvFengPeizhiService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.Date;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2023-04-10
+ */
+@Service
+public class EnvFengPeizhiServiceImpl extends ServiceImpl<EnvFengPeizhiMapper, EnvFengPeizhi> implements IEnvFengPeizhiService {
+
+    @Autowired
+    private IEnvDeviceService envDeviceService;
+
+    @Override
+    public String getFengPeiZhi(String[] dataArray) {
+        EnvDevice envDevice = envDeviceService.getOne(new QueryWrapper<EnvDevice>().eq("device_sort_code", dataArray[2]));
+        if (ObjectUtil.isNotEmpty(envDevice) && (ObjectUtil.isNotEmpty(envDevice.getDisposeTime()))){
+            Date disposeTime = envDevice.getDisposeTime();
+            String order = dataArray[3];
+            EnvFengPeizhi one = this.getOne(new QueryWrapper<EnvFengPeizhi>().eq("time_dayage", disposeTime).eq("level_dayage", order));
+            if (ObjectUtil.isNotEmpty(one)){
+                return one.getOriginalValue();
+            }
+        }
+        return null;
+    }
+}

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

@@ -50,4 +50,29 @@ public class Const {
     public final static String ROUTING_KEY_ENV_WARNING = "topic.env.warning.key";
     public final static String EXCHANGE_ENV_WARNING = "topic.env.warning.exchange";
 
+    //风机状态
+    public final static String QUEUE_ENV_FENG_STATUS = "topic.env.feng.status.queue";
+    public final static String ROUTING_KEY_ENV_FENG_STATUS = "topic.env.feng.status.key";
+    public final static String EXCHANGE_ENV_FENG_STATUS = "topic.env.feng.status.exchange";
+
+    //湿帘状态
+    public final static String QUEUE_ENV_SHILIAN_STATUS = "topic.env.shilian.status.queue";
+    public final static String ROUTING_KEY_ENV_SHILIAN_STATUS = "topic.env.shilian.status.key";
+    public final static String EXCHANGE_ENV_SHILIAN_STATUS = "topic.env.shilian.status.exchange";
+
+    //喷雾状态
+    public final static String QUEUE_ENV_PENWU_STATUS = "topic.env.penwu.status.queue";
+    public final static String ROUTING_KEY_ENV_PENWU_STATUS = "topic.env.penwu.status.key";
+    public final static String EXCHANGE_ENV_PENWU_STATUS = "topic.env.penwu.status.exchange";
+
+    //日龄温度配置上传
+    public final static String QUEUE_ENV_DAYAGE_PEIZHI = "topic.env.dayage.peizhi.queue";
+    public final static String ROUTING_KEY_ENV_DAYAGE_PEIZHI = "topic.env.dayage.peizhi.key";
+    public final static String EXCHANGE_ENV_DAYAGE_PEIZHI = "topic.env.dayage.peizhi.exchange";
+
+    //风机配置
+    public final static String QUEUE_ENV_FENG_PEIZHI = "topic.env.feng.peizhi.queue";
+    public final static String ROUTING_KEY_ENV_FENG_PEIZHI = "topic.env.feng.peizhi.key";
+    public final static String EXCHANGE_ENV_FENG_PEIZHI = "topic.env.feng.peizhi.exchange";
+
 }

+ 20 - 0
huimv-env-common/src/main/resources/mapper/EnvDayagePeizhiMapper.xml

@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huimv.env.common.mapper.EnvDayagePeizhiMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.huimv.env.common.entity.EnvDayagePeizhi">
+        <id column="id" property="id" />
+        <result column="device_code" property="deviceCode" />
+        <result column="level_dayage" property="levelDayage" />
+        <result column="days" property="days" />
+        <result column="target_temp" property="targetTemp" />
+        <result column="time_dayage" property="timeDayage" />
+        <result column="original_value" property="originalValue" />
+        <result column="using_start" property="usingStart" />
+        <result column="other1" property="other1" />
+        <result column="other2" property="other2" />
+        <result column="other3" property="other3" />
+    </resultMap>
+
+</mapper>

+ 28 - 0
huimv-env-common/src/main/resources/mapper/EnvFengPeizhiMapper.xml

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.huimv.env.common.mapper.EnvFengPeizhiMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.huimv.env.common.entity.EnvFengPeizhi">
+        <id column="id" property="id" />
+        <result column="device_code" property="deviceCode" />
+        <result column="level_feng" property="levelFeng" />
+        <result column="temp_diff" property="tempDiff" />
+        <result column="fan_enable" property="fanEnable" />
+        <result column="cycle_mode" property="cycleMode" />
+        <result column="run_gap" property="runGap" />
+        <result column="stop_gap" property="stopGap" />
+        <result column="var_fan_enable" property="varFanEnable" />
+        <result column="speed" property="speed" />
+        <result column="fans_ctrl" property="fansCtrl" />
+        <result column="var_fans_ctrl" property="varFansCtrl" />
+        <result column="open_status" property="openStatus" />
+        <result column="time_feng" property="timeFeng" />
+        <result column="original_value" property="originalValue" />
+        <result column="using_start" property="usingStart" />
+        <result column="other1" property="other1" />
+        <result column="other2" property="other2" />
+        <result column="other3" property="other3" />
+    </resultMap>
+
+</mapper>

+ 63 - 1
huimv-env-device/src/main/java/com/huimv/env/device/listener/DeviceListener.java

@@ -29,7 +29,7 @@ public class DeviceListener {
             String[] dataArray = askText.split("\\+");
             deviceService.saveTemp(dataArray);
         }catch (Exception e){
-            System.out.println("湿度异常"+e);
+            System.out.println("度异常"+e);
         }
     }
     @RabbitListener(queues = Const.QUEUE_ENV_TARGET_TEMP)
@@ -124,4 +124,66 @@ public class DeviceListener {
         }
     }
 
+    @RabbitListener(queues = Const.QUEUE_ENV_FENG_STATUS)
+    @RabbitHandler
+    public void processFengStatus(Map RawMap)   {
+        try {
+            System.out.println(">>>>>>>>>>>>>> 17 接收风机状态数据 RawMap>>" + RawMap.toString());
+            String askText = RawMap.get("askText").toString();
+            String[] dataArray = askText.split("\\+");
+            deviceService.saveFengStatus(dataArray);
+        }catch (Exception e){
+            System.out.println("湿度异常"+e);
+        }
+    }
+
+    @RabbitListener(queues = Const.QUEUE_ENV_SHILIAN_STATUS)
+    @RabbitHandler
+    public void processShiLianStatus(Map RawMap)   {
+        try {
+            System.out.println(">>>>>>>>>>>>>> 18 接收湿帘状态数据 RawMap>>" + RawMap.toString());
+            String askText = RawMap.get("askText").toString();
+            String[] dataArray = askText.split("\\+");
+            deviceService.saveShiLianStatus(dataArray);
+        }catch (Exception e){
+            System.out.println("接收湿帘异常"+e);
+        }
+
+    }
+    @RabbitListener(queues = Const.QUEUE_ENV_PENWU_STATUS)
+    @RabbitHandler
+    public void processPenWuStatus(Map RawMap)   {
+        try {
+            System.out.println(">>>>>>>>>>>>>> 19 接收喷雾状态数据 RawMap>>" + RawMap.toString());
+            String askText = RawMap.get("askText").toString();
+            String[] dataArray = askText.split("\\+");
+            deviceService.savePenWuStatus(dataArray);
+        }catch (Exception e){
+            System.out.println("接收喷雾状态异常"+e);
+        }
+    }
+    @RabbitListener(queues = Const.QUEUE_ENV_DAYAGE_PEIZHI)
+    @RabbitHandler
+    public void processDayAgePeiZhi(Map RawMap)   {
+        try {
+            System.out.println(">>>>>>>>>>>>>> 19 接收日龄配置数据 RawMap>>" + RawMap.toString());
+            String askText = RawMap.get("askText").toString();
+            String[] dataArray = askText.split("\\+");
+            deviceService.saveDayAgePeiZhi(dataArray);
+        }catch (Exception e){
+            System.out.println("接收日龄配置异常"+e);
+        }
+    }
+    @RabbitListener(queues = Const.QUEUE_ENV_FENG_PEIZHI)
+    @RabbitHandler
+    public void processFengPeiZhi(Map RawMap)   {
+        try {
+            System.out.println(">>>>>>>>>>>>>> 19 接收风机配置数据 RawMap>>" + RawMap.toString());
+            String askText = RawMap.get("askText").toString();
+            String[] dataArray = askText.split("\\+");
+            deviceService.saveFengPeiZhi(dataArray);
+        }catch (Exception e){
+            System.out.println("接收风机配置异常"+e);
+        }
+    }
 }

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

@@ -18,4 +18,14 @@ public interface IDeviceService {
     void saveWarning(String[] dataArray);
 
     void saveTargetTemp(String[] dataArray);
+
+    void saveFengStatus(String[] dataArray);
+
+    void saveShiLianStatus(String[] dataArray);
+
+    void savePenWuStatus(String[] dataArray);
+
+    void saveDayAgePeiZhi(String[] dataArray);
+
+    void saveFengPeiZhi(String[] dataArray);
 }

+ 180 - 13
huimv-env-device/src/main/java/com/huimv/env/device/service/impl/DeviceServiceImpl.java

@@ -1,8 +1,12 @@
 package com.huimv.env.device.service.impl;
 
 import cn.hutool.core.date.DateUtil;
-import com.huimv.env.common.entity.EnvDevice;
-import com.huimv.env.common.entity.EnvDeviceRecentlyData;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.json.JSON;
+import cn.hutool.json.JSONObject;
+import cn.hutool.json.JSONUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.env.common.entity.*;
 import com.huimv.env.common.service.*;
 import com.huimv.env.device.service.IDeviceService;
 import lombok.extern.slf4j.Slf4j;
@@ -32,6 +36,14 @@ public class DeviceServiceImpl implements IDeviceService {
 
     @Autowired
     private IEnvHumiService envHumiService;
+    @Autowired
+    private IEnvDeviceFanService envDeviceFanService;
+    @Autowired
+    private IEnvDeviceOtherService envDeviceOtherService;
+    @Autowired
+    private IEnvDayagePeizhiService envDayagePeizhiService;
+    @Autowired
+    private IEnvFengPeizhiService envFengPeizhiService;
 
     @Override
     @Transactional
@@ -41,23 +53,24 @@ public class DeviceServiceImpl implements IDeviceService {
         String originalTempValue = dataArray[4];
         String status = dataArray[5];
         String time = dataArray[6];
-
-        BigDecimal tempValue = new BigDecimal(originalTempValue);
-        BigDecimal  tempValueHandle = new BigDecimal(0);
-        if (tempValue.intValue() != 0){
-            tempValueHandle = tempValue.divide(new BigDecimal(10),1,BigDecimal.ROUND_HALF_UP);
-        }
         String chipId = getChipId(deviceCode,4,ordeNumber);
-       EnvDevice envDevice =  envDeviceService.getByDeviceCode(deviceCode);
-       EnvDeviceRecentlyData envDeviceRecentlyData =  envDeviceRecentlyDataService.getbyChipId(chipId);
         Date uploadDate = DateUtil.parse(time, "yyyyMMddHHmmss");
+        EnvDeviceRecentlyData envDeviceRecentlyData =  envDeviceRecentlyDataService.getbyChipId(chipId);
+        EnvDevice envDevice =  envDeviceService.getByDeviceCode(deviceCode);
         //判断传感器 故障
-        if ("1".equals(status)){
+        if ("1".equals(status) || "0".equals(originalTempValue) ){
             log.info("传感器异常,未加入流水");
             warningService.saveWarning(uploadDate,envDeviceRecentlyData,envDevice,chipId);
             envDeviceRecentlyDataService.updateByChipId(uploadDate,envDeviceRecentlyData,null,2);
             return;
         }
+
+        BigDecimal tempValue = new BigDecimal(originalTempValue);
+        BigDecimal  tempValueHandle = new BigDecimal(0);
+        if (tempValue.intValue() != 0){
+            tempValueHandle = tempValue.divide(new BigDecimal(10),1,BigDecimal.ROUND_HALF_UP);
+        }
+
         //更新实时表
         envDeviceRecentlyDataService.updateByChipId(uploadDate,envDeviceRecentlyData,tempValueHandle,1);
         //更新流水表
@@ -74,7 +87,7 @@ public class DeviceServiceImpl implements IDeviceService {
         String time = dataArray[6];
         BigDecimal humiValue = new BigDecimal(originalHumiValue);
         BigDecimal  humiValueHandle = new BigDecimal(0);
-        if (humiValue.intValue() != 0){
+        if (humiValue.intValue() != 0 ){
             humiValueHandle = humiValue.divide(new BigDecimal(10),1,BigDecimal.ROUND_HALF_UP);
         }
         Integer order = (Integer.parseInt(ordeNumber) + 11);
@@ -84,7 +97,7 @@ public class DeviceServiceImpl implements IDeviceService {
         Date uploadDate = DateUtil.parse(time, "yyyyMMddHHmmss");
 
         //判断传感器 故障
-        if ("1".equals(status)){
+        if ("1".equals(status)|| "0".equals(originalHumiValue)){
             log.info("传感器异常,未加入流水");
             warningService.saveWarning(uploadDate,envDeviceRecentlyData,envDevice,chipId);
             envDeviceRecentlyDataService.updateByChipId(uploadDate,envDeviceRecentlyData,null,2);
@@ -199,6 +212,160 @@ public class DeviceServiceImpl implements IDeviceService {
         envDeviceRecentlyDataService.updateByChipId(uploadDate,envDeviceRecentlyData,tempValueHandle,1);
     }
 
+    @Override
+    public void saveFengStatus(String[] dataArray) {
+        String deviceCode = dataArray[1];
+        String originalTempValue = dataArray[3];
+        String time = dataArray[4];
+        long fanNum = envDeviceFanService.count(new QueryWrapper<EnvDeviceFan>().eq("device_code", deviceCode));
+        //hm+1001+61+16383+20230406135801+6+end
+        String s = Integer.toBinaryString(Integer.parseInt(originalTempValue));
+        String str = getStr(s,fanNum);
+        int orderId = 1;
+        for (int i = str.length() - 1; i >= 0; i--) {
+            //状态
+            char c = str.charAt(i);
+            String chipId = deviceCode+"11"+orderId;
+            orderId++;
+            EnvDeviceFan deviceFan = envDeviceFanService.getOne(new QueryWrapper<EnvDeviceFan>().eq("chip_code", chipId));
+            System.out.println(deviceFan.toString());
+            if (ObjectUtil.isNotEmpty(deviceFan)){
+                deviceFan.setDeviceCode(deviceFan.getDeviceCode());
+                deviceFan.setChipStatus(c == '1' ? 1 : 0);
+                envDeviceFanService.updateById(deviceFan);
+            }
+        }
+    }
+
+    private String getStr(String s,Long fanNum) {
+        int length = s.length();
+        StringBuilder sBuilder = new StringBuilder(s);
+        for (int i = length; i < fanNum; i++) {
+            sBuilder.insert(0, "0");
+        }
+        s = sBuilder.toString();
+        return s;
+    }
+
+
+    @Override
+    public void saveShiLianStatus(String[] dataArray) {
+        //hm+1001+62+1+20230408175711+5+end
+        String deviceCode = dataArray[1];
+        //0关闭  1开启
+        String status = dataArray[3];
+        String time = dataArray[4];
+        String chipId = deviceCode+"133";
+        EnvDeviceOther envDeviceOther = envDeviceOtherService.getOne(new QueryWrapper<EnvDeviceOther>().eq("chip_code", chipId));
+        if (ObjectUtil.isNotEmpty(envDeviceOther)){
+            envDeviceOther.setChipStatus(Integer.parseInt(status));
+            Date uploadDate = DateUtil.parse(time, "yyyyMMddHHmmss");
+            envDeviceOther.setUpdateTime(uploadDate);
+        }else {
+            log.info("湿帘设备为空");
+        }
+    }
+
+    @Override
+    public void savePenWuStatus(String[] dataArray) {
+        //hm+1001+62+1+20230408175711+5+end
+        String deviceCode = dataArray[1];
+        //0关闭  1开启
+        String status = dataArray[3];
+        String time = dataArray[4];
+        String chipId = deviceCode+"134";
+        EnvDeviceOther envDeviceOther = envDeviceOtherService.getOne(new QueryWrapper<EnvDeviceOther>().eq("chip_code", chipId));
+        if (ObjectUtil.isNotEmpty(envDeviceOther)){
+            envDeviceOther.setChipStatus(Integer.parseInt(status));
+            Date uploadDate = DateUtil.parse(time, "yyyyMMddHHmmss");
+            envDeviceOther.setUpdateTime(uploadDate);
+        }else {
+            log.info("喷雾设备为空");
+        }
+    }
+
+    @Override
+    public void saveDayAgePeiZhi(String[] dataArray) {
+        //hm+0+81+value+20230408172352+3+end
+        //{   "days_temp_cfg":        {               "level":        1,              "days": 5,              "target_temp":  320     }}
+        String deviceCode = dataArray[1];
+        String originalValue = dataArray[3];
+        String time = dataArray[4];
+        EnvDayagePeizhi envDayagePeizhi =  new EnvDayagePeizhi();
+        //解析
+        JSONObject jsonObject = JSONUtil.parseObj(originalValue);
+        String days_temp_cfg = jsonObject.get("days_temp_cfg").toString();
+        JSONObject jsonObject1 = JSONUtil.parseObj(days_temp_cfg);
+        Integer level = (Integer)jsonObject1.get("level");
+        Integer days = (Integer)jsonObject1.get("days");
+        Integer targetTemp = (Integer)jsonObject1.get("target_temp");
+        //保存
+        envDayagePeizhi.setDays(days);
+        envDayagePeizhi.setDeviceCode(deviceCode);
+        envDayagePeizhi.setLevelDayage(level);
+        envDayagePeizhi.setDeployName(time);
+        //将引号转为 \"
+        envDayagePeizhi.setOriginalValue(days_temp_cfg.replaceAll("\"","\\\\\""));
+        BigDecimal bigDecimal = new BigDecimal(targetTemp);
+        BigDecimal tempValue = new BigDecimal(0);
+        if (bigDecimal.intValue() != 0){
+            tempValue =bigDecimal.divide(new BigDecimal(10),1,BigDecimal.ROUND_HALF_UP);
+        }
+        envDayagePeizhi.setTargetTemp(tempValue);
+        envDayagePeizhi.setTimeDayage(DateUtil.parse(time, "yyyyMMddHHmmss"));
+        envDayagePeizhiService.save(envDayagePeizhi);
+    }
+
+    @Override
+    public void saveFengPeiZhi(String[] dataArray) {
+        //hm+0+81+value+20230408172352+3+end
+        //{   "air_fans_cfg": {               "level":        8,              "temp_diff":    0,              "fan_enable":   255,            "cycle_mode":   255,            "run_gap":    65535,          "stop_gap":     65535,          "var_fan_enable":       255,            "speed":        255,            "fans_ctrl":    16383,          "var_fans_ctrl":        1       }}
+        String deviceCode = dataArray[1];
+        String originalValue = dataArray[3];
+        String time = dataArray[4];
+        EnvFengPeizhi envDayagePeizhi =  new EnvFengPeizhi();
+        //解析
+        JSONObject jsonObject = JSONUtil.parseObj(originalValue);
+        String air_fans_cfg = jsonObject.get("air_fans_cfg").toString();
+        JSONObject jsonObject1 = JSONUtil.parseObj(air_fans_cfg);
+
+        Integer level = (Integer)jsonObject1.get("level");
+        Integer tempDiff = (Integer)jsonObject1.get("temp_diff");
+        Integer fanEnable = (Integer)jsonObject1.get("fan_enable");
+        Integer cycleMode = (Integer)jsonObject1.get("cycle_mode");
+        Integer runGap = (Integer)jsonObject1.get("run_gap");
+        Integer stopGap = (Integer)jsonObject1.get("stop_gap");
+        Integer varFanEnable = (Integer)jsonObject1.get("var_fan_enable");
+        Integer speed = (Integer)jsonObject1.get("speed");
+        Integer fansCtrl = (Integer)jsonObject1.get("fans_ctrl");
+        Integer varFansCtrl = (Integer)jsonObject1.get("var_fans_ctrl");
+        //保存
+        envDayagePeizhi.setLevelFeng(level);
+        envDayagePeizhi.setFanEnable(fanEnable);
+        envDayagePeizhi.setCycleMode(cycleMode);
+        envDayagePeizhi.setRunGap(runGap);
+        envDayagePeizhi.setStopGap(stopGap);
+        envDayagePeizhi.setVarFanEnable(varFanEnable);
+        envDayagePeizhi.setSpeed(speed);
+
+        String s =Integer.toBinaryString(fansCtrl);
+        long fanNum = envDeviceFanService.count(new QueryWrapper<EnvDeviceFan>().eq("device_code", deviceCode));
+        String str = getStr(s,fanNum);
+        envDayagePeizhi.setFansCtrl(str);
+        envDayagePeizhi.setVarFansCtrl(varFansCtrl);
+        BigDecimal bigDecimal = new BigDecimal(tempDiff);
+        BigDecimal tempValue = new BigDecimal(0);
+        if (bigDecimal.intValue() != 0){
+            tempValue =bigDecimal.divide(new BigDecimal(10),1,BigDecimal.ROUND_HALF_UP);
+        }
+        envDayagePeizhi.setTempDiff(tempValue);
+        envDayagePeizhi.setDeviceCode(deviceCode);
+        envDayagePeizhi.setDeployName(time);
+        envDayagePeizhi.setOriginalValue(air_fans_cfg.replaceAll("\"","\\\\\""));
+        envDayagePeizhi.setTimeFeng(DateUtil.parse(time, "yyyyMMddHHmmss"));
+        envFengPeizhiService.save(envDayagePeizhi);
+
+    }
 
     private String getChipId(String deviceCode, int type, String ordeNumber) {
         //温度

+ 5 - 5
huimv-env-input-water/pom.xml

@@ -49,11 +49,11 @@
             <artifactId>spring-boot-starter-amqp</artifactId>
         </dependency>
         <!-- redis -->
-        <dependency>
-            <groupId>cn.dustlight.captcha</groupId>
-            <artifactId>redis-store</artifactId>
-            <version>0.0.6</version>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>cn.dustlight.captcha</groupId>-->
+<!--            <artifactId>redis-store</artifactId>-->
+<!--            <version>0.0.6</version>-->
+<!--        </dependency>-->
         <dependency>
             <groupId>com.huimv</groupId>
             <artifactId>huimv-env-common</artifactId>

+ 1 - 1
huimv-env-input-water/src/main/java/com/huimv/env/input/HuimvEnvInputApplication.java

@@ -17,7 +17,7 @@ import org.springframework.context.annotation.ComponentScans;
  * @Author : ZhuoNing
  * @Create : 2020-12-25
  **/
-@ComponentScans({@ComponentScan("com.huimv.env.common.utils"), @ComponentScan("com.huimv.env.common.service")})
+@ComponentScans({@ComponentScan("com.huimv.env.common.utils"), @ComponentScan("com.huimv.env.common.service"),@ComponentScan("com.huimv.env.common.config")})
 @EntityScan(value = "com.huimv.env.common.entity")
 @MapperScan("com.huimv.env.common.mapper")
 @SpringBootApplication

+ 1 - 1
huimv-env-input-water/src/main/java/com/huimv/env/input/server/EnvInputServer.java

@@ -15,7 +15,7 @@ public class EnvInputServer {
     @Autowired
     private EnvInputServerHandler serverHandler;
     //监听端口
-    private int port = 3726;
+    private int port = 3728;
     //创建构造方法
     public EnvInputServer(){
     }

+ 25 - 20
huimv-env-input-water/src/main/java/com/huimv/env/input/server/EnvInputServerHandler.java

@@ -4,7 +4,6 @@ import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.huimv.env.common.entity.EnvElectricity;
-import com.huimv.env.common.entity.EnvWarning;
 import com.huimv.env.common.entity.EnvWater;
 import com.huimv.env.common.service.IEnvElectricityService;
 import com.huimv.env.common.service.IEnvWaterService;
@@ -66,7 +65,7 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
         String str = ModBusUtils.bytes2HexString(bytes);
         System.out.println("收到的数据:"+str);
         String cmd = saveWaterAndEle(str);
-        Thread.sleep(5*60*1000);
+        Thread.sleep(10*1000);
         System.out.println(cmd);
         channel.writeAndFlush(Unpooled.copiedBuffer(hexStr2Bytes(cmd)));
         super.channelRead(ctx, msg);
@@ -87,21 +86,27 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
         Date now = new Date();
         //水表
         if (str.startsWith("1D 03")){
-            System.out.println("水表");
-            int waterOrigValue = Integer.parseInt(val, 16);
-            BigDecimal bigDecimal = new BigDecimal(waterOrigValue);
-            EnvWater oldEnvWater = envWaterService.getOne(new QueryWrapper<EnvWater>().orderByDesc("id").last("limit 1"));
-            BigDecimal originalValue = oldEnvWater.getOriginalValue();
-            EnvWater envWater = new EnvWater();
-            envWater.setOriginalValue(bigDecimal);
-            int i = bigDecimal.compareTo(originalValue);
-            if (ObjectUtil.isNotEmpty(oldEnvWater) && i>0){
-                envWater.setHandleValue(bigDecimal.subtract(oldEnvWater.getOriginalValue()).divide(new BigDecimal(100)));
+            try {
+                System.out.println("水表");
+                int waterOrigValue = Integer.parseInt(val, 16);
+                BigDecimal bigDecimal = new BigDecimal(waterOrigValue);
+                EnvWater oldEnvWater = envWaterService.getOne(new QueryWrapper<EnvWater>().orderByDesc("id").last("limit 1"));
+                BigDecimal originalValue = oldEnvWater.getOriginalValue();
+                EnvWater envWater = new EnvWater();
+                envWater.setOriginalValue(bigDecimal);
+                int i = bigDecimal.compareTo(originalValue);
+                if (ObjectUtil.isNotEmpty(oldEnvWater) && i >= 0) {
+                    envWater.setHandleValue(bigDecimal.subtract(originalValue));
+                }else {
+                    envWater.setHandleValue(bigDecimal);
+                }
+                envWater.setUpdateTime(now);
+                envWater.setFarmId(27);
+                envWaterService.save(envWater);
+                cmd = "1C 04 01 00 00 02 73 BA";
+            }catch (Exception e){
+                System.out.println(e);
             }
-            envWater.setUpdateTime(now);
-            envWater.setFarmId(27);
-            envWaterService.save(envWater);
-            cmd = "1C 04 01 00 00 02 73 BA";
         }
         //电表
         if (str.startsWith("1C 04")){
@@ -115,8 +120,10 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
                     EnvElectricity envElectricity = new EnvElectricity();
                     envElectricity.setOriginalValue(bigDecimal);
                     int i = bigDecimal.compareTo(originalValue);
-                    if (ObjectUtil.isNotEmpty(oldEnvWater) && i>0){
-                        envElectricity.setHandleValue(bigDecimal.subtract(oldEnvWater.getOriginalValue()));
+                    if (ObjectUtil.isNotEmpty(oldEnvWater) && i>=0){
+                        envElectricity.setHandleValue(bigDecimal.subtract(originalValue));
+                    }else {
+                        envElectricity.setHandleValue(bigDecimal.subtract(bigDecimal));
                     }
                     envElectricity.setUpdateTime(now);
                     envElectricity.setFarmId(27);
@@ -129,8 +136,6 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
     }
 
 
-
-
     private Integer countWeight(String[] s) {
         int count = 48;
         return (Integer.parseInt(s[8], 16) -count)

+ 10 - 10
huimv-env-input-water/src/main/resources/application-prod.yml

@@ -1,5 +1,5 @@
 server:
-  port: 8091
+  port: 8094
 
 spring:
   application:
@@ -41,15 +41,15 @@ spring:
     publisher-returns: true
 
   #redis
-  redis:
-    host: 122.112.224.199
-    port: 6379
-    password: hm123456
-
-  data:
-    redis:
-      repositories:
-        enabled: false
+#  redis:
+#    host: 122.112.224.199
+#    port: 6379
+#    password: hm123456
+#
+#  data:
+#    redis:
+#      repositories:
+#        enabled: false
 
   #是否缓存空值
   cache:

+ 1 - 1
huimv-env-input/src/main/java/com/huimv/env/input/HuimvEnvInputApplication.java

@@ -10,7 +10,7 @@ import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.ComponentScans;
 import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
 
-@ComponentScans({@ComponentScan("com.huimv.env.common.utils"), @ComponentScan("com.huimv.env.common.service")})
+@ComponentScans({@ComponentScan("com.huimv.env.common.utils"), @ComponentScan("com.huimv.env.common.service"),@ComponentScan("com.huimv.env.common.config")})
 @EntityScan(value = "com.huimv.env.common.entity")
 @MapperScan("com.huimv.env.common.mapper")
 @SpringBootApplication

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

@@ -128,4 +128,61 @@ public class TopicRabbitMQConfig {
     Binding bindingWarningExchangeMessage() {
         return BindingBuilder.bind(warningQueue()).to(warningExchange()).with(Const.ROUTING_KEY_ENV_WARNING);
     }
+
+    //湿帘状态
+    @Bean
+    public Queue shilianStatusQueue() {
+        return new Queue(Const.QUEUE_ENV_SHILIAN_STATUS);
+    }
+    @Bean
+    TopicExchange shilianStatusExchange() {
+        return new TopicExchange(Const.EXCHANGE_ENV_SHILIAN_STATUS);
+    }
+    @Bean
+    Binding bindingshilianStatusExchangeMessage() {
+        return BindingBuilder.bind(shilianStatusQueue()).to(shilianStatusExchange()).with(Const.ROUTING_KEY_ENV_SHILIAN_STATUS);
+    }
+
+    //喷雾状态
+    @Bean
+    public Queue penwuStatusQueue() {
+        return new Queue(Const.QUEUE_ENV_PENWU_STATUS);
+    }
+    @Bean
+    TopicExchange penwuStatusExchange() {
+        return new TopicExchange(Const.EXCHANGE_ENV_PENWU_STATUS);
+    }
+    @Bean
+    Binding bindingpenwuStatusExchangeMessage() {
+        return BindingBuilder.bind(penwuStatusQueue()).to(penwuStatusExchange()).with(Const.ROUTING_KEY_ENV_PENWU_STATUS);
+    }
+
+    //日龄温度曲线配置
+    @Bean
+    public Queue dayagePeizhiQueue() {
+        return new Queue(Const.QUEUE_ENV_DAYAGE_PEIZHI);
+    }
+    @Bean
+    TopicExchange dayagePeizhiExchange() {
+        return new TopicExchange(Const.EXCHANGE_ENV_DAYAGE_PEIZHI);
+    }
+    @Bean
+    Binding bindingdayagePeizhiExchangeMessage() {
+        return BindingBuilder.bind(dayagePeizhiQueue()).to(dayagePeizhiExchange()).with(Const.ROUTING_KEY_ENV_DAYAGE_PEIZHI);
+    }
+
+    //风机状态
+    @Bean
+    public Queue fengPeizhiQueue() {
+        return new Queue(Const.QUEUE_ENV_FENG_PEIZHI);
+    }
+    @Bean
+    TopicExchange fengPeizhiExchange() {
+        return new TopicExchange(Const.EXCHANGE_ENV_FENG_PEIZHI);
+    }
+    @Bean
+    Binding bindingfengPeizhiExchangeMessage() {
+        return BindingBuilder.bind(fengPeizhiQueue()).to(fengPeizhiExchange()).with(Const.ROUTING_KEY_ENV_FENG_PEIZHI);
+    }
+
 }

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

@@ -80,6 +80,13 @@ public class Producer {
         return "ok";
     }
 
+    public String uploadFengStatus(String askText) {
+        Map map = new HashMap();
+        map.put("askText",askText);
+        rabbitTemplate.convertAndSend(Const.EXCHANGE_ENV_FENG_STATUS, Const.ROUTING_KEY_ENV_FENG_STATUS, map);
+        return "ok";
+    }
+
     public String  senTargetnTemp(String askText) {
         Map map = new HashMap();
         map.put("askText",askText);
@@ -87,4 +94,32 @@ public class Producer {
         return "ok";
 
     }
+
+    public String sendShiLianStatus(String askText) {
+        Map map = new HashMap();
+        map.put("askText",askText);
+        rabbitTemplate.convertAndSend(Const.EXCHANGE_ENV_SHILIAN_STATUS, Const.ROUTING_KEY_ENV_SHILIAN_STATUS, map);
+        return "ok";
+    }
+
+    public String sendPengWuStatus(String askText) {
+        Map map = new HashMap();
+        map.put("askText",askText);
+        rabbitTemplate.convertAndSend(Const.EXCHANGE_ENV_PENWU_STATUS, Const.ROUTING_KEY_ENV_PENWU_STATUS, map);
+        return "ok";
+    }
+    public String sendDayAgePeiZhi(String askText) {
+        Map map = new HashMap();
+        map.put("askText",askText);
+        rabbitTemplate.convertAndSend(Const.EXCHANGE_ENV_DAYAGE_PEIZHI, Const.ROUTING_KEY_ENV_DAYAGE_PEIZHI, map);
+        return "ok";
+    }
+    public String sendTongFengPeiZhi(String askText) {
+        Map map = new HashMap();
+        map.put("askText",askText);
+        rabbitTemplate.convertAndSend(Const.EXCHANGE_ENV_FENG_PEIZHI, Const.ROUTING_KEY_ENV_FENG_PEIZHI, map);
+        return "ok";
+    }
+
+
 }

+ 116 - 1
huimv-env-input/src/main/java/com/huimv/env/input/server/EnvInputServerHandler.java

@@ -1,6 +1,8 @@
 package com.huimv.env.input.server;
 
+import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSONArray;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.huimv.env.common.utils.RegexUtil;
 import com.huimv.env.input.producer.Producer;
 import com.huimv.env.input.service.ICommandProcessorService;
@@ -172,12 +174,114 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
                 //报警
                 uploadWarning(askText, idCode, ctx);
                 break;
+            case "61":
+                //风机状态
+                uploadFengStatus(askText, idCode, ctx);
+                break;
+            case "62":
+                //湿帘状态
+                uploadShiLianStatus(askText, idCode, ctx);
+                break;
+            case "63":
+                //喷雾状态
+                uploadPengWuStatus(askText, idCode, ctx);
+                break;
+            case "81":
+                //日龄配置
+                uploadDayAgePeizhiuStatus(askText, idCode, ctx);
+                break;
+            case "82":
+                //通风级别配置
+                uploadTongFengPeizhiuStatus(askText, idCode, ctx);
+                break;
+            case "91":
+                //通获取日龄配置
+                uploadGainDayAgePeizhiuStatus(dataArray,askText, idCode, ctx);
+                break;
+            case "92":
+                //通风级别配置
+                uploadGainTongFengPeizhiuStatus(dataArray,askText, idCode, ctx);
+                break;
             default:
                 System.out.println("==>未知命令");
                 log.error(">>当前数据为非法数据-未知命令>>" + askText);
         }
     }
 
+    private void uploadGainDayAgePeizhiuStatus(String[] dataArray,String askText, String idCode, ChannelHandlerContext ctx) {
+
+        String originalValue =cmdProService.getDayAgePeiZhi(dataArray,idCode);
+        if (StringUtils.isNotBlank(originalValue)){
+            String answerText = "hm+91+0+"+originalValue+"+end";
+            log.info(">>获取日龄配置上传请求-应答数据>>" + answerText);
+            answerCmd(answerText, ctx);
+        }else {
+            log.info("该设备没有设置日龄配置>>" );
+        }
+
+    }
+
+    private void uploadGainTongFengPeizhiuStatus(String[] dataArray,String askText, String idCode, ChannelHandlerContext ctx) {
+
+        String originalValue = cmdProService.getFengPeiZhi(dataArray);
+        if (StringUtils.isNotBlank(originalValue)) {
+            String answerText = "hm+92+0+" + originalValue + "+end";
+            log.info(">>获取通风等级配置上传请求-应答数据>>" + answerText);
+            answerCmd(answerText, ctx);
+        } else {
+            log.info("该设备没有设置获取通风等级配置>>");
+        }
+    }
+
+
+    //风机配置
+    private void uploadTongFengPeizhiuStatus(String askText, String idCode, ChannelHandlerContext ctx) {
+        String answerText = "hm+82+0+2+end";
+        answerCmd(answerText, ctx);
+        if (!cmdProService.isEffectiveDevice(idCode)) {
+            System.out.println("##通风配置上传请求-未注册设备 idCode=" + idCode);
+            return;
+        }
+        log.info(">>通风配置上传请求-应答数据>>" + answerText);
+        producer.sendTongFengPeiZhi(askText);
+    }
+    //日龄温度配置上传
+    private void uploadDayAgePeizhiuStatus(String askText, String idCode, ChannelHandlerContext ctx) {
+        String answerText = "hm+81+0+2+end";
+        answerCmd(answerText, ctx);
+        if (!cmdProService.isEffectiveDevice(idCode)) {
+            System.out.println("##日龄温度上传请求-未注册设备 idCode=" + idCode);
+            return;
+        }
+        log.info(">>日龄温度上传请求-应答数据>>" + answerText);
+        producer.sendDayAgePeiZhi(askText);
+    }
+
+    //喷雾
+    private void uploadPengWuStatus(String askText, String idCode, ChannelHandlerContext ctx) {
+        if (!cmdProService.isEffectiveDevice(idCode)) {
+            System.out.println("##喷雾状态上传请求-未注册设备 idCode=" + idCode);
+            return;
+        }
+        String answerText = "hm+63+0+2+end";
+        log.info(">>喷雾状态上传请求-应答数据>>" + answerText);
+        answerCmd(answerText, ctx);
+        producer.sendPengWuStatus(askText);
+    }
+
+    //湿帘
+    private void uploadShiLianStatus(String askText, String idCode, ChannelHandlerContext ctx) {
+        if (!cmdProService.isEffectiveDevice(idCode)) {
+            System.out.println("##湿帘状态上传请求-未注册设备 idCode=" + idCode);
+            return;
+        }
+        String answerText = "hm+62+0+2+end";
+        log.info(">>湿帘状态上传请求-应答数据>>" + answerText);
+        answerCmd(answerText, ctx);
+        //湿帘状态请求到消息队列
+        producer.sendShiLianStatus(askText);
+    }
+
     //获取远程设备编码
     private void getDeviceCode(String askText, String idCode, ChannelHandlerContext ctx) {
         System.out.println("==>获取远程设备编码请求:" + askText.trim());
@@ -252,7 +356,7 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
     }
     private void uploadTargetnTemp(String askText, String idCode, ChannelHandlerContext ctx) {
         if (!cmdProService.isEffectiveDevice(idCode)) {
-            System.out.println("##舍内温度上传请求-未注册设备 idCode=" + idCode);
+            System.out.println("##目标温度上传请求-未注册设备 idCode=" + idCode);
             return;
         }
         String answerText = "hm+7+0+4+end";
@@ -297,6 +401,17 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
         //发送湿度请求到消息队列
         producer.sendWarning(askText);
     }
+    private void uploadFengStatus(String askText, String idCode, ChannelHandlerContext ctx) {
+        if (!cmdProService.isEffectiveDevice(idCode)) {
+            System.out.println("##风机状态上传请求-未注册设备 idCode=" + idCode);
+            return;
+        }
+        String answerText = "hm+61+0+2+end";
+        log.info(">>风机状态上传请求-应答数据>>" + answerText);
+        answerCmd(answerText, ctx);
+        //发送风机状态请求到消息队列
+        producer.uploadFengStatus(askText);
+    }
 
     //应答
     public void answerCmd(String answerText, ChannelHandlerContext ctx) {

+ 4 - 0
huimv-env-input/src/main/java/com/huimv/env/input/service/ICommandProcessorService.java

@@ -7,4 +7,8 @@ public interface ICommandProcessorService {
     boolean isEffectiveDevice(String idCode);
 
     void updateStatus(String idCode);
+
+    String getDayAgePeiZhi(String[] dataArray,String idCode);
+
+    String getFengPeiZhi(String[] dataArray);
 }

+ 17 - 0
huimv-env-input/src/main/java/com/huimv/env/input/service/impl/CommandProcessorServiceImpl.java

@@ -1,7 +1,9 @@
 package com.huimv.env.input.service.impl;
 
 import com.huimv.env.common.service.IBaseFarmService;
+import com.huimv.env.common.service.IEnvDayagePeizhiService;
 import com.huimv.env.common.service.IEnvDeviceService;
+import com.huimv.env.common.service.IEnvFengPeizhiService;
 import com.huimv.env.input.service.ICommandProcessorService;
 //import com.huimv.env.common.service.IDeviceRegisterService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -16,6 +18,11 @@ public class CommandProcessorServiceImpl implements ICommandProcessorService {
     @Autowired
     private IEnvDeviceService envDeviceService;
 
+    @Autowired
+    private IEnvDayagePeizhiService envDayagePeizhiService;
+    @Autowired
+    private IEnvFengPeizhiService envFengPeizhiService;
+
     @Override
     public String getDeviceCodeByChipId(String idCode) {
         //--{读取设备编码}
@@ -31,4 +38,14 @@ public class CommandProcessorServiceImpl implements ICommandProcessorService {
     public void updateStatus(String idCode) {
         envDeviceService.updateStatus(idCode);
     }
+
+    @Override
+    public String getDayAgePeiZhi(String[] dataArray,String idCode) {
+        return envDayagePeizhiService.getDayAgePeiZhi(dataArray,idCode);
+    }
+
+    @Override
+    public String getFengPeiZhi(String[] dataArray) {
+        return envFengPeizhiService.getFengPeiZhi(dataArray);
+    }
 }