From 61f1de60e6f58dd8e19f01c56f2e56e40885d65b Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 23 六月 2026 17:39:58 +0800
Subject: [PATCH] 点击发货-》发货审核-》出厂质检-》出库审核-》出库通过

---
 src/main/java/com/ruoyi/approve/service/impl/ApproveBusinessStatusService.java |   21 ++++++++++++++++++++-
 1 files changed, 20 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveBusinessStatusService.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveBusinessStatusService.java
index 8135c3a..8484aa0 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveBusinessStatusService.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveBusinessStatusService.java
@@ -159,7 +159,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