This commit is contained in:
xy
2024-10-11 11:22:10 +08:00
parent 9f4793e276
commit dfa7ebe94f
2 changed files with 31 additions and 17 deletions

View File

@@ -282,7 +282,7 @@ public class MqttMessageHandler {
List<CsLineModel> lineList = csLineModelService.getMonitorNumByModelId(modelId);
String key = AppRedisKey.LINE + nDid;
redisUtil.saveByKeyWithExpire(key,lineList,600L);
csLogsFeignClient.addUserLog(logDto);
//csLogsFeignClient.addUserLog(logDto);
}
}
@@ -310,6 +310,7 @@ public class MqttMessageHandler {
//业务处理
Gson gson = new Gson();
ReqAndResDto.Res res = gson.fromJson(new String(message.getPayload(), StandardCharsets.UTF_8), ReqAndResDto.Res.class);
redisUtil.saveByKeyWithExpire("devResponse",res.getCode(),5L);
if (Objects.equals(res.getCode(),AccessEnum.SUCCESS.getCode())){
switch (res.getType()){
case 4613:
@@ -339,7 +340,7 @@ public class MqttMessageHandler {
}
}
//接入后系统重置装置心跳
redisUtil.saveByKeyWithExpire("MQTT:" + nDid, Instant.now().toEpochMilli(),300L);
redisUtil.saveByKeyWithExpire("MQTT:" + nDid, Instant.now().toEpochMilli(),180L);
//修改redis的mid
redisUtil.saveByKey(AppRedisKey.DEVICE_MID + nDid,1);
redisUtil.saveByKeyWithExpire("online" + nDid,"online",10L);
@@ -358,6 +359,7 @@ public class MqttMessageHandler {
csLogsFeignClient.addUserLog(logDto);
throw new BusinessException(AccessResponseEnum.ACCESS_RESPONSE_ERROR);
}
csLogsFeignClient.addUserLog(logDto);
break;
case 4614:
log.info("设备数据应答--->" + nDid);
@@ -458,7 +460,7 @@ public class MqttMessageHandler {
default:
break;
}
csLogsFeignClient.addUserLog(logDto);
//csLogsFeignClient.addUserLog(logDto);
}
}
@@ -482,7 +484,7 @@ public class MqttMessageHandler {
switch (res.getType()){
case 4865:
//设置心跳时间,超时改为掉线
redisUtil.saveByKeyWithExpire("MQTT:" + nDid, Instant.now().toEpochMilli(),300L);
redisUtil.saveByKeyWithExpire("MQTT:" + nDid, Instant.now().toEpochMilli(),180L);
//有心跳,则将装置改成在线
//csEquipmentDeliveryService.updateRunStatusBynDid(nDid,AccessEnum.ONLINE.getCode());
//处理心跳
@@ -537,17 +539,24 @@ public class MqttMessageHandler {
//实时数据
case 1:
log.info(nDid + "处理实时数据");
break;
//处理主动上送的统计数据
case 2:
JSONObject jsonObject2 = JSONObject.parseObject(JSON.toJSONString(dataDto));
AppAutoDataMessage appAutoDataMessage = JSONObject.toJavaObject(jsonObject2, AppAutoDataMessage.class);
appAutoDataMessage.setId(nDid);
appAutoDataMessage.getMsg().getDataArray().forEach(item->{
log.info(nDid + "处理统计数据" + item.getDataAttr());
log.info(nDid + "处理实时数据" + item.getDataAttr());
});
appAutoDataMessageTemplate.sendMember(appAutoDataMessage);
break;
//处理主动上送的统计数据
case 2:
JSONObject jsonObject3 = JSONObject.parseObject(JSON.toJSONString(dataDto));
AppAutoDataMessage appAutoDataMessage2 = JSONObject.toJavaObject(jsonObject3, AppAutoDataMessage.class);
appAutoDataMessage2.setId(nDid);
appAutoDataMessage2.getMsg().getDataArray().forEach(item->{
log.info(nDid + "处理统计数据" + item.getDataAttr());
});
appAutoDataMessageTemplate.sendMember(appAutoDataMessage2);
break;
default:
break;
}

View File

@@ -133,7 +133,7 @@ public class RedisKeyExpirationListener extends KeyExpirationEventMessageListene
csDeviceService.devAccessAskTemplate(nDid,version,1);
redisUtil.saveByKey(AppRedisKey.DEVICE_MID + nDid,1);
try {
Thread.sleep(2000);
Thread.sleep(3000);
Object object = redisUtil.getObjectByKey("online" + nDid);
if (Objects.nonNull(object)) {
scheduler.shutdown();
@@ -143,10 +143,6 @@ public class RedisKeyExpirationListener extends KeyExpirationEventMessageListene
csEquipmentDeliveryService.updateRunStatusBynDid(nDid, AccessEnum.OFFLINE.getCode());
startScheduledTask(scheduler,nDid,version);
logDto.setOperate("客户端离线进入定时任务");
//记录装置掉线时间
CsDeviceOnlineLogs record = onlineLogsService.findLastData(nDid);
record.setOfflineTime(LocalDateTime.now());
onlineLogsService.updateById(record);
}
} catch (InterruptedException e) {
throw new RuntimeException(e);
@@ -157,6 +153,7 @@ public class RedisKeyExpirationListener extends KeyExpirationEventMessageListene
//装置下线
csEquipmentDeliveryService.updateRunStatusBynDid(nDid, AccessEnum.OFFLINE.getCode());
startScheduledTask(scheduler,nDid,version);
logDto.setOperate("客户端离线进入定时任务");
}
csLogsFeignClient.addUserLog(logDto);
}
@@ -176,7 +173,7 @@ public class RedisKeyExpirationListener extends KeyExpirationEventMessageListene
if (mqttClient) {
csDeviceService.devAccessAskTemplate(nDid,version,1);
try {
Thread.sleep(2000);
Thread.sleep(3000);
Integer status = csEquipmentDeliveryService.queryEquipmentBynDid(nDid).getRunStatus();
if (Objects.equals(status,AccessEnum.ONLINE.getCode())){
logDto.setResult(1);
@@ -192,6 +189,10 @@ public class RedisKeyExpirationListener extends KeyExpirationEventMessageListene
sendEventToUser(dto2);
addLogs(dto2);
}
//记录装置掉线时间
CsDeviceOnlineLogs record = onlineLogsService.findLastData(nDid);
record.setOfflineTime(LocalDateTime.now());
onlineLogsService.updateById(record);
}
} catch (InterruptedException e) {
throw new RuntimeException(e);
@@ -205,9 +206,13 @@ public class RedisKeyExpirationListener extends KeyExpirationEventMessageListene
addLogs(dto2);
}
logDto.setResult(0);
//记录装置掉线时间
CsDeviceOnlineLogs record = onlineLogsService.findLastData(nDid);
record.setOfflineTime(LocalDateTime.now());
onlineLogsService.updateById(record);
}
csLogsFeignClient.addUserLog(logDto);
}, 0, 2, TimeUnit.MINUTES);
}, 0, 10, TimeUnit.SECONDS);
}
}