package org.dromara.eims.job;
|
|
import org.dromara.common.redis.utils.RedisUtils;
|
import org.springframework.context.annotation.Configuration;
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
import java.util.Calendar;
|
|
@Configuration
|
@EnableScheduling
|
public class DeviceDataIncrJob {
|
private static final String DEVICE_DATA_PREFIX = "eims:device:data:";
|
/**
|
* 定时更新设备数据
|
* 每天早上8点到下午5点之间,每小时更新一次
|
*/
|
@Scheduled(cron = "0/5 * 8-17 * * ?")
|
public void updateDeviceDataScheduled() {
|
System.out.println("执行定时任务,更新设备数据:::");
|
// 检查当前时间是否在早上8点到下午5点之间
|
Calendar now = Calendar.getInstance();
|
int hourOfDay = now.get(Calendar.HOUR_OF_DAY);
|
if (hourOfDay >= 8 && hourOfDay < 17) {
|
// 更新幅度
|
RedisUtils.incrAtomicValueByNum(DEVICE_DATA_PREFIX + "xAxisTravel", 83L); // 每天加6小时,对应Redis中加60
|
RedisUtils.incrAtomicValueByNum(DEVICE_DATA_PREFIX + "yAxisTravel", 833L); // 每天加60次
|
// toolChangeCount 和 downtime 不波动,所以不进行增量操作
|
RedisUtils.incrAtomicValueByNum(DEVICE_DATA_PREFIX + "partCount", 210L); // 每天加15个
|
|
|
|
// RedisUtils.setAtomicValue(DEVICE_DATA_PREFIX + "smtXAxisTravel", 300282L); // 50/5s
|
// RedisUtils.setAtomicValue(DEVICE_DATA_PREFIX + "smtYAxisTravel", 233524L); // 45/5s
|
// RedisUtils.setAtomicValue(DEVICE_DATA_PREFIX + "smtTapeJamCount", 6000); // 5/5s
|
// RedisUtils.setAtomicValue(DEVICE_DATA_PREFIX + "smtMaterialJamCount", 15000); // 5/5s
|
// RedisUtils.setAtomicValue(DEVICE_DATA_PREFIX + "smtPanelCount", 2481000); // 100/5s
|
// RedisUtils.setAtomicValue(DEVICE_DATA_PREFIX + "smtDowntime", 450); //5/5s
|
|
RedisUtils.incrAtomicValueByNum(DEVICE_DATA_PREFIX + "smtXAxisTravel", 50L);
|
RedisUtils.incrAtomicValueByNum(DEVICE_DATA_PREFIX + "smtYAxisTravel", 45L);
|
RedisUtils.incrAtomicValueByNum(DEVICE_DATA_PREFIX + "smtTapeJamCount", 5L);
|
RedisUtils.incrAtomicValueByNum(DEVICE_DATA_PREFIX + "smtMaterialJamCount", 5L);
|
RedisUtils.incrAtomicValueByNum(DEVICE_DATA_PREFIX + "smtPanelCount", 100L);
|
RedisUtils.incrAtomicValueByNum(DEVICE_DATA_PREFIX + "smtDowntime", 1L);
|
|
|
// RedisUtils.setAtomicValue(DEVICE_DATA_PREFIX + "injectionCount", 43848000L); // 5/5s
|
// RedisUtils.setAtomicValue(DEVICE_DATA_PREFIX + "clampingCount", 5456360L); // 1/5s
|
// RedisUtils.setAtomicValue(DEVICE_DATA_PREFIX + "productionCycle", 450);
|
// RedisUtils.setAtomicValue(DEVICE_DATA_PREFIX + "energyConsumption", 64000); // 7/5s
|
// RedisUtils.setAtomicValue(DEVICE_DATA_PREFIX + "yieldRate", 3540); // 1/5s
|
RedisUtils.incrAtomicValueByNum(DEVICE_DATA_PREFIX + "injectionCount", 5L);
|
RedisUtils.incrAtomicValueByNum(DEVICE_DATA_PREFIX + "clampingCount", 1L);
|
RedisUtils.incrAtomicValueByNum(DEVICE_DATA_PREFIX + "energyConsumption", 10L);
|
RedisUtils.incrAtomicValueByNum(DEVICE_DATA_PREFIX + "yieldRate", 1L);
|
}
|
}
|
|
|
// 新增一个定时器,第天零点清零
|
@Scheduled(cron = "0 0 0 * * ?")
|
public void resetDeviceDataScheduled() {
|
System.out.println("执行定时任务,重置设备数据:::");
|
|
RedisUtils.setAtomicValue(DEVICE_DATA_PREFIX + "smtTapeJamCount", 0); // 5/5s
|
RedisUtils.setAtomicValue(DEVICE_DATA_PREFIX + "smtMaterialJamCount", 0); // 5/5s
|
RedisUtils.setAtomicValue(DEVICE_DATA_PREFIX + "smtPanelCount", 0); // 100/5s
|
RedisUtils.setAtomicValue(DEVICE_DATA_PREFIX + "smtDowntime", 0); //5/5s
|
|
|
|
RedisUtils.setAtomicValue(DEVICE_DATA_PREFIX + "energyConsumption", 0); // 7/5s
|
RedisUtils.setAtomicValue(DEVICE_DATA_PREFIX + "yieldRate", 0); // 1/5s
|
}
|
}
|