From ed099d777aa07354d4876017ccdae498568dd2cc Mon Sep 17 00:00:00 2001 From: "autumn.g@foxmail.com" Date: Wed, 21 Feb 2024 16:23:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E9=80=81=E5=81=9C=E6=AD=A2=E5=85=85?= =?UTF-8?q?=E7=94=B5=E6=8C=87=E4=BB=A4=E6=97=B6=EF=BC=8C=E6=A0=A1=E9=AA=8C?= =?UTF-8?q?=E4=BA=A4=E6=98=93=E6=B5=81=E6=B0=B4=E5=8F=B7=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/jsowell/service/OrderService.java | 6 +++--- .../web/controller/pile/PileRemoteController.java | 2 +- .../common/core/domain/ykc/RealTimeMonitorData.java | 2 +- .../com/jsowell/pile/service/PileRemoteService.java | 13 ++++++++++--- .../pile/service/impl/PileBasicInfoServiceImpl.java | 2 +- 5 files changed, 16 insertions(+), 9 deletions(-) diff --git a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java index 330223ec9..0ddab5ed2 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/OrderService.java @@ -204,7 +204,7 @@ public class OrderService { throw new BusinessException(ReturnCodeEnum.CODE_ORDER_PILE_MAPPING_ERROR); } // 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); } // 发送停止指令 - pileRemoteService.remoteStopCharging(orderInfo.getPileSn(), orderInfo.getConnectorCode()); + pileRemoteService.remoteStopCharging(orderInfo.getPileSn(), orderInfo.getConnectorCode(), orderInfo.getTransactionCode()); log.info("订单号:{}发送停机指令成功", dto.getOrderCode()); } @@ -721,7 +721,7 @@ public class OrderService { orderLogic.settleOrder(data, orderBasicInfo); // 发送停止充电指令 - pileRemoteService.remoteStopCharging(orderBasicInfo.getPileSn(), orderBasicInfo.getConnectorCode()); + pileRemoteService.remoteStopCharging(orderBasicInfo.getPileSn(), orderBasicInfo.getConnectorCode(), orderBasicInfo.getTransactionCode()); log.info("人工结算订单-end orderCode:{}", dto.getOrderCode()); return true; diff --git a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/PileRemoteController.java b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/PileRemoteController.java index 06b32540a..c41f7e3fd 100644 --- a/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/PileRemoteController.java +++ b/jsowell-admin/src/main/java/com/jsowell/web/controller/pile/PileRemoteController.java @@ -95,7 +95,7 @@ public class PileRemoteController extends BaseController { if (StringUtils.isBlank(dto.getPileSn()) || StringUtils.isBlank(dto.getConnectorCode())) { 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(); } catch (BusinessException e) { ajaxResult = AjaxResult.error(e.getCode(), e.getMessage()); diff --git a/jsowell-common/src/main/java/com/jsowell/common/core/domain/ykc/RealTimeMonitorData.java b/jsowell-common/src/main/java/com/jsowell/common/core/domain/ykc/RealTimeMonitorData.java index 7f8b20b61..7974d842b 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/core/domain/ykc/RealTimeMonitorData.java +++ b/jsowell-common/src/main/java/com/jsowell/common/core/domain/ykc/RealTimeMonitorData.java @@ -119,6 +119,6 @@ public class RealTimeMonitorData { private String dateTime; public String getPileConnectorCode() { - return this.pileSn + this.getConnectorCode(); + return this.pileSn + this.connectorCode; } } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/PileRemoteService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/PileRemoteService.java index e0b1adaf7..6f6b4cfad 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/PileRemoteService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/PileRemoteService.java @@ -1,6 +1,8 @@ package com.jsowell.pile.service; 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.exception.BusinessException; import com.jsowell.common.util.StringUtils; @@ -38,7 +40,8 @@ public class PileRemoteService { @Autowired 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数据,校验交易流水号是否一致 - + String pileIsChargingKey = CacheConstants.PILE_IS_CHARGING + pileSn + connectorCode; + String redisResult = redisCache.getCacheObject(pileIsChargingKey); + if (!StringUtils.equals(redisResult, transactionCode)) { + return; + } StopChargingCommand command = StopChargingCommand.builder() .pileSn(pileSn) .connectorCode(connectorCode) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java index 5505fed81..1957fe3e4 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileBasicInfoServiceImpl.java @@ -569,7 +569,7 @@ public class PileBasicInfoServiceImpl implements PileBasicInfoService { redisCache.hset(redisKey, DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:00", now), jsonMsg); // 把充电桩正在充电中的状态存到redis - String pileIsChargingKey = CacheConstants.PILE_IS_CHARGING + realTimeMonitorData.getPileSn(); + String pileIsChargingKey = CacheConstants.PILE_IS_CHARGING + realTimeMonitorData.getPileConnectorCode(); redisCache.setCacheObject(pileIsChargingKey, realTimeMonitorData.getTransactionCode(), 12); }