From 6f287ccb0f8df857fbce894bd241cdf77690cecb Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期二, 20 一月 2026 15:23:11 +0800
Subject: [PATCH] Merge branch 'jtwy' of http://114.132.189.42:9002/r/product-inventory-management-after into sqd-hb

---
 src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java |   25 ++++++++++++++++++++++++-
 1 files changed, 24 insertions(+), 1 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 b22e44e..dc6e550 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -24,6 +24,8 @@
 import com.ruoyi.framework.security.LoginUser;
 import com.ruoyi.other.mapper.TempFileMapper;
 import com.ruoyi.other.pojo.TempFile;
+import com.ruoyi.procurementrecord.mapper.ProcurementRecordMapper;
+import com.ruoyi.procurementrecord.pojo.ProcurementRecordStorage;
 import com.ruoyi.project.system.domain.SysUser;
 import com.ruoyi.project.system.mapper.SysUserMapper;
 import com.ruoyi.purchase.dto.PurchaseLedgerDto;
@@ -111,6 +113,7 @@
     private final QualityTestStandardMapper qualityTestStandardMapper;
     private final QualityInspectParamMapper qualityInspectParamMapper;
 
+    private final ProcurementRecordMapper procurementRecordStorageMapper;
     @Value("${file.upload-dir}")
     private String uploadDir;
 
@@ -168,6 +171,13 @@
     @Override
     @Transactional(rollbackFor = Exception.class)
     public int addOrEditPurchase(PurchaseLedgerDto purchaseLedgerDto) throws IOException {
+        if(purchaseLedgerDto.getId() == null && StringUtils.isNotBlank(purchaseLedgerDto.getPurchaseContractNumber())){
+            List<PurchaseLedger> purchaseLedgers = purchaseLedgerMapper.selectList(new LambdaQueryWrapper<PurchaseLedger>()
+                    .eq(PurchaseLedger::getPurchaseContractNumber, purchaseLedgerDto.getPurchaseContractNumber()));
+            if(CollectionUtils.isNotEmpty(purchaseLedgers)){
+                throw new BaseException("閲囪喘鍚堝悓鍙峰凡瀛樺湪");
+            }
+        }
 
         SalesLedger salesLedger = salesLedgerMapper.selectById(purchaseLedgerDto.getSalesLedgerId());
         //褰曞叆浜�
@@ -251,7 +261,7 @@
         QualityInspect qualityInspect = new QualityInspect();
         qualityInspect.setInspectType(0);
         qualityInspect.setSupplier(purchaseLedger.getSupplierName());
-        qualityInspect.setPurchaseLedgerId(purchaseLedger.getId());
+        qualityInspect.setPurchaseLedgerId(saleProduct.getId());
         qualityInspect.setProductId(saleProduct.getProductId());
         qualityInspect.setProductName(saleProduct.getProductCategory());
         qualityInspect.setModel(saleProduct.getSpecificationModel());
@@ -440,6 +450,19 @@
         if (ids == null || ids.length == 0) {
            throw new BaseException("璇烽�変腑鑷冲皯涓�鏉℃暟鎹�");
         }
+        // 鎵归噺鍒犻櫎鍏宠仈鐨勯噰璐叆搴撹褰�
+        LambdaQueryWrapper<SalesLedgerProduct> salesLedgerProductQueryWrapper = new LambdaQueryWrapper<>();
+        salesLedgerProductQueryWrapper.in(SalesLedgerProduct::getSalesLedgerId, ids)
+                .eq(SalesLedgerProduct::getType, 2);
+        List<SalesLedgerProduct> salesLedgerProducts = salesLedgerProductMapper.selectList(salesLedgerProductQueryWrapper);
+        if (CollectionUtils.isNotEmpty(salesLedgerProducts)) {
+            salesLedgerProducts.stream().forEach(salesLedgerProduct -> {
+                // 鎵归噺鍒犻櫎鍏宠仈鐨勯噰璐彴璐︿骇鍝�
+                LambdaQueryWrapper<ProcurementRecordStorage> queryWrapper = new LambdaQueryWrapper<>();
+                queryWrapper.eq(ProcurementRecordStorage::getSalesLedgerProductId, salesLedgerProduct.getId());
+                procurementRecordStorageMapper.delete(queryWrapper);
+            });
+        }
         // 鎵归噺鍒犻櫎鍏宠仈鐨勯噰璐彴璐︿骇鍝�
         LambdaQueryWrapper<SalesLedgerProduct> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.in(SalesLedgerProduct::getSalesLedgerId, ids)

--
Gitblit v1.9.3