package com.huimv.guowei.admin.timer; 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.service.IBaseDuckInfoService; import com.huimv.guowei.admin.service.IEnvDeviceOnlineService; import com.huimv.guowei.admin.service.IEnvDeviceService; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import javax.annotation.Resource; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDateTime; import java.util.Date; @Configuration @EnableScheduling public class DeviceTimer { @Resource private IEnvDeviceService envDeviceService; @Resource private IEnvDeviceOnlineService envDeviceOnlineService; @Resource private IBaseDuckInfoService baseDuckInfoService; // @Scheduled(cron = "*/5 * * * * ?") @Scheduled(cron = "0 */5 * * * ?") private void saveOnlineDevice(){ String farmId = "21"; double rate = 0.0; Double deviceOff = (double) envDeviceService.count(new QueryWrapper().eq("farm_id", farmId).eq("device_status", 0)); Double deviceOn = (double) envDeviceService.count(new QueryWrapper().eq("farm_id", farmId).eq("device_status", 1)); Double total = deviceOff+deviceOn; try { rate = (deviceOn/total)*100; }catch (ArithmeticException e){ System.out.println(e); } EnvDeviceOnline envDeviceOnline = new EnvDeviceOnline(); envDeviceOnline.setDeviceOn(deviceOn.intValue()); envDeviceOnline.setDeviceOff(deviceOff.intValue()); envDeviceOnline.setOnlineRate(new BigDecimal(rate).setScale(2, RoundingMode.UP)); envDeviceOnline.setFarmId(farmId); envDeviceOnline.setCreatTime(new Date()); envDeviceOnlineService.save(envDeviceOnline); } // @Scheduled(cron = "0 * * * * ?") @Scheduled(cron = "0 0 23 * * ?") private void setDayAge(){ System.out.println("--->更新日龄"); baseDuckInfoService.updateDayAge(); System.out.println("--->更新成功"); } }