From f088078e626e16b28d69cdbcbf514b30f1dcefe7 Mon Sep 17 00:00:00 2001
From: buhuazhen <hua100783@gmail.com>
Date: 星期三, 22 四月 2026 11:51:58 +0800
Subject: [PATCH] refactor(production): 优化生产订单及工单号生成逻辑

---
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java |   15 ++++++++++-----
 1 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
index d6ea7ba..07ad60a 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -480,14 +480,15 @@
         exportProcessContract.setId(id);
         SalesLedger salesLedger = salesLedgerMapper.selectById(id);
         // 鏌ヨ瀹㈡埛鍏徃淇℃伅
-        Customer customer = customerMapper.selectById(salesLedger.getCustomerId());
+        CustomerPrivatePoolDto customerPrivatePoolDto = customerPrivatePoolMapper.selectInfo(salesLedger.getCustomerId());
+
         exportProcessContract.setCreateTime(LocalDateTimeUtil.format(Optional.ofNullable(salesLedger.getExecutionDate()).orElse(LocalDate.now()), "yyyy骞碝M鏈坉d鏃�"));
         exportProcessContract.setRemark(Optional.ofNullable(salesLedger.getRemarks()).orElse("鏃�")); // 澶囨敞
         exportProcessContract.setPlaceOfSinging(Optional.ofNullable(salesLedger.getPlaceOfSinging()).orElse(""));
 
         // 濉啓鐢叉柟淇℃伅
-        ExportProcessContractVo.Customer partyA = ExportProcessContractVo.Customer.getCustomer(customer);
-        exportProcessContract.setPartyAClientName(customer.getCustomerName());
+        ExportProcessContractVo.Customer partyA = ExportProcessContractVo.Customer.getCustomer(customerPrivatePoolDto);
+        exportProcessContract.setPartyAClientName(customerPrivatePoolDto.getCustomerName());
         exportProcessContract.setPartyA(partyA);
 
         // 濉啓涔欐柟淇℃伅
@@ -663,12 +664,13 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public int addOrUpdateSalesLedger(SalesLedgerDto salesLedgerDto) {
-        try {
             // 1. 鏍¢獙瀹㈡埛淇℃伅
             CustomerPrivatePoolDto customer = customerPrivatePoolMapper.selectInfo(salesLedgerDto.getCustomerId());
             if (customer == null) {
                 throw new BaseException("瀹㈡埛涓嶅瓨鍦�");
             }
+            // 蹇呴』濉啓閿�鍞悎鍚屽彿
+//            Assert.notNull(salesLedgerDto.getSalesContractNo(), "閿�鍞悎鍚屽彿涓嶈兘涓虹┖");
 
             // 2. DTO杞珽ntity
             SalesLedger salesLedger = convertToEntity(salesLedgerDto);
@@ -676,10 +678,12 @@
             salesLedger.setTenantId(customer.getTenantId());
             // 3. 鏂板鎴栨洿鏂颁富琛�
             if (salesLedger.getId() == null) {
-                String contractNo = generateSalesContractNoBy8Date();
+                // 涓虹┖ 鑷姩鐢熸垚
+                String contractNo =StrUtil.isBlank(salesLedgerDto.getSalesContractNo())? generateSalesContractNoBy8Date():salesLedgerDto.getSalesContractNo();
                 salesLedger.setSalesContractNo(contractNo);
                 salesLedgerMapper.insert(salesLedger);
             } else {
+                salesLedger.setSalesContractNo(null);
                 salesLedgerMapper.updateById(salesLedger);
             }
 
@@ -695,6 +699,7 @@
                         SalesLedger.class
                 );
             }
+        try {
 
             // 5. 杩佺Щ涓存椂鏂囦欢鍒版寮忕洰褰�
             if (salesLedgerDto.getTempFileIds() != null && !salesLedgerDto.getTempFileIds().isEmpty()) {

--
Gitblit v1.9.3