From f25369ff160772b7e866462cb10dda799d27e9fb Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期一, 27 四月 2026 16:54:59 +0800
Subject: [PATCH] feat(productOrder): 修复自动生成订单编号序号

---
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java |    2 +-
 src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java  |   12 ++++++++++--
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java b/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
index d622379..58f14d8 100644
--- a/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
+++ b/src/main/java/com/ruoyi/production/service/impl/ProductOrderServiceImpl.java
@@ -213,8 +213,8 @@
         return "SC" + datePrefix + formatOrderSequence(datePrefix);
     }
 
-    public String generateNextOrderByContractNo(String datePrefix, String contractNo) {
-        return contractNo + formatOrderSequence(datePrefix);
+    public String generateNextOrderByContractNo(String contractNo) {
+        return contractNo + formatOrderSequenceByContractNo(contractNo);
     }
 
     private String formatOrderSequence(String datePrefix) {
@@ -233,4 +233,12 @@
         return String.format("%04d", sequence);
     }
 
+
+    private String formatOrderSequenceByContractNo(String contractNo) {
+        LambdaQueryWrapper<ProductOrder> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.likeRight(ProductOrder::getNpsNo, contractNo);
+        Long count = productOrderMapper.selectCount(queryWrapper);
+        return String.format("%04d", count+1);
+    }
+
 }
diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
index b830a96..165c6c9 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerProductServiceImpl.java
@@ -280,7 +280,7 @@
         productOrder.setSalesLedgerId(salesLedgerProduct.getSalesLedgerId());
         productOrder.setProductModelId(salesLedgerProduct.getProductModelId());
         productOrder.setSaleLedgerProductId(salesLedgerProduct.getId());
-        String string = productOrderServiceImpl.generateNextOrderByContractNo(LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")), salesLedger.getSalesContractNo());
+        String string = productOrderServiceImpl.generateNextOrderByContractNo(salesLedger.getSalesContractNo());
         productOrder.setNpsNo(string);
         productOrder.setQuantity(salesLedgerProduct.getQuantity());//闇�姹傛暟閲�
         productOrder.setCompleteQuantity(BigDecimal.ZERO);//瀹屾垚鏁伴噺

--
Gitblit v1.9.3