From 1493f69da9d12415085c9be7937d4f394c5fb154 Mon Sep 17 00:00:00 2001
From: zss <zss@example.com>
Date: 星期五, 16 一月 2026 16:12:36 +0800
Subject: [PATCH] Merge branch 'jtwy' into dev_New

---
 src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java |   67 ++++++++++++++++++++++-----------
 1 files changed, 45 insertions(+), 22 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 55ea7ae..671ce23 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -205,29 +205,44 @@
         }
         //鏂板鍘熸潗鏂欐楠�
         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);
-
-            List<QualityTestStandardParam> qualityTestStandardParams = qualityTestStandardParamMapper.selectListByProductId(saleProduct.getProductId());
-            if (qualityTestStandardParams.size()>0) {
-                qualityTestStandardParams.forEach(standard -> {
-                    QualityInspectParam param = new QualityInspectParam();
-                    com.ruoyi.common.utils.bean.BeanUtils.copyProperties(standard, param);
-                    param.setId(null);
-                    param.setInspectId(qualityInspect.getId());
-                    qualityInspectParamMapper.insert(param);
-                });
+            //鏄惁鎺ㄩ�佽川妫�锛屽鏋渢rue灏辨坊鍔�
+            if (saleProduct.getIsChecked()) {
+                addQualityInspect(purchaseLedger, saleProduct);
             }
         }
+        // 5. 杩佺Щ涓存椂鏂囦欢鍒版寮忕洰褰�
+        if (purchaseLedgerDto.getTempFileIds() != null && !purchaseLedgerDto.getTempFileIds().isEmpty()) {
+            migrateTempFilesToFormal(purchaseLedger.getId(), purchaseLedgerDto.getTempFileIds());
+        }
+
+        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.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);
+        }
+    }
 
         // 5. 杩佺Щ涓存椂鏂囦欢鍒版寮忕洰褰�
         if (purchaseLedgerDto.getTempFileIds() != null && !purchaseLedgerDto.getTempFileIds().isEmpty()) {
@@ -304,6 +319,8 @@
 
                 LocalDateTime localDateTime = entryDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime();
                 salesLedgerProduct.setRegisterDate(localDateTime);
+                salesLedgerProduct.setFutureTickets(salesLedgerProduct.getQuantity());
+                salesLedgerProduct.setFutureTicketsAmount(salesLedgerProduct.getTaxInclusiveTotalPrice());
                 salesLedgerProduct.setPendingTicketsTotal(salesLedgerProduct.getTaxInclusiveTotalPrice());
                 salesLedgerProductMapper.insert(salesLedgerProduct);
             }
@@ -397,6 +414,7 @@
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public int deletePurchaseLedgerByIds(Long[] ids) {
         if (ids == null || ids.length == 0) {
            throw new BaseException("璇烽�変腑鑷冲皯涓�鏉℃暟鎹�");
@@ -408,7 +426,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<>();
@@ -422,6 +440,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