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/quality/utils/QualityInspectHelper.java | 99 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 99 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..5fc5a13 100644
--- a/src/main/java/com/ruoyi/quality/utils/QualityInspectHelper.java
+++ b/src/main/java/com/ruoyi/quality/utils/QualityInspectHelper.java
@@ -12,9 +12,12 @@
import com.ruoyi.quality.pojo.QualityTestStandard;
import com.ruoyi.quality.pojo.QualityTestStandardParam;
import com.ruoyi.sales.pojo.SalesLedgerProduct;
+import com.ruoyi.sales.pojo.ShippingInfo;
+import com.ruoyi.sales.pojo.ShippingProductDetail;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Component;
+import java.math.BigDecimal;
import java.util.List;
/**
@@ -56,6 +59,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 +75,98 @@
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);
+ }
+ }
+ }
+
+ /**
+ * 鍒涘缓鍑哄巶妫�楠屽崟锛堝彂璐у鎵归�氳繃鍚庤嚜鍔ㄧ敓鎴愶級
+ * @param shippingInfo 鍙戣揣淇℃伅
+ * @param detail 鍙戣揣浜у搧鏄庣粏
+ * @param customerName 瀹㈡埛鍚嶇О
+ * @param salesLedgerId 閿�鍞彴璐D
+ */
+ public void addFactoryInspect(ShippingInfo shippingInfo, ShippingProductDetail detail,
+ String customerName, Long salesLedgerId) {
+ QualityInspect qualityInspect = new QualityInspect();
+ qualityInspect.setInspectType(2); // 鍑哄巶妫�楠�
+ qualityInspect.setCustomer(customerName);
+ qualityInspect.setSalesLedgerId(salesLedgerId);
+ qualityInspect.setShippingInfoId(shippingInfo.getId()); // 鍏宠仈鍙戣揣淇℃伅
+ qualityInspect.setProductModelId(detail.getProductModelId());
+ qualityInspect.setQuantity(detail.getQuantity());
+ qualityInspect.setInspectState(0); // 鏈彁浜�
+
+ // 閫氳繃 productModelId 鏌ヨ浜у搧淇℃伅
+ if (detail.getProductModelId() != null) {
+ com.ruoyi.basic.pojo.ProductModel productModel = qualityInspectMapper.selectProductModelById(detail.getProductModelId());
+ if (productModel != null) {
+ qualityInspect.setProductId(productModel.getProductId());
+ qualityInspect.setModel(productModel.getModel());
+ qualityInspect.setUnit(productModel.getUnit());
+ // 鏌ヨ浜у搧鍚嶇О
+ if (productModel.getProductId() != null) {
+ com.ruoyi.basic.pojo.Product product = qualityInspectMapper.selectProductById(productModel.getProductId());
+ if (product != null) {
+ qualityInspect.setProductName(product.getProductName());
+ }
+ }
+ }
+ }
+
+ qualityInspectMapper.insert(qualityInspect);
+
+ // 鏌ヨ鍑哄巶妫�楠屾爣鍑嗭紝鍒濆鍖栨楠屽弬鏁�
+ if (qualityInspect.getProductId() != null) {
+ List<QualityTestStandard> qualityTestStandardList = qualityTestStandardMapper
+ .getQualityTestStandardByProductId(qualityInspect.getProductId(), 2, null);
+
+ if (!qualityTestStandardList.isEmpty()) {
+ QualityTestStandard firstStandard = qualityTestStandardList.get(0);
+ qualityInspect.setTestStandardId(firstStandard.getId());
+ applyInspectRuleDefaults(qualityInspect, firstStandard, detail.getQuantity());
+ qualityInspectMapper.updateById(qualityInspect);
+
+ List<QualityTestStandardParam> standardParams = qualityTestStandardParamMapper.selectList(
+ Wrappers.<QualityTestStandardParam>lambdaQuery()
+ .eq(QualityTestStandardParam::getTestStandardId, firstStandard.getId()));
+
+ for (QualityTestStandardParam standardParam : standardParams) {
+ QualityInspectParam param = new QualityInspectParam();
+ BeanUtils.copyProperties(standardParam, param);
+ param.setId(null);
+ param.setInspectId(qualityInspect.getId());
+ qualityInspectParamMapper.insert(param);
+ }
+ }
+ }
+ }
}
\ No newline at end of file
--
Gitblit v1.9.3