From 99e26030611fdc06ee3dd523072fe5516b78dc5b Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 11 五月 2026 13:05:38 +0800
Subject: [PATCH] feat(sales): 添加销售订单和产品相关字段

---
 src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java |   39 ++++++++++++++++++++++++++++++++++-----
 1 files changed, 34 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 3a42fc7..d5a383c 100644
--- a/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/sales/service/impl/SalesLedgerServiceImpl.java
@@ -23,6 +23,9 @@
 import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.other.mapper.TempFileMapper;
 import com.ruoyi.other.pojo.TempFile;
+import com.ruoyi.procurementrecord.mapper.ReturnManagementMapper;
+import com.ruoyi.procurementrecord.pojo.ReturnManagement;
+import com.ruoyi.procurementrecord.service.ReturnManagementService;
 import com.ruoyi.production.mapper.*;
 import com.ruoyi.production.pojo.*;
 import com.ruoyi.production.service.ProductionProductMainService;
@@ -98,6 +101,10 @@
     private final CommonFileServiceImpl commonFileService;
 
     private final ShippingInfoMapper shippingInfoMapper;
+
+    private final ReturnManagementMapper returnManagementMapper;
+
+    private final ReturnManagementService returnManagementService;
 
     private final InvoiceLedgerMapper invoiceLedgerMapper;
 
@@ -405,9 +412,19 @@
                     salesLedgerProduct.setSalesLedgerId(salesLedger.getId());
                     salesLedgerProduct.setType(1);
                     // 璁$畻涓嶅惈绋庢�讳环
-                    salesLedgerProduct.setTaxExclusiveTotalPrice(salesLedgerProduct.getTaxInclusiveTotalPrice().divide(new BigDecimal(1).add(salesLedgerProduct.getTaxRate().divide(new BigDecimal(100))), 2, RoundingMode.HALF_UP));
+                    if (salesLedgerProduct.getTaxInclusiveTotalPrice() != null && salesLedgerProduct.getTaxRate() != null) {
+                        salesLedgerProduct.setTaxExclusiveTotalPrice(
+                                salesLedgerProduct.getTaxInclusiveTotalPrice().divide(
+                                        new BigDecimal(1).add(salesLedgerProduct.getTaxRate().divide(new BigDecimal(100))),
+                                        2,
+                                        RoundingMode.HALF_UP
+                                )
+                        );
+                    } else {
+                        salesLedgerProduct.setTaxExclusiveTotalPrice(salesLedgerProduct.getTaxInclusiveTotalPrice());
+                    }
                     salesLedgerProduct.setNoInvoiceNum(salesLedgerProduct.getQuantity());
-                    salesLedgerProduct.setNoInvoiceAmount(salesLedgerProduct.getTaxExclusiveTotalPrice());
+                    salesLedgerProduct.setNoInvoiceAmount(salesLedgerProduct.getTaxInclusiveTotalPrice());
                     list.stream()
                             .filter(map -> map.get("productName").equals(salesLedgerProduct.getProductCategory()) && map.get("model").equals(salesLedgerProduct.getSpecificationModel()))
                             .findFirst()
@@ -428,7 +445,7 @@
                     salesLedgerProduct.setRegister(loginUser.getNickName());
                     salesLedgerProduct.setRegisterDate(LocalDateTime.now());
                     salesLedgerProduct.setApproveStatus(0);
-                    salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProductImportDto.getTaxInclusiveTotalPrice());
+                    salesLedgerProduct.setPendingInvoiceTotal(salesLedgerProduct.getTaxInclusiveTotalPrice());
                     salesLedgerProductMapper.insert(salesLedgerProduct);
                     // 娣诲姞鐢熶骇鏁版嵁
                     salesLedgerProductServiceImpl.addProductionData(salesLedgerProduct);
@@ -558,8 +575,17 @@
         List<ShippingInfo> shippingInfos = shippingInfoMapper.selectList(new LambdaQueryWrapper<ShippingInfo>()
                 .in(ShippingInfo::getSalesLedgerId, idList));
         if (CollectionUtils.isNotEmpty(shippingInfos)) {
-            shippingInfoServiceImpl.delete(shippingInfos.stream().map(ShippingInfo::getId).collect(Collectors.toList()));
+            List<Long> shippingIds = shippingInfos.stream().map(ShippingInfo::getId).collect(Collectors.toList());
+            shippingInfoServiceImpl.delete(shippingIds);
+            // 鍒犻櫎閫�璐у彴璐﹁褰�
+            List<ReturnManagement> returnManagements = returnManagementMapper.selectList(new LambdaQueryWrapper<ReturnManagement>()
+                    .in(ReturnManagement::getShippingId, shippingIds));
+            if (CollectionUtils.isNotEmpty(returnManagements)) {
+                List<Long> returnIds = returnManagements.stream().map(ReturnManagement::getId).collect(Collectors.toList());
+                returnManagementService.delete(returnIds);
+            }
         }
+
         // 鍒犻櫎闄勪欢琛�
         commonFileService.deleteByBusinessIds(idList, FileNameType.SALE.getValue());
 
@@ -592,9 +618,12 @@
             // 3. 鏂板鎴栨洿鏂颁富琛�
             if (salesLedger.getId() == null) {
                 String contractNo = generateSalesContractNo();
-                salesLedger.setSalesContractNo(contractNo);
+                salesLedger.setSalesContractNo(salesLedgerDto.getSalesContractNo() == null ? contractNo : salesLedgerDto.getSalesContractNo());
                 salesLedgerMapper.insert(salesLedger);
             } else {
+                if(StringUtils.isNotEmpty(salesLedgerDto.getSalesContractNo())){
+                    salesLedger.setSalesContractNo(salesLedgerDto.getSalesContractNo());
+                }
                 salesLedgerMapper.updateById(salesLedger);
             }
 

--
Gitblit v1.9.3