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/resources/mapper/quality/QualityTestStandardMapper.xml |   29 ++++++++++++++++++++++++-----
 1 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/src/main/resources/mapper/quality/QualityTestStandardMapper.xml b/src/main/resources/mapper/quality/QualityTestStandardMapper.xml
index f326a66..b72b649 100644
--- a/src/main/resources/mapper/quality/QualityTestStandardMapper.xml
+++ b/src/main/resources/mapper/quality/QualityTestStandardMapper.xml
@@ -20,16 +20,35 @@
             AND inspect_type =#{c.inspectType}
         </if>
     </select>
-    <select id="getQualityTestStandardByProductId" resultType="com.ruoyi.quality.pojo.QualityTestStandard">
-        SELECT qts.*
+    <select id="getQualityTestStandardByProductId" resultType="com.ruoyi.quality.dto.QualityTestStandardDto">
+        SELECT DISTINCT qts.*, pm.model as product_model
         FROM quality_test_standard qts
                  left join quality_test_standard_binding qtsb on qtsb.test_standard_id = qts.id
                  left join technology_operation toper on qts.process_id = toper.id
-        WHERE qtsb.product_id = #{productId}
-          AND qts.inspect_type = #{inspectType}
+                 left join product_model pm on qtsb.product_model_id = pm.id
+        WHERE qts.inspect_type = #{inspectType}
+          AND (
+              qtsb.product_id = #{productId}
+              or qtsb.product_id in (
+                  WITH RECURSIVE product_parent AS (
+                      SELECT parent_id
+                      FROM product
+                      WHERE id = #{productId} AND parent_id IS NOT NULL
+                      UNION ALL
+                      SELECT p.parent_id
+                      FROM product p
+                      INNER JOIN product_parent pp ON p.id = pp.parent_id
+                      WHERE p.parent_id IS NOT NULL
+                  )
+                  SELECT parent_id FROM product_parent
+              )
+          )
+        <if test="productModelId != null">
+            and (qtsb.product_model_id is null or qtsb.product_model_id = #{productModelId})
+        </if>
         <if test="process!='' and process!=null">
             and toper.name = #{process}
         </if>
-        order by qts.id desc
+        order by qtsb.product_model_id is not null, qts.id desc
     </select>
 </mapper>

--
Gitblit v1.9.3