From fd39fdd09509b8c7d975a966add3669518098cb7 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期五, 24 七月 2026 18:21:31 +0800
Subject: [PATCH] feat(quality): 添加质量检测默认单位设置

---
 src/main/java/com/ruoyi/quality/utils/QualityInspectHelper.java |   66 +++++++++++++++++++++++++++++++++
 1 files changed, 66 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 050ac6f..bc19a02 100644
--- a/src/main/java/com/ruoyi/quality/utils/QualityInspectHelper.java
+++ b/src/main/java/com/ruoyi/quality/utils/QualityInspectHelper.java
@@ -12,6 +12,8 @@
 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;
 
@@ -104,4 +106,68 @@
             }
         }
     }
+
+    /**
+     * 鍒涘缓鍑哄巶妫�楠屽崟锛堝彂璐у鎵归�氳繃鍚庤嚜鍔ㄧ敓鎴愶級
+     * @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); // 鏈彁浜�
+        qualityInspect.setCheckCompany("鏂扮枂澶х綏绱犻┈閾冭柉鍒跺搧鏈夐檺鍏徃"); // 榛樿妫�娴嬪崟浣�
+
+        // 閫氳繃 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