EquipmentOnline.java
1.77 KB
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
package com.ruoyi.pojo.equipment;
import com.ruoyi.equipment.domain.Equipment;
import com.ruoyi.equipment.mapper.EquipmentMapper;
import com.ruoyi.pojo.request.HeartPackageVo;
import com.ruoyi.utils.ConstDateUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import static com.ruoyi.common.ConstEquipmentProperties.*;
/**
* 设备在线表
*
* @author 20412
*/
@Component
public class EquipmentOnline {
Logger log = LoggerFactory.getLogger(EquipmentOnline.class);
// @Autowired
// private EquipmentOnline(EquipmentMapper mapper) {
// log.info("初始化设备信息");
// initClient(mapper);
// log.info("设备信息初始化完毕");
// }
private void initClient(EquipmentMapper mapper) {
List<Equipment> list = mapper.selectEquipmentList(null);
for (Equipment equipment : list) {
if (Objects.isNull(equipment.getLastHeartRes())) {
equipment.setOnlineClient(DEVICE_OFFLINE);
} else {
LocalDateTime time = ConstDateUtil.getLocalDateTimeByLongTime(equipment.getLastHeartRes().getTime());
LocalDateTime nowTime = LocalDateTime.now();
long timeout = ChronoUnit.MINUTES.between(time, nowTime);
if (DEVICE_OFFLINE_TIME.compareTo(timeout) < 0) {
equipment.setOnlineClient(DEVICE_OFFLINE);
} else {
equipment.setOnlineClient(DEVICE_ONLINE);
}
}
}
mapper.updateEquipments(list);
}
}