diff --git a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderDomainService.java b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderDomainService.java index 851bd436b..136e53b63 100644 --- a/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderDomainService.java +++ b/mhd_oms/src/main/java/com/mhd/oms/domain/reservationStockOutOrder/service/ReservationStockOutOrderDomainService.java @@ -1098,6 +1098,10 @@ public class ReservationStockOutOrderDomainService { reservationStockInOrderMapper.updateByTransportationNumber(transportationNumber); LoginUser loginUser = SecurityUtils.getLoginUser(); BusinessDeliveryDetailsLink businessDeliveryDetailsLink = businessDeliveryDetailsLinkService.getOne(new QueryWrapper().lambda().eq(BusinessDeliveryDetailsLink::getInvoiceNumber, invoiceNumber), false); + List businessDeliveryDetailsLinks = businessDeliveryDetailsLinkService.list(new QueryWrapper().lambda().eq(BusinessDeliveryDetailsLink::getInvoiceNumber, invoiceNumber)); + if (businessDeliveryDetailsLinks!=null&&businessDeliveryDetailsLinks.size()>1) { + throw new ServiceException("存在发票号重复情况,请检查!"); + } if (businessDeliveryDetailsLink != null) { businessDeliveryDetailsLink.setIsReturn(1); // 1表示已退货 businessDeliveryDetailsLink.setUpdateBy(loginUser.getUserPo().getUserId()); @@ -1106,6 +1110,9 @@ public class ReservationStockOutOrderDomainService { businessDeliveryDetailsLinkService.updateById(businessDeliveryDetailsLink); // String invoiceNumber1 = businessDeliveryDetailsLink.getInvoiceNumber(); List list = reservationDeliveryDetailsLinkService.list(new QueryWrapper().lambda().eq(ReservationDeliveryDetailsLink::getInvoiceNumber, invoiceNumber)); + if (list != null && !list.isEmpty() && list.size()>1) { + throw new ServiceException("存在发票号重复情况,请检查!"); + } if (list != null && !list.isEmpty() && list.size()>0) { ReservationDeliveryDetailsLink reservationDeliveryDetailsLink = list.get(0); String orderNumber = reservationDeliveryDetailsLink.getOrderNumber(); @@ -1216,14 +1223,28 @@ public class ReservationStockOutOrderDomainService { /** * 生成出库预约单号: + * 生成后校验数据库中是否已存在,存在则序号加一,直至不重复为止 */ public String generateReserveOrderNumber() { SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd"); String datePart = sdf.format(new Date()); String prefix = "C" + datePart; int todayCount = reservationStockOutOrderMapper.countByOrderNumberPrefix(prefix); - String seq = String.format("%03d", todayCount + 1); - return prefix + seq; + int seq = todayCount + 1; + String orderNumber; + do { + orderNumber = prefix + String.format("%03d", seq); + Integer count = reservationStockOutOrderMapper.selectCount( + new LambdaQueryWrapper() + .eq(ReservationStockOutOrder::getOutOrderNumber, orderNumber) + ); + if (count != null && count > 0) { + seq++; + } else { + break; + } + } while (true); + return orderNumber; } public String generateReserveOrderNumber1() {