From c3a981e80973ac52b5988aca62b87409976c6fb1 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期四, 18 六月 2026 13:09:28 +0800
Subject: [PATCH] 1.计量器具台账上传附件报错 2.质量拉的数据不对(未明确) 3.计量器具台账逾期的做标红提醒 4.设备保养定时任务和记录要加上具体的保养内容 5.质量要区分质检规则抽检还是全检,抽检的话是抽多少百分比 6.供应商管理东西太少了,没有资质文件啊这些东西(是不是可以参考pro) 7.采购审批把人从李莹莹改成龙红星

---
 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