From d546e42089177442c5e43f9944052fcf3611b08d Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期三, 16 九月 2026 16:22:40 +0800
Subject: [PATCH] feat: 质检绑定支持规格型号

---
 src/main/java/com/ruoyi/quality/service/impl/QualityTestStandardBindingServiceImpl.java |   22 +++++++++++++++++-----
 1 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/ruoyi/quality/service/impl/QualityTestStandardBindingServiceImpl.java b/src/main/java/com/ruoyi/quality/service/impl/QualityTestStandardBindingServiceImpl.java
index a581977..20439a2 100644
--- a/src/main/java/com/ruoyi/quality/service/impl/QualityTestStandardBindingServiceImpl.java
+++ b/src/main/java/com/ruoyi/quality/service/impl/QualityTestStandardBindingServiceImpl.java
@@ -1,5 +1,6 @@
 package com.ruoyi.quality.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.quality.dto.QualityTestStandardBindingDto;
@@ -9,6 +10,7 @@
 import lombok.RequiredArgsConstructor;
 import org.springframework.stereotype.Service;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -32,16 +34,26 @@
 
     @Override
     public int add(List<QualityTestStandardBinding> qualityTestStandardBindings) {
+        ArrayList<QualityTestStandardBinding> qualityTestStandardBindings1 = new ArrayList<>(qualityTestStandardBindings.size());
         //鍒ゆ柇鏄惁宸茬粡鏈夌粦瀹氳繃鐨勬暟鎹�
         for (QualityTestStandardBinding qualityTestStandardBinding : qualityTestStandardBindings) {
-            List<QualityTestStandardBinding> testStandardBindings = qualityTestStandardBindingMapper.selectList(Wrappers.<QualityTestStandardBinding>lambdaQuery()
+            LambdaQueryWrapper<QualityTestStandardBinding> queryWrapper = Wrappers.<QualityTestStandardBinding>lambdaQuery()
                     .eq(QualityTestStandardBinding::getTestStandardId, qualityTestStandardBinding.getTestStandardId())
-                    .eq(QualityTestStandardBinding::getProductId, qualityTestStandardBinding.getProductId()));
-            if (testStandardBindings.size() > 0){
-                throw new RuntimeException("璇ヤ骇鍝佸凡缁忕粦瀹氳繃,璇锋鏌�");
+                    .eq(QualityTestStandardBinding::getProductId, qualityTestStandardBinding.getProductId());
+            if (qualityTestStandardBinding.getProductModelId() == null) {
+                queryWrapper.isNull(QualityTestStandardBinding::getProductModelId);
+            } else {
+                queryWrapper.eq(QualityTestStandardBinding::getProductModelId, qualityTestStandardBinding.getProductModelId());
             }
+            if (qualityTestStandardBindingMapper.selectCount(queryWrapper) > 0) {
+                continue;
+            }
+            qualityTestStandardBindings1.add(qualityTestStandardBinding);
         }
-        saveBatch(qualityTestStandardBindings);
+        if (qualityTestStandardBindings1.isEmpty()) {
+            return 0;
+        }
+        saveBatch(qualityTestStandardBindings1);
         return 0;
     }
 }

--
Gitblit v1.9.3