充电桩报文记录表,添加交易流水号字段

This commit is contained in:
bl\GQS02
2025-11-06 15:32:45 +08:00
parent 5c5f8c565c
commit 66ba4ce4a3
18 changed files with 188 additions and 18 deletions

View File

@@ -15,6 +15,7 @@ import com.jsowell.netty.factory.YKCOperateFactory;
import com.jsowell.pile.domain.PileBasicInfo;
import com.jsowell.pile.dto.ConfirmStartChargingData;
import com.jsowell.pile.dto.GenerateOrderDTO;
import com.jsowell.pile.dto.SavePileMsgDTO;
import com.jsowell.pile.service.*;
import com.jsowell.pile.vo.base.ConfirmStartChargingMemberVO;
import io.netty.channel.ChannelHandlerContext;
@@ -239,7 +240,17 @@ public class ConfirmStartChargingRequestHandler extends AbstractYkcHandler {
// 保存报文
String jsonMsg = JSON.toJSONString(confirmStartChargingData);
pileMsgRecordService.save(pileSn, pileSn, type, jsonMsg, ykcDataProtocol.getHEXString());
// pileMsgRecordService.save(pileSn, pileSn, type, jsonMsg, ykcDataProtocol.getHEXString());
SavePileMsgDTO savePileMsgDTO = SavePileMsgDTO.builder()
.pileSn(pileSn)
.connectorCode(connectorCode)
.transactionCode(transactionCode)
.frameType(type)
.jsonMsg(jsonMsg)
.originalMsg(ykcDataProtocol.getHEXString())
.build();
pileMsgRecordService.save(savePileMsgDTO);
// 拼装消息体
byte[] msgBodyByteArr = Bytes.concat(serialNumByteArr, pileSnByteArr, connectorNumByteArr, cardNumByteArr, accountBalanceByteArr,

View File

@@ -16,6 +16,7 @@ import com.jsowell.pile.domain.PileBasicInfo;
import com.jsowell.pile.domain.ykcCommond.IssueQRCodeCommand;
import com.jsowell.pile.domain.ykcCommond.ProofreadTimeCommand;
import com.jsowell.pile.domain.ykcCommond.PublishPileBillingTemplateCommand;
import com.jsowell.pile.dto.SavePileMsgDTO;
import com.jsowell.pile.service.PileBasicInfoService;
import com.jsowell.pile.service.PileBillingTemplateService;
import com.jsowell.pile.service.PileMsgRecordService;
@@ -274,7 +275,16 @@ public class LoginRequestHandler extends AbstractYkcHandler {
// 保存报文 没有登录认证通过还要不要保存报文?
try {
String jsonMsg = JSON.toJSONString(loginRequestData);
pileMsgRecordService.save(pileSn, pileSn, type, jsonMsg, ykcDataProtocol.getHEXString());
// pileMsgRecordService.save(pileSn, pileSn, type, jsonMsg, ykcDataProtocol.getHEXString());
SavePileMsgDTO dto = SavePileMsgDTO.builder()
.pileSn(pileSn)
.connectorCode(null)
.transactionCode(null)
.frameType(type)
.jsonMsg(jsonMsg)
.originalMsg(ykcDataProtocol.getHEXString())
.build();
pileMsgRecordService.save(dto);
} catch (Exception e) {
log.error("保存报文失败pileSn:{}", pileSn, e);
}

View File

@@ -9,6 +9,7 @@ import com.jsowell.common.util.BytesUtil;
import com.jsowell.common.util.StringUtils;
import com.jsowell.common.util.YKCUtils;
import com.jsowell.netty.factory.YKCOperateFactory;
import com.jsowell.pile.dto.SavePileMsgDTO;
import com.jsowell.pile.dto.VerifyMergeChargeOrderDTO;
import com.jsowell.pile.service.OrderBasicInfoService;
import com.jsowell.pile.service.PileMsgRecordService;
@@ -164,7 +165,16 @@ public class PileApplyMergeChargeHandler extends AbstractYkcHandler{
// 并充序号
// 保存报文
String jsonMsg = JSON.toJSONString(dto);
pileMsgRecordService.save(pileSn, pileSn, type, jsonMsg, ykcDataProtocol.getHEXString());
// pileMsgRecordService.save(pileSn, pileSn, type, jsonMsg, ykcDataProtocol.getHEXString());
SavePileMsgDTO dto1 = SavePileMsgDTO.builder()
.pileSn(pileSn)
.connectorCode(connectorCode)
.transactionCode(transactionCode)
.frameType(type)
.jsonMsg(jsonMsg)
.originalMsg(ykcDataProtocol.getHEXString())
.build();
pileMsgRecordService.save(dto1);
byte[] msgBodyByteArr = Bytes.concat(serialNumByteArr, pileSnByteArr, connectorNumByteArr, cardNumByteArr,

View File

@@ -6,6 +6,7 @@ import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode;
import com.jsowell.common.util.BytesUtil;
import com.jsowell.common.util.YKCUtils;
import com.jsowell.netty.factory.YKCOperateFactory;
import com.jsowell.pile.dto.SavePileMsgDTO;
import com.jsowell.pile.service.PileMsgRecordService;
import io.netty.channel.ChannelHandlerContext;
import lombok.extern.slf4j.Slf4j;
@@ -49,7 +50,14 @@ public class RemoteRestartResponseHandler extends AbstractYkcHandler {
// 保存报文
String jsonMsg = JSON.toJSONString(ykcDataProtocol);
pileMsgRecordService.save(pileSn, null, type, jsonMsg, ykcDataProtocol.getHEXString());
// pileMsgRecordService.save(pileSn, null, type, jsonMsg, ykcDataProtocol.getHEXString());
SavePileMsgDTO savePileMsgDTO = SavePileMsgDTO.builder()
.pileSn(pileSn)
.frameType(type)
.jsonMsg(jsonMsg)
.originalMsg(ykcDataProtocol.getHEXString())
.build();
pileMsgRecordService.save(savePileMsgDTO);
// 设置结果
startIndex += length;

View File

@@ -4,7 +4,6 @@ import com.alibaba.fastjson2.JSON;
import com.google.common.primitives.Bytes;
import com.jsowell.common.constant.CacheConstants;
import com.jsowell.common.constant.Constants;
import com.jsowell.common.constant.mq.ThirdPartyRabbitConstants;
import com.jsowell.common.core.domain.ykc.TransactionRecordsData;
import com.jsowell.common.core.domain.ykc.YKCDataProtocol;
import com.jsowell.common.core.domain.ykc.YKCFrameTypeCode;
@@ -21,6 +20,7 @@ import com.jsowell.common.util.spring.SpringUtils;
import com.jsowell.netty.factory.YKCOperateFactory;
import com.jsowell.pile.domain.OrderBasicInfo;
import com.jsowell.pile.domain.PileBasicInfo;
import com.jsowell.pile.dto.SavePileMsgDTO;
import com.jsowell.pile.service.*;
import com.jsowell.pile.service.programlogic.AbstractProgramLogic;
import com.jsowell.pile.service.programlogic.ProgramLogicFactory;
@@ -582,7 +582,16 @@ public class TransactionRecordsRequestHandler extends AbstractYkcHandler {
// 保存报文
String jsonMsg = JSON.toJSONString(data);
pileMsgRecordService.save(pileSn, pileSn + connectorCode, type, jsonMsg, ykcDataProtocol.getHEXString());
// pileMsgRecordService.save(pileSn, pileSn + connectorCode, type, jsonMsg, ykcDataProtocol.getHEXString());
SavePileMsgDTO dto2 = SavePileMsgDTO.builder()
.pileSn(pileSn)
.connectorCode(connectorCode)
.transactionCode(transactionCode)
.frameType(type)
.jsonMsg(jsonMsg)
.originalMsg(ykcDataProtocol.getHEXString())
.build();
pileMsgRecordService.save(dto2);
// 处理订单加锁
String lockKey = "settle_order_" + transactionCode;

View File

@@ -13,6 +13,7 @@ import com.jsowell.netty.factory.EBikeOperateFactory;
import com.jsowell.netty.handler.electricbicycles.AbstractEBikeHandler;
import com.jsowell.netty.service.electricbicycles.EBikeBusinessService;
import com.jsowell.pile.domain.ebike.EBikeCommandEnum;
import com.jsowell.pile.dto.SavePileMsgDTO;
import com.jsowell.pile.service.OrderBasicInfoService;
import com.jsowell.pile.service.PileConnectorInfoService;
import com.jsowell.pile.service.PileMsgRecordService;
@@ -82,7 +83,16 @@ public class EBikeBusinessServiceImpl implements EBikeBusinessService {
// 保存报文
String type = YKCFrameTypeCode.PILE_LOG_OUT.getCode() + "";
String jsonMsg = YKCFrameTypeCode.PILE_LOG_OUT.getValue();
pileMsgRecordService.save(pileSn, pileSn, type, jsonMsg, "");
// pileMsgRecordService.save(pileSn, pileSn, type, jsonMsg, "");
SavePileMsgDTO dto = SavePileMsgDTO.builder()
.pileSn(pileSn)
.connectorCode(pileSn)
.transactionCode("")
.frameType(type)
.jsonMsg(jsonMsg)
.originalMsg(jsonMsg)
.build();
pileMsgRecordService.save(dto);
// 删除桩编号和channel的关系
// PileChannelEntity.removeByPileSn(pileSn);

View File

@@ -4,7 +4,6 @@ import com.alibaba.fastjson2.JSON;
import com.google.common.primitives.Bytes;
import com.jsowell.common.constant.CacheConstants;
import com.jsowell.common.constant.Constants;
import com.jsowell.common.constant.mq.ThirdPartyRabbitConstants;
import com.jsowell.common.core.domain.ykc.LoginRequestData;
import com.jsowell.common.core.domain.ykc.RealTimeMonitorData;
import com.jsowell.common.core.domain.ykc.YKCDataProtocol;
@@ -24,6 +23,7 @@ import com.jsowell.pile.domain.OrderBasicInfo;
import com.jsowell.pile.domain.PileBasicInfo;
import com.jsowell.pile.domain.ykcCommond.IssueQRCodeCommand;
import com.jsowell.pile.domain.ykcCommond.ProofreadTimeCommand;
import com.jsowell.pile.dto.SavePileMsgDTO;
import com.jsowell.pile.service.OrderBasicInfoService;
import com.jsowell.pile.service.PileBasicInfoService;
import com.jsowell.pile.service.PileMsgRecordService;
@@ -216,7 +216,14 @@ public class PileRabbitListener {
// 保存报文 没有登录认证通过还要不要保存报文?
try {
String jsonMsg = JSON.toJSONString(loginRequestData);
pileMsgRecordService.save(pileSn, pileSn, YKCUtils.frameType2Str(YKCFrameTypeCode.LOGIN_CODE.getBytes()), jsonMsg, ykcDataProtocol.getHEXString());
// pileMsgRecordService.save(pileSn, pileSn, YKCUtils.frameType2Str(YKCFrameTypeCode.LOGIN_CODE.getBytes()), jsonMsg, ykcDataProtocol.getHEXString());
SavePileMsgDTO savePileMsgDTO = SavePileMsgDTO.builder()
.pileSn(pileSn)
.frameType(YKCUtils.frameType2Str(YKCFrameTypeCode.LOGIN_CODE.getBytes()))
.jsonMsg(jsonMsg)
.originalMsg(ykcDataProtocol.getHEXString())
.build();
pileMsgRecordService.save(savePileMsgDTO);
} catch (Exception e) {
log.error("保存报文失败pileSn:{}", pileSn, e);
}

View File

@@ -11,11 +11,11 @@ import com.jsowell.netty.factory.YKCOperateFactoryV2;
import com.jsowell.netty.handler.yunkuaichong.AbstractYkcHandler;
import com.jsowell.netty.service.yunkuaichong.YKCBusinessService;
import com.jsowell.netty.strategy.ykc.AbstractYkcStrategy;
import com.jsowell.pile.dto.SavePileMsgDTO;
import com.jsowell.pile.service.OrderBasicInfoService;
import com.jsowell.pile.service.PileConnectorInfoService;
import com.jsowell.pile.service.PileMsgRecordService;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelId;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -85,7 +85,16 @@ public class YKCBusinessServiceImpl implements YKCBusinessService {
// 保存报文
String type = YKCFrameTypeCode.PILE_LOG_OUT.getCode() + "";
String jsonMsg = YKCFrameTypeCode.PILE_LOG_OUT.getValue() + ": 充电桩主动断开链接";
pileMsgRecordService.save(pileSn, pileSn, type, jsonMsg, "");
// pileMsgRecordService.save(pileSn, pileSn, type, jsonMsg, "");
SavePileMsgDTO dto = SavePileMsgDTO.builder()
.pileSn(pileSn)
.connectorCode(pileSn)
.transactionCode("")
.frameType(type)
.jsonMsg(jsonMsg)
.originalMsg(jsonMsg)
.build();
pileMsgRecordService.save(dto);
// 删除连接
// PileChannelEntity.deleteChannel(pileSn, ctx);

View File

@@ -259,7 +259,7 @@ public class ConfirmStartChargingStrategy implements AbstractYkcStrategy {
// 保存报文
String jsonMsg = JSON.toJSONString(confirmStartChargingData);
pileMsgRecordService.save(pileSn, pileSn, type, jsonMsg, ykcDataProtocol.getHEXString());
// pileMsgRecordService.save(pileSn, pileSn, type, jsonMsg, ykcDataProtocol.getHEXString());
// 拼装消息体
byte[] msgBodyByteArr = Bytes.concat(serialNumByteArr, pileSnByteArr, connectorNumByteArr, cardNumByteArr, accountBalanceByteArr,

View File

@@ -218,7 +218,7 @@ public class LoginStrategy implements AbstractYkcStrategy {
// 保存报文 没有登录认证通过还要不要保存报文?
try {
String jsonMsg = JSON.toJSONString(data0x01);
pileMsgRecordService.save(pileSn, pileSn, type, jsonMsg, ykcDataProtocol.getHEXString());
// pileMsgRecordService.save(pileSn, pileSn, type, jsonMsg, ykcDataProtocol.getHEXString());
} catch (Exception e) {
log.error("保存报文失败pileSn:{}", pileSn, e);
}

View File

@@ -51,7 +51,7 @@ public class RemoteRestartStrategy implements AbstractYkcStrategy {
// 保存报文
String jsonMsg = JSON.toJSONString(ykcDataProtocol);
pileMsgRecordService.save(pileSn, null, type, jsonMsg, ykcDataProtocol.getHEXString());
// pileMsgRecordService.save(pileSn, null, type, jsonMsg, ykcDataProtocol.getHEXString());
// 设置结果
startIndex += length;

View File

@@ -563,7 +563,7 @@ public class TransactionRecordsStrategy implements AbstractYkcStrategy {
// 保存报文
String jsonMsg = JSON.toJSONString(data);
pileMsgRecordService.save(pileSn, pileSn + connectorCode, type, jsonMsg, ykcDataProtocol.getHEXString());
// pileMsgRecordService.save(pileSn, pileSn + connectorCode, type, jsonMsg, ykcDataProtocol.getHEXString());
// 处理订单加锁
String lockKey = "settle_order_" + transactionCode;