From 20d3e1da6517ed5e55ae3613ccbbb01f1b9eda2e Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期六, 25 四月 2026 11:53:11 +0800
Subject: [PATCH] fix(approve): 修复审批流程中的数据类型和业务逻辑问题

---
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java |  102 +++++++++++++++++++++++++--------------------------
 1 files changed, 50 insertions(+), 52 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 fb94028..65a4600 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -531,6 +531,7 @@
 
         exportProcessContractToWord(exportProcessContract);
     }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public AjaxResult importSalsesLedger(MultipartFile file) {
@@ -569,7 +570,7 @@
                     continue;
                 }
 
-                if (importDto.getQuantity() == null ) {
+                if (importDto.getQuantity() == null) {
                     errorMessages.add(String.format("绗�%d琛岋細鏁伴噺涓嶈兘涓虹┖", rowNum));
                     skipCount++;
                     continue;
@@ -603,7 +604,7 @@
                     salesLedger.setCustomerId(matchedCustomer.getId());
                     salesLedger.setCustomerContractNo(matchedCustomer.getTaxpayerIdentificationNumber());
                     Date date = importDto.getOrderDate();
-                    if (ObjectUtils.isEmpty(date)){
+                    if (ObjectUtils.isEmpty(date)) {
                         date = lastDate;
                     }
                     lastDate = date;
@@ -804,58 +805,56 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public int addOrUpdateSalesLedger(SalesLedgerDto salesLedgerDto) {
-            // 1. 鏍¢獙瀹㈡埛淇℃伅
-            CustomerPrivatePoolDto customer = customerPrivatePoolMapper.selectInfo(salesLedgerDto.getCustomerId());
-            if (customer == null) {
-                throw new BaseException("瀹㈡埛涓嶅瓨鍦�");
-            }
-            // 蹇呴』濉啓閿�鍞悎鍚屽彿
+        // 1. 鏍¢獙瀹㈡埛淇℃伅
+        CustomerPrivatePoolDto customer = customerPrivatePoolMapper.selectInfo(salesLedgerDto.getCustomerId());
+        if (customer == null) {
+            throw new BaseException("瀹㈡埛涓嶅瓨鍦�");
+        }
+        // 蹇呴』濉啓閿�鍞悎鍚屽彿
 //            Assert.notNull(salesLedgerDto.getSalesContractNo(), "閿�鍞悎鍚屽彿涓嶈兘涓虹┖");
 
-            // 2. DTO杞珽ntity
-            SalesLedger salesLedger = convertToEntity(salesLedgerDto);
-            salesLedger.setCustomerName(customer.getCustomerName());
-            salesLedger.setTenantId(customer.getTenantId());
+        // 2. DTO杞珽ntity
+        SalesLedger salesLedger = convertToEntity(salesLedgerDto);
+        salesLedger.setCustomerName(customer.getCustomerName());
+        salesLedger.setTenantId(customer.getTenantId());
 
-            // 3. 鏂板鎴栨洿鏂颁富琛�
-            if (salesLedger.getId() == null) {
-                // 涓虹┖ 鑷姩鐢熸垚
-                String contractNo =StrUtil.isBlank(salesLedgerDto.getSalesContractNo())? generateSalesContractNoBy8Date():salesLedgerDto.getSalesContractNo();
-                // 涓嶈兘鏈夐噸澶嶆暟鎹殑鍚堝悓鍙�
-               Assert.isTrue(salesLedgerMapper.selectOne(new LambdaQueryWrapper<SalesLedger>()
-                        .eq(SalesLedger::getSalesContractNo, contractNo)
-                        .last("limit 1")) == null, contractNo+"鍚堝悓鍙峰凡瀛樺湪");
-                salesLedger.setSalesContractNo(contractNo);
-                salesLedgerMapper.insert(salesLedger);
-            } else {
-                salesLedger.setSalesContractNo(null);
-                salesLedgerMapper.updateById(salesLedger);
-            }
+        // 3. 鏂板鎴栨洿鏂颁富琛�
+        if (salesLedger.getId() == null) {
+            // 涓虹┖ 鑷姩鐢熸垚
+            String contractNo = StrUtil.isBlank(salesLedgerDto.getSalesContractNo()) ? generateSalesContractNoBy8Date() : salesLedgerDto.getSalesContractNo();
+            // 涓嶈兘鏈夐噸澶嶆暟鎹殑鍚堝悓鍙�
+            Assert.isTrue(salesLedgerMapper.selectOne(new LambdaQueryWrapper<SalesLedger>()
+                    .eq(SalesLedger::getSalesContractNo, contractNo)
+                    .last("limit 1")) == null, contractNo + "鍚堝悓鍙峰凡瀛樺湪");
+            salesLedger.setSalesContractNo(contractNo);
+            salesLedgerMapper.insert(salesLedger);
+        } else {
+            salesLedger.setSalesContractNo(null);
+            salesLedgerMapper.updateById(salesLedger);
+        }
 
-            // 4. 澶勭悊瀛愯〃鏁版嵁
-            List<SalesLedgerProduct> productList = salesLedgerDto.getProductData();
-            for (SalesLedgerProduct product : productList) {
-                //绌虹殑鍏堟柊澧炲熀纭�鏁版嵁  闈炵┖鐩存帴寰�涓嬭蛋
-                if (ObjectUtils.isEmpty(product.getProductModelId())) {
-                    ProductModelAnticlockwiseDto  productModelAnticlockwiseDto =  new ProductModelAnticlockwiseDto();
-                    productModelAnticlockwiseDto.setModel(product.getSpecificationModel());
-                    productModelAnticlockwiseDto.setProductName(product.getProductCategory());
-                    productModelAnticlockwiseDto.setUnit(product.getUnit());
-                    productModelAnticlockwiseDto.setSubUnit(product.getUnit());
-                    Long productModelId = productModelService.productModelAnticlockwise(productModelAnticlockwiseDto);
-                    product.setProductModelId(productModelId);
-                }
-            }
-            if (productList != null && !productList.isEmpty()) {
-                handleSalesLedgerProducts(salesLedger.getId(), productList, EnumUtil.fromCode(SaleEnum.class, salesLedgerDto.getType()));
-                updateMainContractAmount(
-                        salesLedger.getId(),
-                        productList,
-                        SalesLedgerProduct::getTaxInclusiveTotalPrice,
-                        salesLedgerMapper,
-                        SalesLedger.class
-                );
-            }
+        // 4. 澶勭悊瀛愯〃鏁版嵁
+        List<SalesLedgerProduct> productList = salesLedgerDto.getProductData();
+        for (SalesLedgerProduct product : productList) {
+            //绌虹殑鍏堟柊澧炲熀纭�鏁版嵁  闈炵┖鐩存帴寰�涓嬭蛋
+            ProductModelAnticlockwiseDto productModelAnticlockwiseDto = new ProductModelAnticlockwiseDto();
+            productModelAnticlockwiseDto.setModel(product.getSpecificationModel());
+            productModelAnticlockwiseDto.setProductName(product.getProductCategory());
+            productModelAnticlockwiseDto.setUnit(product.getUnit());
+            productModelAnticlockwiseDto.setSubUnit(product.getUnit());
+            Long productModelId = productModelService.productModelAnticlockwise(productModelAnticlockwiseDto);
+            product.setProductModelId(productModelId);
+        }
+        if (productList != null && !productList.isEmpty()) {
+            handleSalesLedgerProducts(salesLedger.getId(), productList, EnumUtil.fromCode(SaleEnum.class, salesLedgerDto.getType()));
+            updateMainContractAmount(
+                    salesLedger.getId(),
+                    productList,
+                    SalesLedgerProduct::getTaxInclusiveTotalPrice,
+                    salesLedgerMapper,
+                    SalesLedger.class
+            );
+        }
         try {
 
             // 5. 杩佺Щ涓存椂鏂囦欢鍒版寮忕洰褰�
@@ -982,7 +981,7 @@
         return entity;
     }
 
-    public String generateSalesContractNoBy8Date(){
+    public String generateSalesContractNoBy8Date() {
         String yyMM = DateUtil.format(new Date(), "yyMM");
         // 鏌ヨ涓�涓湀鏈夊灏戣鍗�
         Date begin = DateUtil.beginOfMonth(new Date());
@@ -993,7 +992,6 @@
         Long seq = Optional.of(count).orElse(0L) + 1;
         return String.format("%s%04d", yyMM, seq);
     }
-
 
 
     @Transactional(readOnly = true)

--
Gitblit v1.9.3