diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/ConfirmStartChargingRequestHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/ConfirmStartChargingRequestHandler.java index ab22ac741..721383d63 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/ConfirmStartChargingRequestHandler.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/ConfirmStartChargingRequestHandler.java @@ -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, diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/LoginRequestHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/LoginRequestHandler.java index 437d40747..88da2e51e 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/LoginRequestHandler.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/LoginRequestHandler.java @@ -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); } diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/PileApplyMergeChargeHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/PileApplyMergeChargeHandler.java index 442ae94f6..debe0f658 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/PileApplyMergeChargeHandler.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/PileApplyMergeChargeHandler.java @@ -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, diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/RemoteRestartResponseHandler.java b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/RemoteRestartResponseHandler.java index 667333bf1..d13de5ab7 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/RemoteRestartResponseHandler.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/handler/yunkuaichong/RemoteRestartResponseHandler.java @@ -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; 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 a1b9a5630..2b3188c3e 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 @@ -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; diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/service/electricbicycles/impl/EBikeBusinessServiceImpl.java b/jsowell-netty/src/main/java/com/jsowell/netty/service/electricbicycles/impl/EBikeBusinessServiceImpl.java index 34784ec62..4b8e2c419 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/service/electricbicycles/impl/EBikeBusinessServiceImpl.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/service/electricbicycles/impl/EBikeBusinessServiceImpl.java @@ -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); diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/service/rabbitmq/PileRabbitListener.java b/jsowell-netty/src/main/java/com/jsowell/netty/service/rabbitmq/PileRabbitListener.java index 0a9b30643..f49d66ef4 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/service/rabbitmq/PileRabbitListener.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/service/rabbitmq/PileRabbitListener.java @@ -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); } diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/service/yunkuaichong/impl/YKCBusinessServiceImpl.java b/jsowell-netty/src/main/java/com/jsowell/netty/service/yunkuaichong/impl/YKCBusinessServiceImpl.java index 6dc28ffec..755ed1307 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/service/yunkuaichong/impl/YKCBusinessServiceImpl.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/service/yunkuaichong/impl/YKCBusinessServiceImpl.java @@ -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); diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/strategy/ykc/ConfirmStartChargingStrategy.java b/jsowell-netty/src/main/java/com/jsowell/netty/strategy/ykc/ConfirmStartChargingStrategy.java index 3a18a3a29..ea61e0ecc 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/strategy/ykc/ConfirmStartChargingStrategy.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/strategy/ykc/ConfirmStartChargingStrategy.java @@ -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, diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/strategy/ykc/LoginStrategy.java b/jsowell-netty/src/main/java/com/jsowell/netty/strategy/ykc/LoginStrategy.java index d02b63158..b3f1bbc7c 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/strategy/ykc/LoginStrategy.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/strategy/ykc/LoginStrategy.java @@ -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); } diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/strategy/ykc/RemoteRestartStrategy.java b/jsowell-netty/src/main/java/com/jsowell/netty/strategy/ykc/RemoteRestartStrategy.java index f91e31984..e8af48759 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/strategy/ykc/RemoteRestartStrategy.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/strategy/ykc/RemoteRestartStrategy.java @@ -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; diff --git a/jsowell-netty/src/main/java/com/jsowell/netty/strategy/ykc/TransactionRecordsStrategy.java b/jsowell-netty/src/main/java/com/jsowell/netty/strategy/ykc/TransactionRecordsStrategy.java index efdfade3b..1c661ca11 100644 --- a/jsowell-netty/src/main/java/com/jsowell/netty/strategy/ykc/TransactionRecordsStrategy.java +++ b/jsowell-netty/src/main/java/com/jsowell/netty/strategy/ykc/TransactionRecordsStrategy.java @@ -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; diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileMsgRecord.java b/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileMsgRecord.java index 5f10f71db..1936c33f4 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileMsgRecord.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/domain/PileMsgRecord.java @@ -20,6 +20,9 @@ public class PileMsgRecord { */ private String pileSn; + // 交易流水号 + private String transactionCode; + /** * 帧类型 */ diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/dto/SavePileMsgDTO.java b/jsowell-pile/src/main/java/com/jsowell/pile/dto/SavePileMsgDTO.java new file mode 100644 index 000000000..9968518d9 --- /dev/null +++ b/jsowell-pile/src/main/java/com/jsowell/pile/dto/SavePileMsgDTO.java @@ -0,0 +1,30 @@ +package com.jsowell.pile.dto; + +import lombok.*; + +/** + * 充电桩消息保存DTO + */ +@Data +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class SavePileMsgDTO { + // 充电桩编号 + private String pileSn; + + // 充电枪口编号 + private String connectorCode; + + // 交易流水号 + private String transactionCode; + + // 帧类型 + private String frameType; + + // json格式报文 + private String jsonMsg; + + // 原始报文 + private String originalMsg; +} diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/PileMsgRecordService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/PileMsgRecordService.java index 465122a93..2bbc001b2 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/PileMsgRecordService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/PileMsgRecordService.java @@ -3,6 +3,7 @@ package com.jsowell.pile.service; import com.jsowell.common.core.page.PageResponse; import com.jsowell.pile.domain.PileMsgRecord; import com.jsowell.pile.dto.QueryPileDTO; +import com.jsowell.pile.dto.SavePileMsgDTO; import java.time.LocalDateTime; import java.util.Date; @@ -22,7 +23,9 @@ public interface PileMsgRecordService { // List getByConnectorCodeList(List connectorCodeList); - /** + void save(SavePileMsgDTO dto); + + /** * 查询充电桩通信日志 分页 */ PageResponse getPileFeedList(QueryPileDTO dto); diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMsgRecordServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMsgRecordServiceImpl.java index 33889375e..8118e1d09 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMsgRecordServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/PileMsgRecordServiceImpl.java @@ -12,10 +12,12 @@ import com.jsowell.common.util.YKCUtils; import com.jsowell.pile.domain.OrderBasicInfo; import com.jsowell.pile.domain.PileMsgRecord; import com.jsowell.pile.dto.QueryPileDTO; +import com.jsowell.pile.dto.SavePileMsgDTO; import com.jsowell.pile.mapper.PileMsgRecordMapper; import com.jsowell.pile.service.OrderBasicInfoService; import com.jsowell.pile.service.PileMsgRecordService; import com.jsowell.pile.vo.web.PileCommunicationLogVO; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -24,6 +26,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +@Slf4j @Service public class PileMsgRecordServiceImpl implements PileMsgRecordService { @@ -45,6 +48,37 @@ public class PileMsgRecordServiceImpl implements PileMsgRecordService { pileMsgRecordMapper.insertSelective(pileMsgRecord); } + @Override + public void save(SavePileMsgDTO dto) { + // 取出dto中的值 + String pileSn = dto.getPileSn(); + String connectorCode = dto.getConnectorCode(); + String transactionCode = dto.getTransactionCode(); + String frameType = dto.getFrameType(); + String jsonMsg = dto.getJsonMsg(); + String originalMsg = dto.getOriginalMsg(); + + // 必传字段pileSn, frameType, originalMsg, 任一为空,则返回错误 + if (StringUtils.isBlank(pileSn) || StringUtils.isBlank(frameType) || StringUtils.isBlank(originalMsg)) { + // 打印错误信息并返回 + log.error("保存桩消息记录 error -pileSn, frameType, originalMsg不能为空"); + return; + } + + PileMsgRecord pileMsgRecord = new PileMsgRecord(); + pileMsgRecord.setPileSn(pileSn); + pileMsgRecord.setTransactionCode(transactionCode); + // 如果pileSn与connectorCode都不为空,则设置pileConnectorCode为pileSn+connectorCode + if (StringUtils.isNotBlank(pileSn) && StringUtils.isNotBlank(connectorCode)) { + pileMsgRecord.setPileConnectorCode(pileSn + connectorCode); + } + pileMsgRecord.setFrameType(frameType); + pileMsgRecord.setJsonMsg(jsonMsg); + pileMsgRecord.setOriginalMsg(originalMsg); + pileMsgRecord.setCreateTime(DateUtils.getDateTime()); + pileMsgRecordMapper.insertSelective(pileMsgRecord); + } + // @Override // public List getByConnectorCodeList(List connectorCodeList) { // if (CollectionUtils.isEmpty(connectorCodeList)) { diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/YKCPushCommandServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/YKCPushCommandServiceImpl.java index a472c8eab..682f3f099 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/YKCPushCommandServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/YKCPushCommandServiceImpl.java @@ -13,6 +13,7 @@ import com.jsowell.common.util.*; import com.jsowell.common.util.Cp56Time2a.Cp56Time2aUtil; import com.jsowell.common.util.spring.SpringUtils; import com.jsowell.pile.domain.ykcCommond.*; +import com.jsowell.pile.dto.SavePileMsgDTO; import com.jsowell.pile.service.*; import com.jsowell.pile.vo.web.BillingTemplateVO; import com.jsowell.pile.vo.web.PileModelInfoVO; @@ -144,7 +145,16 @@ public class YKCPushCommandServiceImpl implements YKCPushCommandService { // 保存报文 String frameTypeStr = YKCUtils.frameType2Str(((YKCFrameTypeCode) frameTypeCode).getBytes()); if (frameTypeList.contains(frameTypeStr)) { - pileMsgRecordService.save(pileSn, null, frameTypeStr, null, wholeMsg); + // pileMsgRecordService.save(pileSn, null, frameTypeStr, null, wholeMsg); + SavePileMsgDTO savePileMsgDTO = SavePileMsgDTO.builder() + .pileSn(pileSn) + .connectorCode(null) + .transactionCode(null) + .frameType(frameTypeStr) + .jsonMsg(null) + .originalMsg(wholeMsg) + .build(); + pileMsgRecordService.save(savePileMsgDTO); } } @@ -262,7 +272,16 @@ public class YKCPushCommandServiceImpl implements YKCPushCommandService { // 保存报文 String frameTypeStr = YKCUtils.frameType2Str(((YKCFrameTypeCode) frameTypeCode).getBytes()); if (frameTypeList.contains(frameTypeStr)) { - pileMsgRecordService.save(pileSn, null, frameTypeStr, null, wholeMsg); + // pileMsgRecordService.save(pileSn, null, frameTypeStr, null, wholeMsg); + SavePileMsgDTO savePileMsgDTO = SavePileMsgDTO.builder() + .pileSn(pileSn) + .connectorCode(null) + .transactionCode(null) + .frameType(frameTypeStr) + .jsonMsg(null) + .originalMsg(wholeMsg) + .build(); + pileMsgRecordService.save(savePileMsgDTO); } return rpcResponse; } diff --git a/jsowell-pile/src/main/resources/mapper/pile/PileMsgRecordMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/PileMsgRecordMapper.xml index 0d7231796..54001d4c0 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/PileMsgRecordMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/PileMsgRecordMapper.xml @@ -6,6 +6,7 @@ + @@ -35,6 +36,9 @@ pile_sn, + + transaction_code, + frame_type, @@ -61,6 +65,9 @@ #{pileSn,jdbcType=VARCHAR}, + + #{transactionCode,jdbcType=VARCHAR}, + #{frameType,jdbcType=VARCHAR},