From 61683273be9457253f9d176313ac51bdb4d897bf Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期一, 19 一月 2026 11:48:11 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jtwy' into jtwy

---
 src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java |   67 +++++++++++++++++++++------------
 1 files changed, 42 insertions(+), 25 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 12adbf0..b22e44e 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -231,32 +231,14 @@
             handleSalesLedgerProducts(purchaseLedger.getId(), productList, purchaseLedgerDto.getType());
         }
         //鏂板鍘熸潗鏂欐楠�
-        for (SalesLedgerProduct saleProduct : productList) {
-            QualityInspect qualityInspect = new QualityInspect();
-            qualityInspect.setInspectType(0);
-            qualityInspect.setSupplier(purchaseLedger.getSupplierName());
-            qualityInspect.setPurchaseLedgerId(purchaseLedger.getId());
-            qualityInspect.setProductId(saleProduct.getId());
-            qualityInspect.setProductName(saleProduct.getProductCategory());
-            qualityInspect.setModel(saleProduct.getSpecificationModel());
-            qualityInspect.setProductModelId(saleProduct.getProductModelId());
-            qualityInspect.setUnit(saleProduct.getUnit());
-            qualityInspect.setQuantity(saleProduct.getQuantity());
-            qualityInspectMapper.insert(qualityInspect);
-            QualityTestStandard qualityTestStandard = new QualityTestStandard();
-            qualityTestStandard.setProductId(saleProduct.getProductId());
-            List<QualityTestStandard> qualityTestStandards = qualityTestStandardMapper.qualityTestStandardList(qualityTestStandard);
-            for (QualityTestStandard qualityTestStandardDB : qualityTestStandards) {
-                QualityInspectParam qualityInspectParam = new QualityInspectParam();
-                qualityInspectParam.setInspectId(qualityInspect.getId());
-                qualityInspectParam.setParameterItem(qualityTestStandardDB.getParameterItem());
-                qualityInspectParam.setUnit(qualityTestStandardDB.getUnit());
-                qualityInspectParam.setStandardValue(qualityTestStandardDB.getStandardValue());
-                qualityInspectParam.setControlValue(qualityTestStandardDB.getControlValue());
-                qualityInspectParamMapper.insert(qualityInspectParam);
+        if (productList != null) {
+            for (SalesLedgerProduct saleProduct : productList) {
+                //鏄惁鎺ㄩ�佽川妫�锛屽鏋渢rue灏辨坊鍔�
+                if (saleProduct.getIsChecked()) {
+                    addQualityInspect(purchaseLedger, saleProduct);
+                }
             }
         }
-
         // 5. 杩佺Щ涓存椂鏂囦欢鍒版寮忕洰褰�
         if (purchaseLedgerDto.getTempFileIds() != null && !purchaseLedgerDto.getTempFileIds().isEmpty()) {
             migrateTempFilesToFormal(purchaseLedger.getId(), purchaseLedgerDto.getTempFileIds());
@@ -264,6 +246,33 @@
 
         return 1;
     }
+
+    private void addQualityInspect(PurchaseLedger purchaseLedger, SalesLedgerProduct saleProduct) {
+        QualityInspect qualityInspect = new QualityInspect();
+        qualityInspect.setInspectType(0);
+        qualityInspect.setSupplier(purchaseLedger.getSupplierName());
+        qualityInspect.setPurchaseLedgerId(purchaseLedger.getId());
+        qualityInspect.setProductId(saleProduct.getProductId());
+        qualityInspect.setProductName(saleProduct.getProductCategory());
+        qualityInspect.setModel(saleProduct.getSpecificationModel());
+        qualityInspect.setProductModelId(saleProduct.getProductModelId());
+        qualityInspect.setUnit(saleProduct.getUnit());
+        qualityInspect.setQuantity(saleProduct.getQuantity());
+        qualityInspectMapper.insert(qualityInspect);
+        QualityTestStandard qualityTestStandard = new QualityTestStandard();
+        qualityTestStandard.setProductId(saleProduct.getProductId());
+        List<QualityTestStandard> qualityTestStandards = qualityTestStandardMapper.qualityTestStandardList(qualityTestStandard);
+        for (QualityTestStandard qualityTestStandardDB : qualityTestStandards) {
+            QualityInspectParam qualityInspectParam = new QualityInspectParam();
+            qualityInspectParam.setInspectId(qualityInspect.getId());
+            qualityInspectParam.setParameterItem(qualityTestStandardDB.getParameterItem());
+            qualityInspectParam.setUnit(qualityTestStandardDB.getUnit());
+            qualityInspectParam.setStandardValue(qualityTestStandardDB.getStandardValue());
+            qualityInspectParam.setControlValue(qualityTestStandardDB.getControlValue());
+            qualityInspectParamMapper.insert(qualityInspectParam);
+        }
+    }
+
 
     private void handleSalesLedgerProducts(Long salesLedgerId, List<SalesLedgerProduct> products, Integer type) {
         if (products == null || products.isEmpty()) {
@@ -332,6 +341,8 @@
 
                 LocalDateTime localDateTime = entryDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
                 salesLedgerProduct.setRegisterDate(localDateTime);
+                salesLedgerProduct.setFutureTickets(salesLedgerProduct.getQuantity());
+                salesLedgerProduct.setFutureTicketsAmount(salesLedgerProduct.getTaxInclusiveTotalPrice());
                 salesLedgerProductMapper.insert(salesLedgerProduct);
             }
         }
@@ -424,6 +435,7 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public int deletePurchaseLedgerByIds(Long[] ids) {
         if (ids == null || ids.length == 0) {
            throw new BaseException("璇烽�変腑鑷冲皯涓�鏉℃暟鎹�");
@@ -435,7 +447,7 @@
         salesLedgerProductMapper.delete(queryWrapper);
         // 鎵归噺鍒犻櫎鍏宠仈鐨勯噰璐彴璐︾殑鏉ョエ鐧昏
         LambdaQueryWrapper<TicketRegistration> ticketRegistrationLambdaQueryWrapper = new LambdaQueryWrapper<>();
-        ticketRegistrationLambdaQueryWrapper.in(TicketRegistration::getSalesLedgerId,ids);
+        ticketRegistrationLambdaQueryWrapper.in(TicketRegistration::getPurchaseLedgerId,ids);
         ticketRegistrationMapper.delete(ticketRegistrationLambdaQueryWrapper);
         // 鎵归噺鍒犻櫎鍏宠仈鐨勯噰璐彴璐︾殑鏉ョエ鐧昏璁板綍
         LambdaQueryWrapper<ProductRecord> productRecordLambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -449,6 +461,11 @@
         LambdaQueryWrapper<QualityInspect> materialInspectLambdaQueryWrapper = new LambdaQueryWrapper<>();
         materialInspectLambdaQueryWrapper.in(QualityInspect::getPurchaseLedgerId, ids);
         List<QualityInspect> qualityInspects = qualityInspectMapper.selectList(materialInspectLambdaQueryWrapper);
+        qualityInspects.stream().forEach(qualityInspect -> {
+            if (ObjectUtils.isNotEmpty(qualityInspect.getInspectState())&&qualityInspect.getInspectState().equals(1)) {
+                throw new BaseException("宸叉彁浜ょ殑妫�楠屽崟涓嶈兘鍒犻櫎");
+            }
+        });
         List<Long> inspectIds = qualityInspects.stream()
                 .map(QualityInspect::getId)
                 .collect(Collectors.toList());

--
Gitblit v1.9.3