Ver Fonte

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	huimv-env-platform/huimv-env-device/src/main/resources/application-prod.yml
#	huimv-env-platform/huimv-env-input/src/main/resources/application-prod.yml
523096025 há 2 anos atrás
pai
commit
095aba364e
24 ficheiros alterados com 462 adições e 84 exclusões
  1. 0 1
      huimv-env-platform/.gitignore
  2. 5 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/entity/EnvSprayConfigEntity.java
  3. 4 2
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/entity/EnvSprayTimeEntity.java
  4. 8 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/ISprayConfigService.java
  5. 12 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/ISprayStatusService.java
  6. 8 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/ISprayTimeService.java
  7. 6 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/ITempThresholdService.java
  8. 44 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/impl/SprayConfigServiceImpl.java
  9. 69 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/impl/SprayStatusServiceImpl.java
  10. 84 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/impl/SprayTimeServiceImpl.java
  11. 62 0
      huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/impl/TempThresholdServiceImpl.java
  12. 4 4
      huimv-env-platform/huimv-env-device/pom.xml
  13. 17 7
      huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/listener/DeviceListener.java
  14. 3 0
      huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/service/IDeviceService.java
  15. 0 1
      huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/service/Show.java
  16. 20 15
      huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/service/impl/DeviceServiceImpl.java
  17. 28 4
      huimv-env-platform/huimv-env-device/src/main/resources/application-prod.yml
  18. 1 1
      huimv-env-platform/huimv-env-device/src/main/resources/application.properties
  19. 4 0
      huimv-env-platform/huimv-env-input/pom.xml
  20. 44 8
      huimv-env-platform/huimv-env-input/src/main/java/com/huimv/env/input/server/EnvInputServerHandler.java
  21. 27 27
      huimv-env-platform/huimv-env-input/src/main/resources/application-dev.yml
  22. 2 2
      huimv-env-platform/huimv-env-input/src/main/resources/application-prod.yml
  23. 10 10
      huimv-env-platform/huimv-env-input/src/main/resources/application.properties
  24. 0 2
      huimv-env-platform/pom.xml

+ 0 - 1
huimv-env-platform/.gitignore

@@ -32,7 +32,6 @@ build/
 ### VS Code ###
 .vscode/
 
-.idea
 .mvn
 huimv-eartag2-platform.iml
 mvnw

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

@@ -38,4 +38,9 @@ public class EnvSprayConfigEntity implements Serializable {
     @Column(name = "farm_code")
     private String farmCode;
 
+    @Column(name = "open_status")
+    private Integer openStatus;
+
+    @Column(name = "add_time")
+    private Timestamp addTime;
 }

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

@@ -5,7 +5,6 @@ import lombok.experimental.Accessors;
 
 import javax.persistence.*;
 import java.io.Serializable;
-import java.sql.Timestamp;
 
 @Entity
 @Data
@@ -24,7 +23,10 @@ public class EnvSprayTimeEntity implements Serializable {
     private String deviceCode;
 
     @Column(name = "open_time")
-    private Timestamp openTime;
+    private String openTime;
+
+    @Column(name = "close_time")
+    private String closeTime;
 
     @Column(name = "duration")
     private Integer duration;

+ 8 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/ISprayConfigService.java

@@ -0,0 +1,8 @@
+package com.huimv.env.common.service;
+
+import com.alibaba.fastjson.JSONObject;
+
+public interface ISprayConfigService {
+    //
+    JSONObject getSprayConfigByDeviceCode(String deviceCode,String farmCod);
+}

+ 12 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/ISprayStatusService.java

@@ -0,0 +1,12 @@
+package com.huimv.env.common.service;
+
+import com.alibaba.fastjson.JSONObject;
+import com.huimv.env.common.dao.entity.EnvDeviceRegisterEntity;
+
+import java.sql.Date;
+import java.sql.Timestamp;
+
+public interface ISprayStatusService {
+    //
+    void saveSprayStatusFlow(JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode);
+}

+ 8 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/ISprayTimeService.java

@@ -0,0 +1,8 @@
+package com.huimv.env.common.service;
+
+import com.alibaba.fastjson.JSONObject;
+
+public interface ISprayTimeService {
+    //
+    String getSprayTimeByDeviceCode(String deviceCode);
+}

+ 6 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/ITempThresholdService.java

@@ -0,0 +1,6 @@
+package com.huimv.env.common.service;
+
+public interface ITempThresholdService {
+    //
+    String getTempThresholdByDeviceCode(String deviceCode);
+}

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

@@ -0,0 +1,44 @@
+package com.huimv.env.common.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.huimv.env.common.dao.entity.EnvDeviceRegisterEntity;
+import com.huimv.env.common.dao.entity.EnvSprayConfigEntity;
+import com.huimv.env.common.dao.repo.EnvSprayConfigEntityRepo;
+import com.huimv.env.common.service.ISprayConfigService;
+import com.huimv.env.common.service.ISprayStatusService;
+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.Optional;
+
+/**
+ * @Project : huimv.shiwan
+ * @Package : com.huimv.biosafety.uface.controller
+ * @Description : TODO
+ * @Version : 1.0
+ * @Author : ZhuoNing
+ * @Create : 2020-12-25
+ **/
+@Service
+public class SprayConfigServiceImpl implements ISprayConfigService {
+    @Autowired
+    private EnvSprayConfigEntityRepo sprayConfigEntityRepo;
+
+    @Override
+    public JSONObject getSprayConfigByDeviceCode(String deviceCode,String farmCode) {
+        EnvSprayConfigEntity envSprayConfigEntity = new EnvSprayConfigEntity();
+        envSprayConfigEntity.setDeviceCode(deviceCode);
+        envSprayConfigEntity.setFarmCode(farmCode);
+        Example<EnvSprayConfigEntity> example = Example.of(envSprayConfigEntity);
+        Optional<EnvSprayConfigEntity> option =  sprayConfigEntityRepo.findOne(example);
+        if(!option.isPresent()){
+            return null;
+        }else{
+            return JSONObject.parseObject(JSON.toJSONString(option.get()));
+        }
+    }
+}

+ 69 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/impl/SprayStatusServiceImpl.java

@@ -0,0 +1,69 @@
+package com.huimv.env.common.service.impl;
+
+import com.alibaba.fastjson.JSONObject;
+import com.huimv.env.common.dao.entity.EnvDeviceRegisterEntity;
+import com.huimv.env.common.dao.entity.EnvSprayConfigEntity;
+import com.huimv.env.common.dao.entity.EnvSprayStatusEntity;
+import com.huimv.env.common.dao.repo.EnvSprayConfigEntityRepo;
+import com.huimv.env.common.dao.repo.EnvSprayStatusEntityRepo;
+import com.huimv.env.common.service.ISprayStatusService;
+import com.huimv.env.common.utils.DateUtil;
+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.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 SprayStatusServiceImpl implements ISprayStatusService {
+    @Autowired
+    private EnvSprayStatusEntityRepo sprayStatusEntityRepo;
+    @Autowired
+    private EnvSprayConfigEntityRepo envSprayConfigEntityRepo;
+    @Autowired
+    private DateUtil dateUtil;
+
+    @Override
+    public void saveSprayStatusFlow(JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode) {
+        EnvSprayStatusEntity envSprayStatusEntity = new EnvSprayStatusEntity();
+        envSprayStatusEntity.setDeviceCode(dataJo.getString("deviceCode"));
+        envSprayStatusEntity.setDeviceStatus(dataJo.getInteger("sprayStatus"));
+        envSprayStatusEntity.setAskTime(dateUtil.handleAskTime(dataJo.getString("askTime")));
+        envSprayStatusEntity.setAddTime(nowTimestamp);
+        envSprayStatusEntity.setAddDate(todayDate);
+        envSprayStatusEntity.setPigpenId(envDeviceRegisterEntity.getPigpenId());
+        envSprayStatusEntity.setUnitId(envDeviceRegisterEntity.getUnitId());
+        envSprayStatusEntity.setFarmCode(farmCode);
+        sprayStatusEntityRepo.saveAndFlush(envSprayStatusEntity);
+        log.info("保存喷雾设备状态信息流水.");
+        //更新设备状态
+        EnvSprayConfigEntity envSprayConfigEntity = new EnvSprayConfigEntity();
+        envSprayConfigEntity.setDeviceCode(dataJo.getString("deviceCode"));
+        envSprayConfigEntity.setFarmCode(farmCode);
+        Example<EnvSprayConfigEntity> example = Example.of(envSprayConfigEntity);
+        Optional<EnvSprayConfigEntity> optional = envSprayConfigEntityRepo.findOne(example);
+        if(!optional.isPresent()){
+            log.error("该设备["+dataJo.getString("deviceCode")+"]未配置属性信息.");
+            return;
+        }else{
+            EnvSprayConfigEntity queryEnvSprayConfigEntity = optional.get();
+            queryEnvSprayConfigEntity.setOpenStatus(dataJo.getInteger("sprayStatus"));
+            queryEnvSprayConfigEntity.setAddTime(nowTimestamp);
+            envSprayConfigEntityRepo.saveAndFlush(queryEnvSprayConfigEntity);
+            log.info("更新喷雾设备状态信息.");
+        }
+
+    }
+}

+ 84 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/impl/SprayTimeServiceImpl.java

@@ -0,0 +1,84 @@
+package com.huimv.env.common.service.impl;
+
+import com.huimv.env.common.dao.entity.EnvSprayTimeEntity;
+import com.huimv.env.common.dao.repo.EnvSprayTimeEntityRepo;
+import com.huimv.env.common.service.ISprayTimeService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Example;
+import org.springframework.stereotype.Service;
+
+import javax.swing.text.html.Option;
+import javax.xml.ws.ServiceMode;
+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 SprayTimeServiceImpl implements ISprayTimeService {
+    @Autowired
+    private EnvSprayTimeEntityRepo envSprayTimeEntityRepo;
+
+    @Override
+    public String getSprayTimeByDeviceCode(String deviceCode) {
+        EnvSprayTimeEntity envSprayTimeEntity = new EnvSprayTimeEntity();
+        envSprayTimeEntity.setDeviceCode(deviceCode);
+        Example<EnvSprayTimeEntity> example = Example.of(envSprayTimeEntity);
+        List<EnvSprayTimeEntity> envSprayTimeEntityList = envSprayTimeEntityRepo.findAll(example);
+        StringBuilder timeBuilder = new StringBuilder();
+        int a=0;
+        for(EnvSprayTimeEntity sprayTimeEntity:envSprayTimeEntityList){
+            //开始时间(分秒)
+            if(sprayTimeEntity.getOpenTime() != null && sprayTimeEntity.getOpenTime().trim().length() > 0){
+                if(timeBuilder.length()>0){
+                    timeBuilder.append(",");
+                }
+                String[] sprayTimeArray = sprayTimeEntity.getOpenTime().split(":");
+                timeBuilder.append(sprayTimeArray[0]+sprayTimeArray[1]);
+            }else{
+                log.error("开始时间[open_time]为null或为空.");
+            }
+            //持续时间
+//            if(sprayTimeEntity.getDuration() != null && sprayTimeEntity.getDuration() > 0){
+//                if(timeBuilder.length()>0){
+//                    timeBuilder.append(",");
+//                }
+//                timeBuilder.append(sprayTimeEntity.getDuration());
+//            }else{
+//                log.error("持续时间为null或为空.");
+//            }
+            //结束时间
+            if(sprayTimeEntity.getCloseTime()!= null && sprayTimeEntity.getCloseTime().trim().length() > 0){
+                if(timeBuilder.length()>0){
+                    timeBuilder.append(",");
+                }
+                String[] closeTimeArray = sprayTimeEntity.getCloseTime().split(":");
+                timeBuilder.append(closeTimeArray[0]+closeTimeArray[1]);
+            }else{
+                log.error("结束时间[close_time]为null或为空.");
+            }
+            //开关时长
+            if(sprayTimeEntity.getOpenMode() != null && sprayTimeEntity.getOpenMode().trim().length() > 0){
+                if(timeBuilder.length()>0){
+                    timeBuilder.append(",");
+                }
+                String openMode = sprayTimeEntity.getOpenMode();
+                String[] openModeArray = openMode.split(",");
+                //分钟-->秒钟
+                timeBuilder.append(String.valueOf(Integer.parseInt(openModeArray[0])*60)+","+String.valueOf(Integer.parseInt(openModeArray[1])*60));
+            }else{
+                log.error("开始时长为null或为空.");
+            }
+        }
+        System.out.println("timeBuilder.toString()="+timeBuilder.toString());
+        return timeBuilder.toString();
+    }
+}

+ 62 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/impl/TempThresholdServiceImpl.java

@@ -0,0 +1,62 @@
+package com.huimv.env.common.service.impl;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.env.common.dao.entity.EnvDeviceRegisterEntity;
+import com.huimv.env.common.dao.entity.EnvSprayTimeEntity;
+import com.huimv.env.common.dao.entity.EnvTempThresholdEntity;
+import com.huimv.env.common.dao.repo.EnvTempThresholdEntityRepo;
+import com.huimv.env.common.service.IDeviceRegisterService;
+import com.huimv.env.common.service.ITempThresholdService;
+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.math.BigDecimal;
+import java.sql.Timestamp;
+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 TempThresholdServiceImpl implements ITempThresholdService {
+    @Autowired
+    private EnvTempThresholdEntityRepo envTempThresholdEntityRepo;
+    @Autowired
+    private IDeviceRegisterService deviceRegisterService;
+
+    @Override
+    public String getTempThresholdByDeviceCode(String deviceCode){
+        //读取设备注册信息
+//        EnvDeviceRegisterEntity envDeviceRegisterEntity = deviceRegisterService.getDeviceRegisterByDeviceCode(deviceCode);
+//        if (envDeviceRegisterEntity == null) {
+//            log.error("该设备[" + deviceCode + "]未注册.");
+//            return "0";
+//        }else{
+//            java.sql.Date todayDate = new java.sql.Date(new java.util.Date().getTime());
+//            Timestamp nowTimestamp = new Timestamp(new java.util.Date().getTime());
+//            String farmCode = envDeviceRegisterEntity.getFarmCode();
+
+            EnvTempThresholdEntity envTempThresholdEntity = new EnvTempThresholdEntity();
+            envTempThresholdEntity.setDeviceCode(deviceCode);
+//            envTempThresholdEntity.setFarmCode(farmCode);
+            Example<EnvTempThresholdEntity> example = Example.of(envTempThresholdEntity);
+            Optional<EnvTempThresholdEntity> optional = envTempThresholdEntityRepo.findOne(example);
+            if(!optional.isPresent()){
+                log.error("deviceCode["+deviceCode+"]高温低温阈值设置记录不存在;");
+                return "0";
+            }else{
+                EnvTempThresholdEntity tempThresholdEntity = optional.get();
+                return tempThresholdEntity.getHighTemp().multiply(new BigDecimal(10)).intValue()+"+"+tempThresholdEntity.getLowTemp().multiply(new BigDecimal(10)).intValue();
+            }
+//        }
+    }
+}

+ 4 - 4
huimv-env-platform/huimv-env-device/pom.xml

@@ -52,10 +52,10 @@
             <artifactId>spring-boot-starter-amqp</artifactId>
         </dependency>
         <!-- redis -->
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-data-redis</artifactId>
-        </dependency>
+<!--        <dependency>-->
+<!--            <groupId>org.springframework.boot</groupId>-->
+<!--            <artifactId>spring-boot-starter-data-redis</artifactId>-->
+<!--        </dependency>-->
         <!-- actuator -->
         <dependency>
             <groupId>org.springframework.boot</groupId>

+ 17 - 7
huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/listener/DeviceListener.java

@@ -11,6 +11,7 @@ import com.huimv.env.common.dao.repo.EnvTempEntityRepo;
 import com.huimv.env.common.service.IDeviceRegisterService;
 import com.huimv.env.common.service.IPushMessageService;
 import com.huimv.env.common.service.ISensorRegisterService;
+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;
@@ -55,6 +56,8 @@ public class DeviceListener {
     private ICommandParserService cmdParserService;
     @Autowired
     private IPushMessageService pushMessageService;
+    @Autowired
+    private ISprayStatusService sprayStatusService;
 
     @Autowired
     private WebSocket webSocket;
@@ -145,13 +148,22 @@ public class DeviceListener {
 
     @RabbitListener(queues = Const.QUEUE_DEVICE_STATUS)
     @RabbitHandler
-    public void processDeviceStatus(Map RawMap) throws ParseException {
+    public void processSprayStatus(Map RawMap) throws ParseException {
         System.out.println(">>>>>>>>>>>>>>接收设备状态数据 RawMap>>" + RawMap.toString());
         String askText = RawMap.get("askText").toString();
-        JSONObject dataJo = deviceService.handleAskText(askText);
-        System.out.println("设备状态 1111111111111111111111111111 =" + dataJo);
-
-
+        JSONObject dataJo = deviceService.handleSprayStatusAskCmd(askText);
+        String deviceCode = dataJo.getString("deviceCode");
+        //读取设备注册信息
+        EnvDeviceRegisterEntity envDeviceRegisterEntity = deviceRegisterService.getDeviceRegisterByDeviceCode(deviceCode);
+        if(envDeviceRegisterEntity == null){
+            log.error("该设备[" + deviceCode + "]未注册.");
+            return;
+        }
+        java.sql.Date todayDate = new java.sql.Date(new java.util.Date().getTime());
+        Timestamp nowTimestamp = new Timestamp(new java.util.Date().getTime());
+        String farmCode = envDeviceRegisterEntity.getFarmCode();
+        //{保存喷雾状态流水}
+        sprayStatusService.saveSprayStatusFlow(dataJo,envDeviceRegisterEntity,nowTimestamp,todayDate,farmCode);
 
     }
 
@@ -162,7 +174,6 @@ public class DeviceListener {
         System.out.println(">>>>>>>>>>>>>>接收平台推送消息 RawMap>>" + RawMap.toString());
         String askText = RawMap.get("askText").toString();
         JSONObject dataJo = cmdParserService.handlePushMessageCmd(askText);
-        System.out.println("平台推送消息 2222222222222222222222222222222=" + dataJo);
         String deviceCode = dataJo.getString("deviceCode");
         //读取设备注册信息
         EnvDeviceRegisterEntity envDeviceRegisterEntity = deviceRegisterService.getDeviceRegisterByDeviceCode(deviceCode);
@@ -176,7 +187,6 @@ public class DeviceListener {
         webSocket.sendToUser("true,"+farmCode);
         //{}
         String messageContent = deviceService.getMessageContent(dataJo,envDeviceRegisterEntity);
-        System.out.println("messageContent="+messageContent);
         //{保存消息推送流水}
         pushMessageService.savePushMessageFlow(dataJo,messageContent,nowTimestamp,todayDate,farmCode);
     }

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

@@ -23,4 +23,7 @@ public interface IDeviceService {
 
     //
     String getMessageContent(JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity);
+
+    //
+    JSONObject handleSprayStatusAskCmd(String askText);
 }

+ 0 - 1
huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/service/Show.java

@@ -2,7 +2,6 @@ package com.huimv.env.device.service;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
-import org.junit.platform.commons.annotation.Testable;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 

+ 20 - 15
huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/service/impl/DeviceServiceImpl.java

@@ -15,6 +15,7 @@ import com.huimv.env.common.utils.MathUtil;
 import com.huimv.env.device.config.ConfigBean;
 import com.huimv.env.device.producer.Producer;
 import com.huimv.env.device.service.IDeviceService;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -31,6 +32,7 @@ import java.sql.Timestamp;
  * @Create : 2020-12-25
  **/
 @Service
+@Slf4j
 public class DeviceServiceImpl implements IDeviceService {
     @Autowired
     private EnvTempEntityRepo envTempEntityRepo;
@@ -140,25 +142,16 @@ public class DeviceServiceImpl implements IDeviceService {
     public String getMessageContent(JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity) {
         String act = configBean.getAct();
         String fault = configBean.getFault();
-        System.out.println("<< act="+act);
-        System.out.println("<< fault="+fault);
-        //获取栋舍
-        String pigpenName = pigpenService.getPigpenByDevice(dataJo.getString("deviceCode"));
-
-        //芯片ID
-        String chipId = envDeviceRegisterEntity.getChipId();
-
+        log.info("所有故障类型="+fault);
+        log.info("所有动作类型="+act);
         int faultSn = dataJo.getInteger("faultSn");
         int actType = dataJo.getInteger("actType");
-        System.out.println("<< faultSn="+faultSn);
-        System.out.println("<< actType="+actType);
         //
         String faultText = getFaultText(faultSn, fault);
-        System.out.println("<< faultText="+faultText);
-
+        log.info("当前故障="+faultText);
         //1:报警 2:恢复
         String actText = getActText(actType, act);
-        System.out.println("<< actText="+actText);
+        log.info("当前操作="+actText);
         String messageConent = "";
         if (actType == 1) {
             if (faultText.indexOf("报警") == -1) {
@@ -169,12 +162,24 @@ public class DeviceServiceImpl implements IDeviceService {
         } else {
             messageConent = faultText+"已"+actText;
         }
-        System.out.println("<< messageConent="+messageConent);
-
+        //获取栋舍
+        String pigpenName = pigpenService.getPigpenByDevice(dataJo.getString("deviceCode"));
+        //芯片ID
+        String chipId = envDeviceRegisterEntity.getChipId();
         //2栋的芯片ID[86178908]高温报警
         return "["+pigpenName+"]芯片ID为["+chipId+"]的设备提示:"+messageConent;
     }
 
+    @Override
+    public JSONObject handleSprayStatusAskCmd(String askText) {
+        String[] dataArray = askText.split("\\+");
+        JSONObject dataJo = new JSONObject();
+        dataJo.put("deviceCode",dataArray[1]);
+        dataJo.put("sprayStatus",dataArray[3]);
+        dataJo.put("askTime",dataArray[4]);
+        return dataJo;
+    }
+
     private String getActText(int actType, String act) {
         String[] actGroupArray = act.split(",");
         String actText = "";

+ 28 - 4
huimv-env-platform/huimv-env-device/src/main/resources/application-prod.yml

@@ -3,7 +3,7 @@ server:
 
 spring:
   application:
-    name: huimv-env-input
+    name: huimv-env-device
 
   datasource:
     url: jdbc:mysql://122.112.224.199:3306/huimv-env-platform?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
@@ -41,11 +41,35 @@ spring:
     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
+#  cache:
+#    redis:
+#      cache-null-values: false
 
 
 

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

@@ -1,4 +1,4 @@
-spring.profiles.active=dev
+spring.profiles.active=prod
 
 #\u5F00\u542F\u5065\u5EB7\u76D1\u63A7
 management.endpoints.web.exposure.include=*

+ 4 - 0
huimv-env-platform/huimv-env-input/pom.xml

@@ -84,6 +84,10 @@
             <groupId>cn.hutool</groupId>
             <artifactId>hutool-all</artifactId>
         </dependency>
+        <dependency>
+            <groupId>io.netty</groupId>
+            <artifactId>netty-all</artifactId>
+        </dependency>
         <!-- 一方包统一版本管理 -->
         <dependency>
             <groupId>com.huimv</groupId>

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

@@ -1,12 +1,19 @@
 package com.huimv.env.input.server;
 
 import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.huimv.env.common.dao.entity.EnvDeviceRegisterEntity;
+import com.huimv.env.common.service.IDeviceRegisterService;
+import com.huimv.env.common.service.ISprayConfigService;
+import com.huimv.env.common.service.ISprayTimeService;
+import com.huimv.env.common.service.ITempThresholdService;
 import com.huimv.env.common.utils.RegexUtil;
 import com.huimv.env.input.producer.Producer;
 import com.huimv.env.input.service.ICommandProcessorService;
 import com.huimv.env.input.utils.DateUtil2;
 import io.netty.buffer.ByteBuf;
 import io.netty.buffer.Unpooled;
+
 import io.netty.channel.ChannelHandler;
 import io.netty.channel.ChannelHandlerContext;
 import io.netty.channel.ChannelInboundHandlerAdapter;
@@ -20,6 +27,7 @@ import java.io.BufferedWriter;
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
+import java.sql.Timestamp;
 import java.text.ParseException;
 import java.util.HashMap;
 import java.util.Map;
@@ -47,6 +55,8 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
     @Autowired
     private Producer producer;
     private StringBuilder askTextSb = null;
+    @Autowired
+    private ITempThresholdService tempThresholdService;
 
     //
     public void appendClientAsk(String text) {
@@ -215,7 +225,8 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
             System.out.println("##高温,低温报警参数请求-未注册设备 idCode=" + idCode);
             return;
         }
-        String answerText = "hm+115+18+265+12+6+end";
+        String threshold = tempThresholdService.getTempThresholdByDeviceCode(idCode);
+        String answerText = "hm+"+idCode+"+18+"+threshold+"+6+end";
         log.info(">>高温,低温报警参数请求-应答数据>>" + answerText);
         answerCmd(answerText, ctx);
     }
@@ -263,7 +274,7 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
             System.out.println("##获取报警使能请求-未注册设备 idCode=" + idCode);
             return;
         }
-        String answerText = "hm+115+14+1(122)1(122)1(122)1(122)+0+4+end";
+        String answerText = "hm+"+idCode+"+14+2(111)2(111)2(111)2(111)+0+4+end";
         log.info(">>获取报警使能请求-应答数据>>" + answerText);
         answerCmd(answerText, ctx);
     }
@@ -275,22 +286,46 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
             System.out.println("##上报喷雾除臭状态请求-未注册设备 idCode=" + idCode);
             return;
         }
-        String answerText = "hm+"+idCode+"+7+1+201702081523+6+end";
+        String answerText = "hm+" + idCode + "+7+6+end";
         log.info(">>上报喷雾除臭状态请求-应答数据>>" + answerText);
         answerCmd(answerText, ctx);
         //发送喷雾设备状态到消息队列
         producer.sendSprayEquipStatusToMQ(askText);
     }
 
+    @Autowired
+    private ISprayConfigService sprayConfigService;
+    @Autowired
+    private ISprayTimeService sprayTimeService;
+    @Autowired
+    private IDeviceRegisterService deviceRegisterService;
+
     //获取喷雾除臭配置请求
-    private void getSprayConfig(String askText, String idCode, ChannelHandlerContext ctx) {
+    private void getSprayConfig(String askText, String deviceCode, ChannelHandlerContext ctx) {
         System.out.println("==>获取喷雾除臭配置请求 askText>>" + askText);
-        if (!cmdProService.isEffectiveDevice(idCode)) {
-            System.out.println("##获取喷雾除臭配置请求-未注册设备 idCode=" + idCode);
+        if (!cmdProService.isEffectiveDevice(deviceCode)) {
+            System.out.println("##获取喷雾除臭配置请求-未注册设备 idCode=" + deviceCode);
+            return;
+        }
+        //读取设备注册信息
+        EnvDeviceRegisterEntity envDeviceRegisterEntity = deviceRegisterService.getDeviceRegisterByDeviceCode(deviceCode);
+        if (envDeviceRegisterEntity == null) {
+            log.error("该设备[" + deviceCode + "]未注册.");
             return;
         }
-//        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+"+idCode+"+6+1+1+0101,60,10,10,0202,60,10,10,0303,60,10,10,0404,60,10,10+60+6+end";
+        java.sql.Date todayDate = new java.sql.Date(new java.util.Date().getTime());
+        Timestamp nowTimestamp = new Timestamp(new java.util.Date().getTime());
+        String farmCode = envDeviceRegisterEntity.getFarmCode();
+
+        //读取喷雾配置表数据
+        JSONObject configJo = sprayConfigService.getSprayConfigByDeviceCode(deviceCode, farmCode);
+        int runMode = configJo.getInteger("runMode");
+        int deviceStatus = configJo.getInteger("deviceStatus");
+        int timeInterval = configJo.getInteger("timeInterval") * 60;
+        //读取定时时间配置表数据
+        String sprayTime = sprayTimeService.getSprayTimeByDeviceCode(deviceCode);
+//        String answerText = "hm+"+deviceCode+"+6+1+1+0101,60,10,10,0202,60,10,10,0303,60,10,10,0404,60,10,10+60+6+end";
+        String answerText = "hm+" + deviceCode + "+6+" + runMode + "+" + deviceStatus + "+" + sprayTime + "+" + timeInterval + "+6+end";
         log.info(">>获取喷雾除臭配置请求-应答数据>>" + answerText);
         answerCmd(answerText, ctx);
     }
@@ -305,6 +340,7 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
         String answerText = "hm+5+0+8+end";
         log.info(">>氨气度上传请求-应答数据>>" + answerText);
         answerCmd(answerText, ctx);
+
         //发送氨气请求到消息队列
         producer.sendAmmoniaAskToMQ(askText);
     }

+ 27 - 27
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://192.168.1.7:3306/huimv-env-platform?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://122.112.224.199: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
@@ -41,35 +41,35 @@ spring:
     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
+#  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
+#  data:
+#    redis:
+#      repositories:
+#        enabled: false
 
   #是否缓存空值
-  cache:
-    redis:
-      cache-null-values: false
+#  cache:
+#    redis:
+#      cache-null-values: false
 
 
 

+ 2 - 2
huimv-env-platform/huimv-env-input/src/main/resources/application-prod.yml

@@ -6,7 +6,7 @@ spring:
     name: huimv-env-input
 
   datasource:
-    url: jdbc:mysql://192.168.1.7:3306/huimv-env-platform?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://122.112.224.199: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
@@ -27,7 +27,7 @@ spring:
 #    #虚拟host 可以不设置,使用server默认host
 #    virtual-host: /
   rabbitmq:
-    host: 192.168.1.82
+    host: 121.36.134.218
     port: 5672
     username: admin
     password: admin

+ 10 - 10
huimv-env-platform/huimv-env-input/src/main/resources/application.properties

@@ -1,20 +1,20 @@
-spring.profiles.active=dev
+spring.profiles.active=prod
 
-#开启健康监控
+#\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
 management.endpoints.web.exposure.include=*
 
 #########################################################
-###             配置undertow取代tomcat                ###
+###             \uFFFD\uFFFD\uFFFD\uFFFDundertow\u0221\uFFFD\uFFFDtomcat                ###
 #########################################################
-# 是否打开 undertow 日志,默认为 false
+# \uFFFD\u01F7\uFFFD\uFFFD undertow \uFFFD\uFFFD\u05BE\uFFFD\uFFFD\u012C\uFFFD\uFFFD\u03AA false
 server.undertow.accesslog.enabled=false
-# 设置访问日志所在目录
+# \uFFFD\uFFFD\uFFFD\u00F7\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u05BE\uFFFD\uFFFD\uFFFD\uFFFD\u013F\u00BC
 server.undertow.accesslog.dir=logs
-# 指定工作者线程的 I/0 线程数,默认为 2 或者 CPU 的个数
+# \u05B8\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u07F3\u0335\uFFFD I/0 \uFFFD\u07F3\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u012C\uFFFD\uFFFD\u03AA 2 \uFFFD\uFFFD\uFFFD\uFFFD CPU \uFFFD\u0138\uFFFD\uFFFD\uFFFD
 server.undertow.io-threads=
-# 指定工作者线程个数,默认为 I/O 线程个数的 8 倍
+# \u05B8\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u07F3\u0338\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\u012C\uFFFD\uFFFD\u03AA I/O \uFFFD\u07F3\u0338\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD 8 \uFFFD\uFFFD
 server.undertow.worker-threads=
-# 设置 HTTP POST 内容的最大长度,默认不做限制
+# \uFFFD\uFFFD\uFFFD\uFFFD HTTP POST \uFFFD\uFFFD\uFFFD\u0775\uFFFD\uFFFD\uFFFD\uDB8E\uDD36\u0223\uFFFD\u012C\uFFFD\u03F2\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
 server.undertow.max-http-post-size=0
 
 #########################################################
@@ -22,10 +22,10 @@ server.undertow.max-http-post-size=0
 #########################################################
 management.security.enabled=false
 
-# 数据处理流程
+# \uFFFD\uFFFD\uFFFD\u0774\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD
 data.input.flow=2
 
-# 是否写入测试数据(1:写入 0:不写入)
+# \uFFFD\u01F7\uFFFD\u0434\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD(1:\u0434\uFFFD\uFFFD 0:\uFFFD\uFFFD\u0434\uFFFD\uFFFD)
 data.test.input=0
 
 

+ 0 - 2
huimv-env-platform/pom.xml

@@ -67,8 +67,6 @@
                 <artifactId>captcha-core</artifactId>
                 <version>${captcha.version}</version>
             </dependency>
-
-
             <dependency>
                 <groupId>cn.dustlight.captcha</groupId>
                 <artifactId>redis-store</artifactId>