Sfoglia il codice sorgente

设备故障监控

tanbin 1 anno fa
parent
commit
12f6c2e1e5

+ 4 - 4
device-api-service/src/main/java/com/xy/entity/DeviceFaultLog.java

@@ -1,9 +1,6 @@
 package com.xy.entity;
 
-import com.baomidou.mybatisplus.annotation.FieldFill;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.*;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -52,5 +49,8 @@ public class DeviceFaultLog implements Serializable {
     @TableField(fill = FieldFill.INSERT)
     private LocalDateTime createTime;
 
+    @TableLogic
+    private Integer deleted;
+
 
 }

+ 8 - 7
device-api-service/src/main/java/com/xy/entity/DeviceFaultMonitorConfig.java

@@ -1,17 +1,18 @@
 package com.xy.entity;
 
-import com.baomidou.mybatisplus.annotation.IdType;
-import java.time.LocalDateTime;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableField;
-import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.TableId;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
 /**
  * <p>
  * 设备故障监控配置
@@ -23,7 +24,7 @@ import lombok.experimental.Accessors;
 @Data
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
-@ApiModel(value="DeviceFaultMonitorConfig对象", description="设备故障监控配置")
+@ApiModel(value = "DeviceFaultMonitorConfig对象", description = "设备故障监控配置")
 public class DeviceFaultMonitorConfig implements Serializable {
 
     private static final long serialVersionUID = 1L;
@@ -49,8 +50,8 @@ public class DeviceFaultMonitorConfig implements Serializable {
     @ApiModelProperty(value = "条件2:达到m次")
     private Integer eventNum;
 
-    @ApiModelProperty(value = "条件1:连续n天,必须小于等于7天")
-    private Integer dayNum;
+    @ApiModelProperty(value = "条件1:最近n分钟")
+    private Long minuteNum;
 
     @ApiModelProperty(value = "故障级别-字典:device_fault_level")
     private Integer faultLevel;

+ 1 - 1
device-api-service/src/main/java/com/xy/job/DeviceFaultJob.java

@@ -31,7 +31,7 @@ public class DeviceFaultJob {
     private DeviceFaultLogServiceImpl deviceFaultLogService;
 
     /**
-     * 故障日志清理 默认保留7
+     * 故障日志清理 默认保留n
      *
      * @return
      */

+ 8 - 10
device-api-service/src/main/java/com/xy/mapper/mapper/DeviceFaultMonitorConfigMapper.xml

@@ -1,17 +1,15 @@
 <?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.xy.mapper.DeviceFaultMonitorConfigMapper">
-
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.xy.entity.DeviceFaultMonitorConfig">
-        <id column="monitor_id" property="monitorId" />
-        <result column="event_code" property="eventCode" />
-        <result column="state" property="state" />
-        <result column="create_time" property="createTime" />
-        <result column="update_time" property="updateTime" />
-        <result column="event_num" property="eventNum" />
-        <result column="day_num" property="dayNum" />
-        <result column="fault_level" property="faultLevel" />
+        <id column="monitor_id" property="monitorId"/>
+        <result column="event_code" property="eventCode"/>
+        <result column="state" property="state"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_time" property="updateTime"/>
+        <result column="event_num" property="eventNum"/>
+        <result column="minute_num" property="minuteNum"/>
+        <result column="fault_level" property="faultLevel"/>
     </resultMap>
-
 </mapper>

+ 10 - 6
device-api-service/src/main/java/com/xy/service/DeviceMqttConsumerImpl.java

@@ -226,19 +226,23 @@ public class DeviceMqttConsumerImpl implements DeviceMqttConsumer {
                     .collect(Collectors.toList());
             for (DeviceFaultMonitorConfigDto.Vo config : configSortedList) {
                 Integer eventNum = config.getEventNum();
-                Integer dayNum = config.getDayNum();
+
+                Long minuteNum = config.getMinuteNum();
+
                 Integer faultLevel = config.getFaultLevel();
-                // 获取当前日期
-                Date today = DateUtil.date();
 
-                // 获取n天前的日期的开始时间(包含今天)
-                Date daysAgo = DateUtil.beginOfDay(DateUtil.offsetDay(today, -(dayNum - 1)));
+                // 获取当前时间
+                Date now = DateUtil.date();
+
+                // 计算最近n分钟的开始时间
+                Date minutesAgo = DateUtil.offsetMinute(now, -minuteNum.intValue());
+
                 //统计同类事件累计次数
                 Long count = deviceFaultLogService.count(Wrappers.<DeviceFaultLog>lambdaQuery()
                         .eq(DeviceFaultLog::getDeviceId, deviceId)
                         .eq(DeviceFaultLog::getMercId, mercId)
                         .eq(DeviceFaultLog::getEventCode, code)
-                        .ge(DeviceFaultLog::getEventTime, daysAgo)
+                        .ge(DeviceFaultLog::getEventTime, minutesAgo)
                 );
                 //达到阈值次数
                 if (count != null && count.intValue() >= eventNum) {

+ 2 - 2
device-api/src/main/java/com/xy/dto/DeviceFaultMonitorConfigDto.java

@@ -69,8 +69,8 @@ public class DeviceFaultMonitorConfigDto {
         @ApiModelProperty(value = "条件2:达到m次")
         private Integer eventNum;
 
-        @ApiModelProperty(value = "条件1:连续n天,必须小于等于7天")
-        private Integer dayNum;
+        @ApiModelProperty(value = "条件1:最近n分钟")
+        private Long minuteNum;
 
         @ApiModelProperty(value = "故障级别-字典:device_fault_level")
         private Integer faultLevel;