发送停止充电指令时,校验交易流水号是否一致

This commit is contained in:
2024-02-21 16:23:40 +08:00
parent fd83d930a5
commit ed099d777a
5 changed files with 16 additions and 9 deletions

View File

@@ -204,7 +204,7 @@ public class OrderService {
throw new BusinessException(ReturnCodeEnum.CODE_ORDER_PILE_MAPPING_ERROR); throw new BusinessException(ReturnCodeEnum.CODE_ORDER_PILE_MAPPING_ERROR);
} }
// push远程停机指令 // push远程停机指令
pileRemoteService.remoteStopCharging(dto.getPileSn(), dto.getConnectorCode()); pileRemoteService.remoteStopCharging(dto.getPileSn(), dto.getConnectorCode(), orderBasicInfo.getTransactionCode());
} }
@@ -308,7 +308,7 @@ public class OrderService {
throw new BusinessException(ReturnCodeEnum.CODE_ORDER_MEMBER_NOT_MATCH_ERROR); throw new BusinessException(ReturnCodeEnum.CODE_ORDER_MEMBER_NOT_MATCH_ERROR);
} }
// 发送停止指令 // 发送停止指令
pileRemoteService.remoteStopCharging(orderInfo.getPileSn(), orderInfo.getConnectorCode()); pileRemoteService.remoteStopCharging(orderInfo.getPileSn(), orderInfo.getConnectorCode(), orderInfo.getTransactionCode());
log.info("订单号:{}发送停机指令成功", dto.getOrderCode()); log.info("订单号:{}发送停机指令成功", dto.getOrderCode());
} }
@@ -721,7 +721,7 @@ public class OrderService {
orderLogic.settleOrder(data, orderBasicInfo); orderLogic.settleOrder(data, orderBasicInfo);
// 发送停止充电指令 // 发送停止充电指令
pileRemoteService.remoteStopCharging(orderBasicInfo.getPileSn(), orderBasicInfo.getConnectorCode()); pileRemoteService.remoteStopCharging(orderBasicInfo.getPileSn(), orderBasicInfo.getConnectorCode(), orderBasicInfo.getTransactionCode());
log.info("人工结算订单-end orderCode:{}", dto.getOrderCode()); log.info("人工结算订单-end orderCode:{}", dto.getOrderCode());
return true; return true;

View File

@@ -95,7 +95,7 @@ public class PileRemoteController extends BaseController {
if (StringUtils.isBlank(dto.getPileSn()) || StringUtils.isBlank(dto.getConnectorCode())) { if (StringUtils.isBlank(dto.getPileSn()) || StringUtils.isBlank(dto.getConnectorCode())) {
throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR); throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR);
} }
pileRemoteService.remoteStopCharging(dto.getPileSn(), dto.getConnectorCode()); pileRemoteService.remoteStopCharging(dto.getPileSn(), dto.getConnectorCode(), null);
ajaxResult = AjaxResult.success(); ajaxResult = AjaxResult.success();
} catch (BusinessException e) { } catch (BusinessException e) {
ajaxResult = AjaxResult.error(e.getCode(), e.getMessage()); ajaxResult = AjaxResult.error(e.getCode(), e.getMessage());

View File

@@ -119,6 +119,6 @@ public class RealTimeMonitorData {
private String dateTime; private String dateTime;
public String getPileConnectorCode() { public String getPileConnectorCode() {
return this.pileSn + this.getConnectorCode(); return this.pileSn + this.connectorCode;
} }
} }

View File

@@ -1,6 +1,8 @@
package com.jsowell.pile.service; package com.jsowell.pile.service;
import com.google.common.collect.Lists; import com.google.common.collect.Lists;
import com.jsowell.common.constant.CacheConstants;
import com.jsowell.common.core.redis.RedisCache;
import com.jsowell.common.enums.ykc.ReturnCodeEnum; import com.jsowell.common.enums.ykc.ReturnCodeEnum;
import com.jsowell.common.exception.BusinessException; import com.jsowell.common.exception.BusinessException;
import com.jsowell.common.util.StringUtils; import com.jsowell.common.util.StringUtils;
@@ -38,7 +40,8 @@ public class PileRemoteService {
@Autowired @Autowired
private PileFirmwareInfoService pileFirmwareInfoService; private PileFirmwareInfoService pileFirmwareInfoService;
@Autowired
private RedisCache redisCache;
/** /**
* 获取充电桩实时数据信息 * 获取充电桩实时数据信息
* *
@@ -89,9 +92,13 @@ public class PileRemoteService {
/** /**
* 远程停止充电 * 远程停止充电
*/ */
public void remoteStopCharging(String pileSn, String connectorCode) { public void remoteStopCharging(String pileSn, String connectorCode, String transactionCode) {
// TODO 获取充电桩0x13数据校验交易流水号是否一致 // TODO 获取充电桩0x13数据校验交易流水号是否一致
String pileIsChargingKey = CacheConstants.PILE_IS_CHARGING + pileSn + connectorCode;
String redisResult = redisCache.getCacheObject(pileIsChargingKey);
if (!StringUtils.equals(redisResult, transactionCode)) {
return;
}
StopChargingCommand command = StopChargingCommand.builder() StopChargingCommand command = StopChargingCommand.builder()
.pileSn(pileSn) .pileSn(pileSn)
.connectorCode(connectorCode) .connectorCode(connectorCode)

View File

@@ -569,7 +569,7 @@ public class PileBasicInfoServiceImpl implements PileBasicInfoService {
redisCache.hset(redisKey, DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:00", now), jsonMsg); redisCache.hset(redisKey, DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:00", now), jsonMsg);
// 把充电桩正在充电中的状态存到redis // 把充电桩正在充电中的状态存到redis
String pileIsChargingKey = CacheConstants.PILE_IS_CHARGING + realTimeMonitorData.getPileSn(); String pileIsChargingKey = CacheConstants.PILE_IS_CHARGING + realTimeMonitorData.getPileConnectorCode();
redisCache.setCacheObject(pileIsChargingKey, realTimeMonitorData.getTransactionCode(), 12); redisCache.setCacheObject(pileIsChargingKey, realTimeMonitorData.getTransactionCode(), 12);
} }