| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- 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;
- import org.springframework.stereotype.Component;
- import javax.annotation.Resource;
- import java.math.BigDecimal;
- import java.math.RoundingMode;
- import java.time.LocalDateTime;
- import java.util.Date;
- import java.util.List;
- @Component
- @EnableScheduling
- public class DeviceTimer {
- @Resource
- private IEnvDeviceService envDeviceService;
- @Resource
- private IEnvDeviceOnlineService envDeviceOnlineService;
- @Resource
- private IBaseDuckInfoService baseDuckInfoService;
- @Resource
- private IRawDataService rawDataService;
- // @Scheduled(cron = "*/5 * * * * ?")
- @Scheduled(cron = "0 */5 * * * ?")
- private void saveOnlineDevice(){
- String farmId = "21";
- double rate = 0.0;
- Double deviceOff = (double) envDeviceService.count(new QueryWrapper<EnvDevice>().eq("farm_id", farmId).eq("device_status", 0));
- Double deviceOn = (double) envDeviceService.count(new QueryWrapper<EnvDevice>().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("--->更新成功");
- }
- @Scheduled(cron = "0 1 0 * * ?")
- private void updateDeviceOn(){
- System.out.println("--->更新固定称在线状态");
- List<EnvDevice> deviceType = envDeviceService.list(new QueryWrapper<EnvDevice>().eq("device_type", 3));
- DateTime dateTime = DateUtil.offsetDay(new Date(), -1);
- 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("--->更新固定称在线状态结束");
- }
- }
|