From a62b1426d01ccba34a9cd92c41e392db6fa59d90 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期一, 30 三月 2026 09:40:41 +0800
Subject: [PATCH] 销售审批合同字段修改

---
 src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java |   36 ++++++++++++++++++++++++++++++++----
 1 files changed, 32 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
index c44e516..abcf72b 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -27,6 +27,8 @@
 import com.ruoyi.framework.security.LoginUser;
 import com.ruoyi.other.mapper.TempFileMapper;
 import com.ruoyi.other.pojo.TempFile;
+import com.ruoyi.procurementrecord.dto.SimplePP;
+import com.ruoyi.procurementrecord.service.ProcurementPriceManagementService;
 import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.mapper.SysUserMapper;
 import com.ruoyi.purchase.dto.PurchaseLedgerDto;
@@ -53,6 +55,7 @@
 
 import java.io.IOException;
 import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
@@ -101,6 +104,8 @@
     private final InvoiceRegistrationProductMapper invoiceRegistrationProductMapper;
 
     private final StringRedisTemplate redisTemplate;
+
+    private final ProcurementPriceManagementService procurementPriceManagementService;
 
     @Value("${file.upload-dir}")
     private String uploadDir;
@@ -244,7 +249,7 @@
         if (products == null || products.isEmpty()) {
             throw new BaseException("浜у搧淇℃伅涓嶅瓨鍦�");
         }
-
+        PurchaseLedger ledger = purchaseLedgerMapper.selectById(salesLedgerId);
         // 鎻愬墠鏀堕泦鎵�鏈夐渶瑕佹煡璇㈢殑ID
         Set<Long> productIds = products.stream()
                 .map(SalesLedgerProduct::getProductId)
@@ -310,6 +315,28 @@
                 salesLedgerProductMapper.insert(salesLedgerProduct);
             }
         }
+
+        updateList.addAll(insertList);
+        updateList.forEach(it->{
+            SimplePP simplePP = new SimplePP();
+            simplePP.setProductId(it.getProductId());
+            simplePP.setSupplierName(ledger.getSupplierName());
+            simplePP.setSupplierId(ledger.getSupplierId());
+            simplePP.setUnit(it.getUnit());
+            simplePP.setProductName(it.getProductCategory());
+            simplePP.setSpecification(it.getSpecificationModel());
+            simplePP.setFinalPrice(it.getTaxInclusiveUnitPrice().divide(
+                    BigDecimal.ONE.add(it.getTaxRate().divide(new BigDecimal("100"), 4, RoundingMode.HALF_UP)),
+                    2,  // 淇濈暀4浣嶏紙鍙牴鎹笟鍔¤皟鏁达級
+                    RoundingMode.HALF_UP
+            ));
+            simplePP.setRemark(
+                    "绯荤粺鏍规嵁閲囪喘鎻愪氦鑷姩鐢熸垚銆傞噰璐悎鍚屽彿涓�:" + purchaseLedger.getPurchaseContractNumber() + "銆�"
+            );
+            procurementPriceManagementService.autoCreateRecord(simplePP);
+        });
+
+
 
         // 璁$畻鎬诲惈绋庨噾棰�
         BigDecimal totalTaxInclusiveAmount = products.stream()
@@ -518,16 +545,17 @@
     @Override
     public PurchaseLedgerDto getPurchaseByCode(PurchaseLedgerDto purchaseLedgerDto) {
         // 1. 鏌ヨ涓昏〃
-        PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectOne(new LambdaQueryWrapper<PurchaseLedger>()            .eq(PurchaseLedger::getPurchaseContractNumber, purchaseLedgerDto.getPurchaseContractNumber())            .last("LIMIT 1"));
+        PurchaseLedger purchaseLedger = purchaseLedgerMapper.selectOne(new LambdaQueryWrapper<PurchaseLedger>().eq(PurchaseLedger::getPurchaseContractNumber, purchaseLedgerDto.getPurchaseContractNumber())            .last("LIMIT 1"));
         if (purchaseLedger == null) {
             throw new BaseException("閲囪喘鍙拌处涓嶅瓨鍦�");
         }
         // 2. 鏌ヨ瀛愯〃
         LambdaQueryWrapper<SalesLedgerProduct> productWrapper = new LambdaQueryWrapper<>();
-        productWrapper.eq(SalesLedgerProduct::getSalesLedgerId, purchaseLedger.getId())            .eq(SalesLedgerProduct::getType, 2);
+        productWrapper.eq(SalesLedgerProduct::getSalesLedgerId, purchaseLedger.getId()).eq(SalesLedgerProduct::getType, 2);
         List<SalesLedgerProduct> products = salesLedgerProductMapper.selectList(productWrapper);
         // 4. 杞崲 DTO
-        PurchaseLedgerDto resultDto = new PurchaseLedgerDto();    BeanUtils.copyProperties(purchaseLedger, resultDto);
+        PurchaseLedgerDto resultDto = new PurchaseLedgerDto();
+        BeanUtils.copyProperties(purchaseLedger, resultDto);
         if (!products.isEmpty()) {
             resultDto.setHasChildren(true);
             resultDto.setProductData(products);

--
Gitblit v1.9.3