|
|
@@ -74,18 +74,18 @@ public class EnNotifyServiceImpl implements EnNotifyService {
|
|
|
@Override
|
|
|
@DS("db-admin")
|
|
|
public String handleNotificationStationStatus(JSONObject json) {
|
|
|
- // TODO: 2023-08-30 注意!!!EN+分布式事务BUG导致无法接收到离线状态(0)的推送,待对方解决后再开发测试
|
|
|
var data = enPlusService.signValidation(json);
|
|
|
LOGGER.info("【EN+推送】收到充电桩设备状态变化推送:\n{},解密数据:\\n{}\"", json, data);
|
|
|
- // TODO: 2023-08-21 更新数据库中设备的状态
|
|
|
+ // 更新数据库,存入redis,发送邮件通知
|
|
|
var connectorStatusInfo = JSONObject.parseObject(data).getJSONObject("ConnectorStatusInfo").toJavaObject(EnConnectorStatusInfo.class);
|
|
|
if (connectorStatusInfo.getStatus() == 0) {
|
|
|
LOGGER.info("充电桩设备离线:{}", connectorStatusInfo.getConnectorId());
|
|
|
- // 如果设备离线,则存入redis,有效期24h,5分钟之内如果收到该设备上线的推送,则不发送通知并删除redis记录,否则发送通知
|
|
|
+ // 如果设备离线,则存入redis,有效期24h
|
|
|
var monitorLog = new MonitorLog()
|
|
|
.setStationId(kymCache.getStationId(connectorStatusInfo.getConnectorId()))
|
|
|
.setSn(connectorStatusInfo.getConnectorId())
|
|
|
- .setOfflineTime(LocalDateTime.now()).setType(2)
|
|
|
+ .setOfflineTime(LocalDateTime.now())
|
|
|
+ .setType(2)
|
|
|
.setOfflineStatus(connectorStatusInfo.getStatus());
|
|
|
monitorLogService.save(monitorLog);
|
|
|
redisTemplate.opsForValue().set(RedisKeys.OFFLINE.concat(connectorStatusInfo.getConnectorId()), "", 1, TimeUnit.DAYS);
|