From ecdecbaf74ad40f4738e97935459fb4a61274479 Mon Sep 17 00:00:00 2001 From: Lemon Date: Mon, 2 Dec 2024 10:08:32 +0800 Subject: [PATCH 1/2] =?UTF-8?q?update=20=E7=AE=97=E6=B3=95=E5=BA=94?= =?UTF-8?q?=E7=94=A8Service?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsowell/common/constant/CacheConstants.java | 7 ++++++- .../yunkuaichong/ChargingHandshakeHandler.java | 2 ++ .../ParameterConfigurationHandler.java | 3 +-- .../TransactionRecordsRequestHandler.java | 5 +++++ .../service/impl/ChargeAlgorithmService.java | 14 +++++++++----- 5 files changed, 23 insertions(+), 8 deletions(-) diff --git a/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java b/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java index 39657f815..47e51bbc7 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java +++ b/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java @@ -158,7 +158,7 @@ public class CacheConstants { /** * 0x17参数配置缓存 */ - public static final String PARAMETER_CONFIGURATION_BY_TRANSACTIONCODE = "ParameterConfigurationByTransactionCode:"; + public static final String PARAMETER_CONFIGURATION_BY_TRANSACTION_CODE = "parameter_configuration_by_transaction_code:"; /** * 充电桩最后连接时间 @@ -170,6 +170,11 @@ public class CacheConstants { */ public static final String SELECT_PILE_CONNECTOR_INFO_LIST = "select_pile_connector_info_list:"; + /** + * 0x3b交易记录缓存key + */ + public static final String TRANSACTION_RECORD_BY_TRANSACTION_CODE = "transaction_record_by_transaction_code:"; + /** * 充电桩状态前缀 */ diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/ChargingHandshakeHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/ChargingHandshakeHandler.java index 28e518974..8f7ea544c 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/ChargingHandshakeHandler.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/ChargingHandshakeHandler.java @@ -51,12 +51,14 @@ public class ChargingHandshakeHandler extends AbstractYkcHandler { startIndex += length; length = 1; byte[] pileConnectorNumByteArr = BytesUtil.copyBytes(msgBody, startIndex, length); + String connectorCode = BytesUtil.bcd2Str(pileConnectorNumByteArr); // BMS 通信协议版本号 当前版本为 V1.1, 表示为: byte3, byte2—0001H;byte1—01H startIndex += length; length = 3; byte[] BMSCommunicationProtocolVersionByteArr = BytesUtil.copyBytes(msgBody, startIndex, length); + // BMS 电池类型 01H:铅酸电池;02H:氢 电池;03H:磷酸铁锂电池;04H:锰 酸锂电池;05H:钴酸锂电池 ;06H: 三元材料电池;07H:聚合物锂离子 电池;08H:钛酸锂电池;FFH:其他 startIndex += length; length = 1; diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/ParameterConfigurationHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/ParameterConfigurationHandler.java index 2d89ebfc8..674e2dba9 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/ParameterConfigurationHandler.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/ParameterConfigurationHandler.java @@ -15,7 +15,6 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import java.math.BigDecimal; import java.util.Objects; import java.util.concurrent.TimeUnit; @@ -146,7 +145,7 @@ public class ParameterConfigurationHandler extends AbstractYkcHandler { .pileMinOutputCurrent(pileMinOutputCurrent) .build(); - String redisKey = CacheConstants.PARAMETER_CONFIGURATION_BY_TRANSACTIONCODE + transactionCode; + String redisKey = CacheConstants.PARAMETER_CONFIGURATION_BY_TRANSACTION_CODE + transactionCode; redisCache.setCacheObject(redisKey, data, 7, TimeUnit.DAYS); // 查询该订单下信息,将起始soc传入 diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/TransactionRecordsRequestHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/TransactionRecordsRequestHandler.java index 599d49ad6..d02dc002a 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/TransactionRecordsRequestHandler.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/TransactionRecordsRequestHandler.java @@ -33,6 +33,7 @@ import org.springframework.stereotype.Component; import java.util.Date; import java.util.Objects; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.TimeUnit; /** * 交易记录确认 @@ -562,6 +563,10 @@ public class TransactionRecordsRequestHandler extends AbstractYkcHandler { .logicCard(logicCard) .build(); + // 保存交易记录到redis (缓存时间1天) + String recordRedisKey = CacheConstants.TRANSACTION_RECORD_BY_TRANSACTION_CODE + transactionCode; + redisCache.setCacheObject(recordRedisKey, data, 1, TimeUnit.DAYS); + // 保存报文 String jsonMsg = JSON.toJSONString(data); pileMsgRecordService.save(pileSn, pileSn + connectorCode, type, jsonMsg, ykcDataProtocol.getHEXString()); diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ChargeAlgorithmService.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ChargeAlgorithmService.java index 485a2518a..d9567f1f0 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ChargeAlgorithmService.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/platform/service/impl/ChargeAlgorithmService.java @@ -2,9 +2,9 @@ package com.jsowell.thirdparty.platform.service.impl; import com.jsowell.common.constant.CacheConstants; import com.jsowell.common.constant.Constants; +import com.jsowell.common.core.domain.ykc.TransactionRecordsData; import com.jsowell.common.core.redis.RedisCache; import com.jsowell.common.util.StringUtils; -import com.jsowell.pile.domain.OrderBasicInfo; import com.jsowell.pile.service.OrderBasicInfoService; import com.jsowell.pile.thirdparty.ParameterConfigData; import com.jsowell.pile.vo.uniapp.customer.OrderVO; @@ -37,12 +37,16 @@ public class ChargeAlgorithmService { if (orderVO == null) { return; } + String transactionCode = orderVO.getTransactionCode(); // 获取0x17缓存中的信息 - String redisKey = CacheConstants.PARAMETER_CONFIGURATION_BY_TRANSACTIONCODE + orderVO.getTransactionCode(); + String redisKey = CacheConstants.PARAMETER_CONFIGURATION_BY_TRANSACTION_CODE + transactionCode; ParameterConfigData parameterConfigData = redisCache.getCacheObject(redisKey); if (parameterConfigData == null) { return; } + // 获取0x3b缓存信息 + String transactionDataKey = CacheConstants.TRANSACTION_RECORD_BY_TRANSACTION_CODE + transactionCode; + TransactionRecordsData transactionRecordsData = redisCache.getCacheObject(transactionDataKey); ChargeAlgorithmData data = ChargeAlgorithmData.builder() .orderCode(orderCode) @@ -61,13 +65,13 @@ public class ChargeAlgorithmService { // .bmsDemandVoltage(parameterConfigData.get) // .bmsDemandElectricity() // .bmsChargeMode() - // .readBeforeCharge() - // .readCurrentCharge() + .readBeforeCharge(transactionRecordsData.getAmmeterTotalStart()) + .readCurrentCharge(transactionRecordsData.getAmmeterTotalEnd()) .beginTime(orderVO.getStartTime()) .maxAllowTemp(parameterConfigData.getBmsMaxTemperature()) // .chargePower() // .ratedCapacity() - // .nominalEnergy() + .nominalEnergy(parameterConfigData.getBmsSumEnergy()) // .ratedVoltage() .singleMaxVoltage(parameterConfigData.getPileMaxOutputVoltage()) .singleMinVoltage(parameterConfigData.getPileMinOutputVoltage()) From 2344b1fae8b14bf3db10aeffb5ad6774923c859f Mon Sep 17 00:00:00 2001 From: Guoqs <123@jsowell.com> Date: Mon, 2 Dec 2024 14:43:22 +0800 Subject: [PATCH 2/2] =?UTF-8?q?update=20=E5=93=8D=E5=BA=94=E8=AF=B7?= =?UTF-8?q?=E6=B1=82id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yunkuaichong/ReservationChargingResponseHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/ReservationChargingResponseHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/ReservationChargingResponseHandler.java index 0efc676d7..b3bad640e 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/ReservationChargingResponseHandler.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/ReservationChargingResponseHandler.java @@ -81,7 +81,7 @@ public class ReservationChargingResponseHandler extends AbstractYkcHandler { transactionCode, pileSn, connectorCode, resultCode, failedReason); // 根据请求id,在集合中找到与外部线程通信的SyncPromise对象 - String msgId = ctx.channel().id().toString() + "_" + YKCFrameTypeCode.RESERVATION_CHARGING_SETUP_CODE.getCode(); + String msgId = ctx.channel().id().toString() + "_" + YKCUtils.frameType2Str(YKCFrameTypeCode.RESERVATION_CHARGING_SETUP_CODE.getBytes()); log.info("同步获取响应数据-收到消息, msgId:{}", msgId); SyncPromise syncPromise = RpcUtil.getSyncPromiseMap().get(msgId); if(syncPromise != null) {