车间能级提升-智能设备管理系统
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
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
    }
}