DeviceTimer.java 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package com.huimv.guowei.admin.timer;
  2. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  3. import com.huimv.guowei.admin.entity.EnvDevice;
  4. import com.huimv.guowei.admin.entity.EnvDeviceOnline;
  5. import com.huimv.guowei.admin.service.IBaseDuckInfoService;
  6. import com.huimv.guowei.admin.service.IEnvDeviceOnlineService;
  7. import com.huimv.guowei.admin.service.IEnvDeviceService;
  8. import org.springframework.context.annotation.Configuration;
  9. import org.springframework.scheduling.annotation.EnableScheduling;
  10. import org.springframework.scheduling.annotation.Scheduled;
  11. import javax.annotation.Resource;
  12. import java.math.BigDecimal;
  13. import java.math.RoundingMode;
  14. import java.time.LocalDateTime;
  15. import java.util.Date;
  16. @Configuration
  17. @EnableScheduling
  18. public class DeviceTimer {
  19. @Resource
  20. private IEnvDeviceService envDeviceService;
  21. @Resource
  22. private IEnvDeviceOnlineService envDeviceOnlineService;
  23. @Resource
  24. private IBaseDuckInfoService baseDuckInfoService;
  25. @Scheduled(cron = "0 */5 * * * ?")
  26. // @Scheduled(cron = "*/5 * * * * ?")
  27. private void saveOnlineDevice(){
  28. String farmId = "21";
  29. double rate = 0.0;
  30. Double deviceOff = (double) envDeviceService.count(new QueryWrapper<EnvDevice>().eq("farm_id", farmId).eq("device_status", 0));
  31. Double deviceOn = (double) envDeviceService.count(new QueryWrapper<EnvDevice>().eq("farm_id", farmId).eq("device_status", 1));
  32. Double total = deviceOff+deviceOn;
  33. try {
  34. rate = (deviceOn/total)*100;
  35. }catch (ArithmeticException e){
  36. System.out.println(e);
  37. }
  38. EnvDeviceOnline envDeviceOnline = new EnvDeviceOnline();
  39. envDeviceOnline.setDeviceOn(deviceOn.intValue());
  40. envDeviceOnline.setDeviceOff(deviceOff.intValue());
  41. envDeviceOnline.setOnlineRate(new BigDecimal(rate).setScale(2, RoundingMode.UP));
  42. envDeviceOnline.setFarmId(farmId);
  43. envDeviceOnline.setCreatTime(new Date());
  44. envDeviceOnlineService.save(envDeviceOnline);
  45. }
  46. @Scheduled(cron = "0 0 23 * * ?")
  47. // @Scheduled(cron = "0 * * * * ?")
  48. private void setDayAge(){
  49. System.out.println("--->更新日龄");
  50. baseDuckInfoService.updateDayAge();
  51. System.out.println("--->更新成功");
  52. }
  53. }