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 6bac758a7..fc591e8fd 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 @@ -1017,6 +1017,21 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { } } + /** + * 生成订单编号 + * @return + */ + private String generateNewOrderCode() { + while (true) { + String orderCode = IdUtils.getOrderCode(); + // 通过orderCode查询是否已经存在 + OrderBasicInfo orderBasicInfo = getOrderInfoByOrderCode(orderCode); + if (orderBasicInfo == null) { + return orderCode; + } + } + } + /** * 保存异常订单到订单主表 * @param data 交易记录数据 @@ -1033,7 +1048,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { if (pileInfoVO == null) { return; } - String orderCode = IdUtils.getOrderCode(); + String orderCode = generateNewOrderCode(); OrderBasicInfo orderBasicInfo = OrderBasicInfo.builder().build(); // 订单编号 orderBasicInfo.setOrderCode(orderCode); @@ -2449,7 +2464,7 @@ public class OrderBasicInfoServiceImpl implements IOrderBasicInfoService { * @return */ private OrderBasicInfo saveOrder2Database(GenerateOrderDTO dto) throws ParseException { - String orderCode = IdUtils.getOrderCode(); + String orderCode = generateNewOrderCode(); String transactionCode = IdUtils.generateTransactionCode(dto.getPileSn(), dto.getConnectorCode()); if (StringUtils.isBlank(dto.getStartType())) {