From f5cc69d226d73878bfb9a67b3835ff1842732ffe Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 23 六月 2026 11:15:23 +0800
Subject: [PATCH] 1.质检规则优化
---
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