523096025 преди 1 година
родител
ревизия
0d6a17d7e2
променени са 1 файла, в които са добавени 28 реда и са изтрити 0 реда
  1. 28 0
      huimv-admin/src/main/java/com/huimv/guowei/admin/timer/DeviceTimer.java

+ 28 - 0
huimv-admin/src/main/java/com/huimv/guowei/admin/timer/DeviceTimer.java

@@ -1,11 +1,15 @@
 package com.huimv.guowei.admin.timer;
 
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.huimv.guowei.admin.entity.EnvDevice;
 import com.huimv.guowei.admin.entity.EnvDeviceOnline;
+import com.huimv.guowei.admin.entity.RawData;
 import com.huimv.guowei.admin.service.IBaseDuckInfoService;
 import com.huimv.guowei.admin.service.IEnvDeviceOnlineService;
 import com.huimv.guowei.admin.service.IEnvDeviceService;
+import com.huimv.guowei.admin.service.IRawDataService;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.scheduling.annotation.EnableScheduling;
 import org.springframework.scheduling.annotation.Scheduled;
@@ -16,6 +20,7 @@ import java.math.BigDecimal;
 import java.math.RoundingMode;
 import java.time.LocalDateTime;
 import java.util.Date;
+import java.util.List;
 
 @Component
 @EnableScheduling
@@ -28,6 +33,9 @@ public class DeviceTimer {
     @Resource
     private IBaseDuckInfoService baseDuckInfoService;
 
+    @Resource
+    private IRawDataService rawDataService;
+
 
 //    @Scheduled(cron = "*/5 * * * * ?")
     @Scheduled(cron = "0 */5 * * * ?")
@@ -61,4 +69,24 @@ public class DeviceTimer {
         System.out.println("--->更新成功");
     }
 
+
+    @Scheduled(cron = "0 0/20 * * * ?")
+    private void updateDeviceOn(){
+        System.out.println("--->更新固定称在线状态");
+        List<EnvDevice> deviceType = envDeviceService.list(new QueryWrapper<EnvDevice>().eq("device_type", 3));
+        DateTime dateTime = DateUtil.offsetMinute(new Date(), -20);
+
+        for (EnvDevice envDevice : deviceType) {
+            String deviceCode = envDevice.getDeviceCode();
+            Integer deviceCodeStatus = envDevice.getDeviceStatus();
+            int count = rawDataService.count(new QueryWrapper<RawData>().eq("device_code", deviceCode).ge("create_time", dateTime));
+            Integer status = count > 0 ? 1 :0 ;
+            if (status.equals(deviceCodeStatus)){
+                continue;
+            }
+            envDevice.setDeviceStatus(status);
+            envDeviceService.updateById(envDevice);
+        }
+        System.out.println("--->更新固定称在线状态结束");
+    }
 }