Browse Source

fix: 相机在线状态同步bug修改,在线写值、离线删除 key

yanyuan
WangGuangYuan 3 weeks ago
parent
commit
2e75af0c82
1 changed files with 29 additions and 29 deletions
  1. +29
    -29
      inspect-job/src/main/java/com/inspect/job/task/PatrolDeviceStatusSynTask.java

+ 29
- 29
inspect-job/src/main/java/com/inspect/job/task/PatrolDeviceStatusSynTask.java View File

@ -132,10 +132,8 @@ public class PatrolDeviceStatusSynTask {
for (int i = 0; i < ivsJsonObjectItems.size(); ++i) { for (int i = 0; i < ivsJsonObjectItems.size(); ++i) {
JSONObject item = ivsJsonObjectItems.getJSONObject(i); JSONObject item = ivsJsonObjectItems.getJSONObject(i);
String patrolDeviceCode = item.getString("code"); String patrolDeviceCode = item.getString("code");
int status = item.getInteger("status");
if (status == 1) {
ivsDeviceStatusMap.put(patrolDeviceCode, Boolean.TRUE);
}
Integer status = item.getInteger("status");
ivsDeviceStatusMap.put(patrolDeviceCode, null != status && status == 1);
} }
} }
@ -157,23 +155,23 @@ public class PatrolDeviceStatusSynTask {
} }
if (ivsDeviceStatusMap.containsKey(patrolDeviceCode)) { if (ivsDeviceStatusMap.containsKey(patrolDeviceCode)) {
boolean online = ivsDeviceStatusMap.get(patrolDeviceCode); boolean online = ivsDeviceStatusMap.get(patrolDeviceCode);
String deviceOnlineKey = "mont_patrol_device_online_status:" + patrolDeviceCode;
if (online) { if (online) {
Boolean hasKey = redisService.hasKey("mont_patrol_device_online_status:" + patrolDeviceCode);
if (!hasKey) {
if (webSendFlag == 0) {
webSendFlag = 1;
}
JSONObject returnJsonObject = patrolDeviceMesHandle(patrolDeviceCode, null, eqpBookId, heart_beat_interval, heartBeatInterval, dateTimeNowFormat);
redisService.setCacheObject("mont_patrol_device_online_status:" + patrolDeviceCode, returnJsonObject);
redisService.expire("mont_patrol_device_online_status:" + patrolDeviceCode, heartBeatInterval);
} else {
redisService.expire("mont_patrol_device_online_status:" + patrolDeviceCode, heartBeatInterval);
if (!redisService.hasKey(deviceOnlineKey)) {
webSendFlag = 1;
} }
JSONObject returnJsonObject = patrolDeviceMesHandle(patrolDeviceCode, null, eqpBookId, heart_beat_interval, heartBeatInterval, dateTimeNowFormat);
redisService.setCacheObject(deviceOnlineKey, returnJsonObject);
redisService.expire(deviceOnlineKey, heartBeatInterval);
} else {
redisService.deleteObject(deviceOnlineKey);
} }
} }
patrolDeviceChannelOnlineHandle(ivsDeviceStatusMap, patrolDeviceCode, eqpBookId, heart_beat_interval, heartBeatInterval, dateTimeNowFormat, webSendFlag);
if (patrolDeviceChannelOnlineHandle(ivsDeviceStatusMap, patrolDeviceCode, eqpBookId, heart_beat_interval, heartBeatInterval, dateTimeNowFormat)) {
webSendFlag = 1;
}
} }
if (webSendFlag == 1) { if (webSendFlag == 1) {
@ -228,14 +226,14 @@ public class PatrolDeviceStatusSynTask {
this.montQueryClient.statisBasedataStatisRobotuavOnlineDay(); this.montQueryClient.statisBasedataStatisRobotuavOnlineDay();
} }
public void patrolDeviceChannelOnlineHandle(
public boolean patrolDeviceChannelOnlineHandle(
Map<String, Boolean> ivsDeviceStatusMap, Map<String, Boolean> ivsDeviceStatusMap,
String patrolDeviceCode, String patrolDeviceCode,
Long eqpBookId, Long eqpBookId,
int heart_beat_interval, int heart_beat_interval,
int heartBeatInterval, int heartBeatInterval,
String dateTimeNowFormat,
int webSendFlag) {
String dateTimeNowFormat) {
boolean newlyOnline = false;
JSONObject channelQuery = new JSONObject(); JSONObject channelQuery = new JSONObject();
channelQuery.put("eqpBookId", eqpBookId); channelQuery.put("eqpBookId", eqpBookId);
Object channelDataObject = this.basedataClient.channelList(channelQuery).getRows(); Object channelDataObject = this.basedataClient.channelList(channelQuery).getRows();
@ -244,22 +242,24 @@ public class PatrolDeviceStatusSynTask {
for (Object channelObject : channelDataJsonList) { for (Object channelObject : channelDataJsonList) {
JSONObject channelJson = (JSONObject) JSONObject.toJSON(channelObject); JSONObject channelJson = (JSONObject) JSONObject.toJSON(channelObject);
String channelCode = channelJson.getString("channelCode"); String channelCode = channelJson.getString("channelCode");
Boolean hasKey = this.redisService.hasKey("mont_patrol_device_channel_online_status:" + channelCode);
if (!hasKey) {
if (webSendFlag == 0) {
webSendFlag = 1;
}
if (ivsDeviceStatusMap.containsKey(channelCode)) {
boolean online = ivsDeviceStatusMap.get(channelCode);
String channelOnlineKey = "mont_patrol_device_channel_online_status:" + channelCode;
if (online) {
if (!this.redisService.hasKey(channelOnlineKey)) {
newlyOnline = true;
}
if (ivsDeviceStatusMap.containsKey(channelCode)) {
JSONObject returnJsonObject = this.patrolDeviceMesHandle(patrolDeviceCode, channelCode, eqpBookId, heart_beat_interval, heartBeatInterval, dateTimeNowFormat); JSONObject returnJsonObject = this.patrolDeviceMesHandle(patrolDeviceCode, channelCode, eqpBookId, heart_beat_interval, heartBeatInterval, dateTimeNowFormat);
this.redisService.setCacheObject("mont_patrol_device_channel_online_status:" + channelCode, returnJsonObject);
this.redisService.expire("mont_patrol_device_channel_online_status:" + channelCode, heartBeatInterval);
this.redisService.setCacheObject(channelOnlineKey, returnJsonObject);
this.redisService.expire(channelOnlineKey, heartBeatInterval);
} else {
this.redisService.deleteObject(channelOnlineKey);
} }
} else {
this.redisService.expire("mont_patrol_device_channel_online_status:" + channelCode, heartBeatInterval);
} }
} }
} }
return newlyOnline;
} }
public JSONObject patrolDeviceMesHandle(String patrolDeviceCode, String channelCode, Long eqpBookId, int heartBeatInterval, int heartBeatInterval2, String dateTimeNowFormat) { public JSONObject patrolDeviceMesHandle(String patrolDeviceCode, String channelCode, Long eqpBookId, int heartBeatInterval, int heartBeatInterval2, String dateTimeNowFormat) {


Loading…
Cancel
Save