Maintenance.java
3.2 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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
package com.myproject.bean.update;
import com.google.common.collect.Maps;
import com.myproject.bean.BaseMongoBean;
import com.myproject.bean.utils.DeviceStatusBean;
import com.myproject.util.DateUtil;
import java.util.Date;
import java.util.Map;
public class Maintenance extends BaseMongoBean {
/**
* 料仓CID
*/
private String storageCid;
/**
* 料仓名称
*/
private String storageName;
/**
* 下次维护时间
*/
private Date nextTime;
/**
* 提前多少小时邮件通知
*/
private int hoursInAdvance = 10;
/**
* 邮件地址
*/
private String emails = "";
/**
* 设备运行信息,key为设备名称,设备状态
*/
private Map<String, DeviceStatusBean> deviceData = Maps.newHashMap();
public String getStorageCid() {
return storageCid;
}
public void setStorageCid(String storageCid) {
this.storageCid = storageCid;
}
public Date getNextTime() {
return nextTime;
}
public void setNextTime(Date nextTime) {
this.nextTime = nextTime;
}
public String getNextTimeStr(){
if(nextTime != null){
return DateUtil.toDateString(nextTime);
}
return "";
}
public int getHoursInAdvance() {
return hoursInAdvance;
}
public void setHoursInAdvance(int hoursInAdvance) {
this.hoursInAdvance = hoursInAdvance;
}
public String getEmails() {
return emails;
}
public void setEmails(String emails) {
this.emails = emails;
}
public Map<String, DeviceStatusBean> getDeviceData() {
return deviceData;
}
public void setDeviceData(Map<String, DeviceStatusBean> deviceData) {
this.deviceData = deviceData;
}
/**
* 更新设备的运行状态,返回值表示是否需要保存到数据库
*/
public boolean updateDeviceStatus(String device, int status){
boolean needSaveToDb = false;
DeviceStatusBean deviceInfo = deviceData.get(device);
if(deviceInfo == null){
deviceInfo = new DeviceStatusBean();
deviceInfo.setDeviceName(device);
needSaveToDb = true;
}
long now = System.currentTimeMillis();
//状态改变
if(status != deviceInfo.getStatus()){
//如果当前状态是0(即上一状态是运动,现在是停止),更新轴运行时间, 同时要满足上次更新时间小于5秒,即设备在线
if(status == 0){
if(now - deviceInfo.getStatusUpdateTime() < 5000){
long runTime = now - deviceInfo.getStatusStartTime();
deviceInfo.setRunTimes(deviceInfo.getRunTimes() + runTime);
needSaveToDb = true;
}
}
deviceInfo.setStatus(status);
deviceInfo.setStatusStartTime(now);
}
deviceInfo.setStatusUpdateTime(now);
deviceData.put(device,deviceInfo);
return needSaveToDb;
}
public String getStorageName() {
return storageName;
}
public void setStorageName(String storageName) {
this.storageName = storageName;
}
}