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