Эх сурвалжийг харах

feat:青萍设备低电量报警配置

陈长荣 5 сар өмнө
parent
commit
cdd3f929e1

+ 9 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/alarm/bean/SensorThreshold.java

@@ -64,6 +64,14 @@ public class SensorThreshold {
     @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.00")
     private Float co2Down;
 
+    /**
+     * 低电量报警下限
+     */
+    @Schema(description = "低电量报警下限")
+    @JsonSerialize(using = FloatNullToDashSerializer.class)
+    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.00")
+    private Float batteryDown;
+
     @Schema(description = "设备探头信息")
     @JsonIgnore
     private MonitorTargetRegion monitorTargetRegion;
@@ -79,5 +87,6 @@ public class SensorThreshold {
         this.humidityUp = monitorTargetRegion.getHumidityUp();
         this.temperatureDown = monitorTargetRegion.getTemperatureDown();
         this.temperatureUp = monitorTargetRegion.getTemperatureUp();
+        this.batteryDown = monitorTargetRegion.getBatteryDown();
     }
 }

+ 3 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/core/alarm/service/check/DefaultSensorAlarmChecker.java

@@ -51,6 +51,9 @@ public class DefaultSensorAlarmChecker implements SensorAlarmChecker {
         if (noNull(sensorData.getCo2())) {
             alarmTriggered |= checkThreshold(sensorData.getCo2(), threshold.getCo2Up(), threshold.getCo2Down(), "二氧化碳", monitorTargetRegion);
         }
+        if (noNull(sensorData.getBattery())) {
+            alarmTriggered |= checkThreshold(sensorData.getBattery(), null, threshold.getBatteryDown(), "电量", monitorTargetRegion);
+        }
         return alarmTriggered;
     }
 

+ 6 - 2
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortargetregion/entity/MonitorTargetRegion.java

@@ -16,7 +16,6 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.google.common.collect.Lists;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Getter;
@@ -25,7 +24,6 @@ import vip.xiaonuo.coldchain.core.alarm.bean.NotificationChannel;
 import vip.xiaonuo.coldchain.core.alarm.bean.SensorAlarmUser;
 import vip.xiaonuo.coldchain.core.handler.NotificationChannelListTypeHandler;
 import vip.xiaonuo.coldchain.core.handler.SensorAlarmUserTypeHandler;
-import vip.xiaonuo.coldchain.modular.app.param.FloatNullToDashSerializer;
 import vip.xiaonuo.common.pojo.OrgEntity;
 
 import java.util.List;
@@ -148,6 +146,12 @@ public class MonitorTargetRegion extends OrgEntity {
 //    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "#.00")
     private Float co2Down;
 
+    /**
+     * 低电量报警下限
+     */
+    @Schema(description = "低电量报警下限")
+    private Float batteryDown;
+
     /**
      * 监控对象名称
      */

+ 1 - 0
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/monitortargetregion/service/impl/MonitorTargetRegionServiceImpl.java

@@ -117,6 +117,7 @@ public class MonitorTargetRegionServiceImpl extends ServiceImpl<MonitorTargetReg
         }
         MonitorTargetRegion monitorTargetRegion = BeanUtil.toBean(monitorTargetRegionAddParam, MonitorTargetRegion.class);
         this.save(monitorTargetRegion);
+        CommonDataChangeEventCenter.doUpdateWithData(MonitorTargetRegionEvent.MONITOR_TARGET_REGION_EDIT_EVENT, JSONUtil.createArray().put(monitorTargetRegion));
     }
 
     @Transactional(rollbackFor = Exception.class)

+ 4 - 1
snowy-plugin/snowy-plugin-coldchain/src/main/java/vip/xiaonuo/coldchain/modular/qp/service/impl/QPServiceImpl.java

@@ -111,7 +111,10 @@ public class QPServiceImpl implements QPService {
             sensorData.setDeviceId(mac);
             sensorData.setRoads(region.getSensorRoute());
 
-            if (alertConfig.getMetric_name().equals("temperature")) {
+            if (alertConfig.getMetric_name().equals("battery")) {
+                log.info("青萍设备电量预警 mac={}", mac);
+                sensorData.setBattery(event.getByPath("data.battery.value", Float.class));
+            } else if (alertConfig.getMetric_name().equals("temperature")) {
                 log.info("青萍设备温度预警 mac={}", mac);
                 sensorData.setTemperature(event.getByPath("data.temperature.value", Float.class));
             } else if (alertConfig.getMetric_name().equals("humidity")) {