From bfcc71f500625a26886b43c43a8fdf2ea1152844 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 23 六月 2026 13:47:59 +0800
Subject: [PATCH] 环境检测排序,仓库绑定物联设备

---
 src/main/java/com/ruoyi/quality/utils/QualityInspectHelper.java |   34 ++++++++++++++++++++++++++++++++++
 1 files changed, 34 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/ruoyi/quality/utils/QualityInspectHelper.java b/src/main/java/com/ruoyi/quality/utils/QualityInspectHelper.java
index 766515a..050ac6f 100644
--- a/src/main/java/com/ruoyi/quality/utils/QualityInspectHelper.java
+++ b/src/main/java/com/ruoyi/quality/utils/QualityInspectHelper.java
@@ -15,6 +15,7 @@
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Component;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -56,6 +57,8 @@
 
         QualityTestStandard firstStandard = qualityTestStandardList.get(0);
         qualityInspect.setTestStandardId(firstStandard.getId());
+        // 鏍规嵁 inspectRule 璁剧疆榛樿鎶芥姣斾緥鍜屾娊妫�鏁伴噺
+        applyInspectRuleDefaults(qualityInspect, firstStandard, saleProduct.getQuantity());
         qualityInspectMapper.updateById(qualityInspect);
 
         List<QualityTestStandardParam> standardParams = qualityTestStandardParamMapper.selectList(
@@ -70,4 +73,35 @@
             qualityInspectParamMapper.insert(param);
         }
     }
+
+    /**
+     * 鏍规嵁 inspectRule 璁剧疆鎶芥姣斾緥鍜屾娊妫�鏁伴噺榛樿鍊�
+     * - inspectRule=0 (鍏ㄦ): sampleRatio=100, sampleQuantity=鍏ㄩ儴鏁伴噺
+     * - inspectRule=1 (鎶芥): sampleRatio 鍙栨爣鍑嗛厤缃��, sampleQuantity=鏁伴噺脳姣斾緥/100
+     */
+    private void applyInspectRuleDefaults(QualityInspect inspect, QualityTestStandard standard, BigDecimal quantity) {
+        Integer rule = standard.getInspectRule();
+        inspect.setInspectRule(rule);
+
+        if (rule == null || rule == 0) {
+            // 鍏ㄦ
+            inspect.setSampleRatio(BigDecimal.valueOf(100));
+            inspect.setSampleQuantity(quantity != null ? quantity : BigDecimal.ZERO);
+        } else {
+            // 鎶芥
+            BigDecimal ratio = standard.getSampleRatio();
+            if (ratio == null) {
+                ratio = BigDecimal.ZERO;
+            }
+            inspect.setSampleRatio(ratio);
+            if (quantity != null && ratio.compareTo(BigDecimal.ZERO) > 0) {
+                BigDecimal sampleQty = quantity.multiply(ratio)
+                        .divide(BigDecimal.valueOf(100), 4, BigDecimal.ROUND_HALF_UP)
+                        .setScale(0, BigDecimal.ROUND_HALF_UP);
+                inspect.setSampleQuantity(sampleQty);
+            } else {
+                inspect.setSampleQuantity(BigDecimal.ZERO);
+            }
+        }
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3