Forráskód Böngészése

修改bug,添加预警功能

523096025 2 éve
szülő
commit
31bf071bf0

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

@@ -1,11 +1,14 @@
 package com.huimv.env.common.entity;
 
+import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
 import java.time.LocalDate;
 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;
@@ -37,9 +40,9 @@ public class EnvPushMessage implements Serializable {
 
     private Integer actType;
 
-    private LocalDateTime addTime;
+    private Date addTime;
 
-    private LocalDate addDate;
+    private Date addDate;
 
     private String farmCode;
 

+ 2 - 1
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/IEnvPushMessageService.java

@@ -1,5 +1,6 @@
 package com.huimv.env.common.service;
 
+import com.alibaba.fastjson.JSONObject;
 import com.huimv.env.common.entity.EnvPushMessage;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -15,5 +16,5 @@ import java.sql.Timestamp;
  */
 public interface IEnvPushMessageService extends IService<EnvPushMessage> {
 
-    void saveHumi(String deviceCode, Timestamp nowTimestamp, String humi, String farmCode);
+    void saveHumi(String deviceCode, Timestamp nowTimestamp, JSONObject dataJo, String farmCode);
 }

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

@@ -70,7 +70,7 @@ public class BaseThresholdServiceImpl extends ServiceImpl<BaseThresholdMapper, B
         String farmCode = envDeviceRegisterEntity1.getFarmCode();
         BaseThreshold baseThreshold = baseThresholdMapper.selectOne(new QueryWrapper<BaseThreshold>().eq("farm_code", farmCode));
         if (ObjectUtil.isNotEmpty(baseThreshold)){
-             return  (baseThreshold.getMaxTemp().multiply(new BigDecimal(10))).intValue() +"+"+(baseThreshold.getMinTemp().multiply(new BigDecimal(10))).intValue();
+             return  (baseThreshold.getMaxTemp().multiply(new BigDecimal(10)).intValue()) +"+"+(baseThreshold.getMinTemp().multiply(new BigDecimal(10)).intValue());
         }
         return "0";
     }

+ 55 - 1
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/impl/EnvPushMessageServiceImpl.java

@@ -1,11 +1,24 @@
 package com.huimv.env.common.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.huimv.env.common.dao.entity.EnvDeviceRegisterEntity;
+import com.huimv.env.common.dao.entity.EnvSensorRegisterEntity;
+import com.huimv.env.common.dao.repo.EnvDeviceRegisterEntityRepo;
+import com.huimv.env.common.entity.BaseThreshold;
 import com.huimv.env.common.entity.EnvPushMessage;
+import com.huimv.env.common.mapper.BaseThresholdMapper;
 import com.huimv.env.common.mapper.EnvPushMessageMapper;
 import com.huimv.env.common.service.IEnvPushMessageService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.huimv.env.common.service.IPigpenService;
+import com.huimv.env.common.utils.MathUtil2;
+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;
 
 /**
@@ -19,8 +32,49 @@ import java.sql.Timestamp;
 @Service
 public class EnvPushMessageServiceImpl extends ServiceImpl<EnvPushMessageMapper, EnvPushMessage> implements IEnvPushMessageService {
 
+    @Autowired
+    private BaseThresholdMapper baseThresholdMapper;
+    @Autowired
+    private EnvDeviceRegisterEntityRepo envDeviceRegisterEntityRepo;
+    @Autowired
+    private IPigpenService pigpenService;
+    @Autowired
+    private MathUtil2 mathUtil;
     @Override
-    public void saveHumi(String deviceCode, Timestamp nowTimestamp, String humi, String farmCode) {
+    public void saveHumi(String deviceCode, Timestamp nowTimestamp, JSONObject dataJo, String farmCode) {
+        BaseThreshold baseThreshold = baseThresholdMapper.selectOne(new QueryWrapper<BaseThreshold>().eq("farm_code", farmCode));
+        System.out.println("湿度farm--->"+farmCode);
+        if (ObjectUtil.isNotEmpty(baseThreshold)){
+            BigDecimal minHumi = baseThreshold.getMinHumi();
+            BigDecimal maxHumi = baseThreshold.getMaxHumi();
+            BigDecimal value = BigDecimal.valueOf(mathUtil.countHumi(dataJo.getIntValue("value")));
+            System.out.println("当前湿度--->  " +value);
 
+            if (value.doubleValue() > maxHumi.doubleValue()){
+                String pigpenName = pigpenService.getPigpenByDevice(deviceCode);
+                System.out.println("高湿度--->  " +maxHumi.doubleValue());
+                EnvPushMessage envPushMessage = new EnvPushMessage();
+                envPushMessage.setActType(1);
+                envPushMessage.setAddDate(nowTimestamp);
+                envPushMessage.setAddTime(nowTimestamp);
+                envPushMessage.setContent( "["+pigpenName+"]的设备提示:湿度当前为"+value+",高于阈值"+maxHumi);
+                envPushMessage.setDeviceCode(deviceCode);
+                envPushMessage.setFarmCode(farmCode);
+                this.save(envPushMessage);
+            }
+            if (value.doubleValue() < minHumi.doubleValue()){
+                String pigpenName = pigpenService.getPigpenByDevice(deviceCode);
+                System.out.println("低湿度--->  " +minHumi.doubleValue());
+                EnvPushMessage envPushMessage = new EnvPushMessage();
+                envPushMessage.setActType(1);
+                envPushMessage.setAddDate(nowTimestamp);
+                envPushMessage.setAddTime(nowTimestamp);
+                envPushMessage.setContent( "["+pigpenName+"]的设备提示:湿度当前为"+value+",低于阈值"+minHumi);
+                envPushMessage.setDeviceCode(deviceCode);
+                envPushMessage.setFarmCode(farmCode);
+                this.save(envPushMessage);
+
+            }
+        }
     }
 }

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

@@ -248,7 +248,7 @@ public class DeviceListener {
         deviceService.sendSensorToMQ(deviceCode, dataJo.getInteger("sensorSn"), nowTimestamp, todayDate, humi, farmCode, sensorSort);
         //保存湿度流水数据
         deviceService.saveHumiFlow(dataJo, envDeviceRegisterEntity, nowTimestamp, todayDate, farmCode);
-        envPushMessageService.saveHumi(deviceCode,nowTimestamp,humi,farmCode);
+        envPushMessageService.saveHumi(deviceCode,nowTimestamp,dataJo,farmCode);
     }
 
     @RabbitListener(queues = Const.QUEUE_AMMONIA)