From 8ff0561a1f3c50caba10c8ed74f35367cbac70c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=A5=8E=E5=85=B4?= <2220574228@qq.com> Date: Sat, 27 Jun 2026 19:07:54 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A2=84=E7=BA=A6=E5=8D=95=E6=94=B9=E9=80=A0;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusinessDocumentOrderDomainService.java | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java index 0df769b1d..183108a20 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/businessDocumentOrder/service/BusinessDocumentOrderDomainService.java @@ -282,10 +282,31 @@ public class BusinessDocumentOrderDomainService { } //生成货源单号 - if (businessDocumentOrderDO.getGoodsNumber() == null) { - tmsOrder.setGoodsNumber(OrderSequence.getOrderCode()); + String orderCode = null; + int maxRetryCount = 100; + int retryCount = 0; + + while (retryCount < maxRetryCount) { + orderCode = getOrderCodeByDate(tmsOrder.getDocumentDate()); + retryCount++; + + List checkOrderCodes = businessDocumentOrderMapper.selectList( + new QueryWrapper().eq("goods_number", orderCode) + ); + + if (CollectionUtils.isEmpty(checkOrderCodes)) { + break; + } + + if (retryCount >= maxRetryCount) { + throw new ServiceException("生成唯一订单编号失败,已达到最大重试次数:" + maxRetryCount); + } } + + //生成货源单号 + tmsOrder.setGoodsNumber(orderCode); + ReservationStockOutOrder reservationStockOutOrder = reservationStockOutOrderMapper.selectOne(new LambdaQueryWrapper() .eq(ReservationStockOutOrder::getOutOrderNumber, tmsOrder.getInOrderNumber()) .eq(ReservationStockOutOrder::getDelFlag, 1));