|
@@ -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("--->更新固定称在线状态结束");
|
|
|
+ }
|
|
|
}
|