新增 桩实时数据 故障原因字段

This commit is contained in:
Lemon
2023-08-14 11:41:23 +08:00
parent 4edaef6661
commit acef56864e
3 changed files with 26 additions and 4 deletions

View File

@@ -143,6 +143,11 @@ public class CacheConstants {
*/
public static final String AUTHORIZER_REFRESH_TOKEN = "authorizer_refresh_token:";
/**
* 桩硬件故障
*/
public static final String PILE_HARDWARE_FAULT = "pile_hardware_fault:";
/**
* 充电桩sn生成 key
*/

View File

@@ -3,9 +3,11 @@ package com.jsowell.netty.handler;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.google.common.collect.Lists;
import com.jsowell.common.constant.CacheConstants;
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
import com.jsowell.common.core.domain.ykc.YKCDataProtocol;
import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode;
import com.jsowell.common.core.redis.RedisCache;
import com.jsowell.common.enums.ykc.OrderStatusEnum;
import com.jsowell.common.enums.ykc.YKCPileFaultReasonEnum;
import com.jsowell.common.util.BytesUtil;
@@ -25,6 +27,7 @@ import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.TimeUnit;
/**
* 获取桩上传的实时监测数据
@@ -59,6 +62,9 @@ public class UploadRealTimeMonitorHandler extends AbstractHandler {
@Autowired
private IThirdPartyStationRelationService thirdPartyStationRelationService;
@Autowired
private RedisCache redisCache;
@Override
public byte[] supplyProcess(YKCDataProtocol ykcDataProtocol, Channel channel) {
log.info("[===获取桩上传的实时监测数据===] param:{}, channel:{}", JSONObject.toJSONString(ykcDataProtocol), channel.toString());
@@ -248,6 +254,13 @@ public class UploadRealTimeMonitorHandler extends AbstractHandler {
// 公共方法修改状态
pileBasicInfoService.updateStatus(BytesUtil.bcd2Str(ykcDataProtocol.getFrameType()), pileSn, connectorCode, connectorStatus, putGunType);
// 01表示故障
if (StringUtils.equals(connectorStatus, "01")) {
// 故障原因存入缓存
String redisKey = CacheConstants.PILE_HARDWARE_FAULT + pileSn + connectorCode;
redisCache.setCacheObject(redisKey, faultReason, 5, TimeUnit.MINUTES);
}
// 03表示充电中
if (StringUtils.equals(connectorStatus, "03")) {
// 充电时保存实时数据到redis

View File

@@ -474,12 +474,16 @@ public class PileConnectorInfoServiceImpl implements IPileConnectorInfoService {
BigDecimal instantPowerTemp = outputVoltage.multiply(outputCurrent);
BigDecimal instantPower = instantPowerTemp.divide(new BigDecimal(1000), 2, BigDecimal.ROUND_HALF_UP);
pileConnectorInfoVO.setInstantPower(instantPower);
// 如果故障,添加故障原因
if (!StringUtils.equals("", realTimeMonitorData.getHardwareFault())) {
pileConnectorInfoVO.setFaultReason(realTimeMonitorData.getHardwareFault());
}
log.info("枪口实时数据:{}", JSONObject.toJSONString(pileConnectorInfoVO));
}
// 查缓存是否故障
String redisKey = CacheConstants.PILE_HARDWARE_FAULT + pileConnectorInfoVO.getPileConnectorCode();
String faultReason = redisCache.getCacheObject(redisKey);
// 如果不为空set 数据
if (StringUtils.isNotBlank(faultReason)) {
pileConnectorInfoVO.setFaultReason(faultReason);
}
if (checkPileOffLine(pileConnectorInfoVO.getPileSn())) {
// 最后收到消息的时间在1分钟前则返回给前端枪口离线