diff --git a/jsowell-common/src/main/java/com/jsowell/common/core/domain/ykc/YKCFrameTypeCode.java b/jsowell-common/src/main/java/com/jsowell/common/core/domain/ykc/YKCFrameTypeCode.java index d5e5b8a2d..fc993d9d5 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/core/domain/ykc/YKCFrameTypeCode.java +++ b/jsowell-common/src/main/java/com/jsowell/common/core/domain/ykc/YKCFrameTypeCode.java @@ -106,6 +106,8 @@ public enum YKCFrameTypeCode { PILE_APPLY_MERGE_CHARGE_CODE(0xA1, "充电桩主动申请并充充电"), + CONFIRM_MERGE_CHARGE_CODE(0xA2, "运营平台确认并充启动充电"), + // 自定义FrameType PILE_LOG_OUT(9999, "充电桩退出"), @@ -162,6 +164,8 @@ public enum YKCFrameTypeCode { // 充电桩请求开始充电 START_CHARGING(REQUEST_START_CHARGING_CODE.getCode(), CONFIRM_START_CHARGING_CODE.getCode()), + START_MERGE_CHARGE(PILE_APPLY_MERGE_CHARGE_CODE.getCode(), CONFIRM_MERGE_CHARGE_CODE.getCode()), + // 交易记录 TRANSACTION_RECORDS(TRANSACTION_RECORDS_CODE.getCode(), TRANSACTION_RECORDS_CONFIRM_CODE.getCode()), TRANSACTION_RECORDS_V13(TRANSACTION_RECORDS_OLD_VERSION_CODE.getCode(), TRANSACTION_RECORDS_CONFIRM_CODE.getCode()), diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java index 8164a74c8..28835b4fc 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/OrderBasicInfoServiceImpl.java @@ -4522,6 +4522,12 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { */ @Override public OrderBasicInfo saveOrderForEV(GenerateOrderDTO dto) throws ParseException { + String pileConnectorCode = dto.getPileSn() + dto.getConnectorCode(); + // 先根据枪口号查询是否有未启动的并充订单 + OrderBasicInfo orderBasicInfo = selectNotStartMergeOrder(pileConnectorCode); + if (orderBasicInfo != null) { + return orderBasicInfo; + } String orderCode = generateNewOrderCode(); String transactionCode = dto.getTransactionCode(); if (StringUtils.isBlank(transactionCode)) { @@ -4538,7 +4544,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { String merchantId = pileStationInfo != null ? String.valueOf(pileStationInfo.getMerchantId()) : ""; String plateNumber = dto.getPlateNumber() != null ? dto.getPlateNumber() : ""; // 订单基本信息 - OrderBasicInfo orderBasicInfo = OrderBasicInfo.builder() + orderBasicInfo = OrderBasicInfo.builder() .orderCode(orderCode) .transactionCode(transactionCode) .orderStatus(OrderStatusEnum.NOT_START.getValue()) @@ -4548,7 +4554,7 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { .merchantId(merchantId) .pileSn(dto.getPileSn()) .connectorCode(dto.getConnectorCode()) - .pileConnectorCode(dto.getPileSn() + dto.getConnectorCode()) + .pileConnectorCode(pileConnectorCode) .startMode(dto.getStartMode()) .payStatus(Constants.ZERO) // .payAmount(dto.getChargeAmount()) // 支付完成后填入支付金额 @@ -4645,6 +4651,19 @@ public class OrderBasicInfoServiceImpl implements OrderBasicInfoService { return orderBasicInfo; } + /** + * 查询未启动的并充订单 + * @param pileConnectorCode + * @return + */ + private OrderBasicInfo selectNotStartMergeOrder(String pileConnectorCode) { + OrderBasicInfo orderBasicInfo = new OrderBasicInfo(); + orderBasicInfo.setOrderType(OrderTypeEnum.MERGE_CHARGE_ORDER.getValue()); + orderBasicInfo.setOrderStatus(OrderStatusEnum.NOT_START.getValue()); + orderBasicInfo.setPileConnectorCode(pileConnectorCode); + return getOrderBasicInfo(orderBasicInfo); + } + /** * 保存电单车订单信息 * @param dto diff --git a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml index 86883cef9..5f2fe0888 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/OrderBasicInfoMapper.xml @@ -2766,6 +2766,9 @@ AND start_mode = #{startMode,jdbcType=VARCHAR} + + and order_type = #{orderType,jdbcType=VARCHAR} + order by create_time desc limit 1