From c653ef74b8b332a530f8d1b54a316d382d0647d1 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 24 六月 2026 18:38:12 +0800
Subject: [PATCH] 1.客户,销售,供应商,采购增加总合同号

---
 src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java |   21 ++++++++++++++++++++-
 1 files changed, 20 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 7f5712d..96be8cf 100644
--- a/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
+++ b/src/main/java/com/ruoyi/purchase/service/impl/PurchaseLedgerServiceImpl.java
@@ -424,7 +424,26 @@
         qualityInspectMapper.insert(qualityInspect);
         List<QualityTestStandard> qualityTestStandard = qualityTestStandardMapper.getQualityTestStandardByProductId(saleProduct.getProductId(), 0,null);
         if (qualityTestStandard.size()>0){
-            qualityInspect.setTestStandardId(qualityTestStandard.get(0).getId());
+            QualityTestStandard std = qualityTestStandard.get(0);
+            qualityInspect.setTestStandardId(std.getId());
+            // 鏍规嵁 inspectRule 璁剧疆鎶芥姣斾緥鍜屾娊妫�鏁伴噺榛樿鍊�
+            if (std.getInspectRule() == null || std.getInspectRule() == 0) {
+                // 鍏ㄦ
+                qualityInspect.setInspectRule(0);
+                qualityInspect.setSampleRatio(java.math.BigDecimal.valueOf(100));
+                qualityInspect.setSampleQuantity(saleProduct.getQuantity() != null ? saleProduct.getQuantity() : java.math.BigDecimal.ZERO);
+            } else {
+                // 鎶芥
+                qualityInspect.setInspectRule(1);
+                java.math.BigDecimal ratio = std.getSampleRatio() != null ? std.getSampleRatio() : java.math.BigDecimal.ZERO;
+                qualityInspect.setSampleRatio(ratio);
+                if (saleProduct.getQuantity() != null && ratio.compareTo(java.math.BigDecimal.ZERO) > 0) {
+                    qualityInspect.setSampleQuantity(saleProduct.getQuantity().multiply(ratio)
+                            .divide(java.math.BigDecimal.valueOf(100), 0, java.math.RoundingMode.CEILING));
+                } else {
+                    qualityInspect.setSampleQuantity(java.math.BigDecimal.ZERO);
+                }
+            }
             qualityInspectMapper.updateById(qualityInspect);
             qualityTestStandardParamMapper.selectList(Wrappers.<QualityTestStandardParam>lambdaQuery()
                     .eq(QualityTestStandardParam::getTestStandardId,qualityTestStandard.get(0).getId()))

--
Gitblit v1.9.3