From 4eb26aea28a36af799d312494d54313d64b2f329 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期六, 18 七月 2026 11:21:28 +0800
Subject: [PATCH] feat: 返回产品大类

---
 src/main/resources/mapper/basic/ProductModelMapper.xml |   41 +++++++++++++++++++++++++++++++++++------
 1 files changed, 35 insertions(+), 6 deletions(-)

diff --git a/src/main/resources/mapper/basic/ProductModelMapper.xml b/src/main/resources/mapper/basic/ProductModelMapper.xml
index 4ae5508..b485059 100644
--- a/src/main/resources/mapper/basic/ProductModelMapper.xml
+++ b/src/main/resources/mapper/basic/ProductModelMapper.xml
@@ -9,15 +9,35 @@
         <result column="product_id" property="productId" />
         <result column="model" property="model" />
         <result column="unit" property="unit" />
-        <result column="speculative_trading_name" property="speculativeTradingName" />
         <result column="tenant_id" property="tenantId" />
         <result column="product_name" property="productName" />
         <result column="product_id" property="productId" />
     </resultMap>
-    <select id="listPageProductModel" resultType="com.ruoyi.basic.pojo.ProductModel">
-        select pm.*,p.product_name
+
+    <resultMap id="ProductModelVoResultMap" type="com.ruoyi.basic.vo.ProductModelVo" extends="BaseResultMap">
+        <result column="create_time" property="createTime" />
+        <result column="top_product_name" property="topProductName" />
+        <collection property="batchNoList"
+                    ofType="java.lang.String"
+                    column="{productModelId=id}"
+                    select="selectBatchNoListByProductModelId"/>
+    </resultMap>
+
+    <select id="listPageProductModel" resultMap="ProductModelVoResultMap">
+        WITH RECURSIVE product_root AS (
+            SELECT id, parent_id, product_name
+            FROM product
+            WHERE parent_id IS NULL
+            UNION ALL
+            SELECT p.id, p.parent_id, pr.product_name
+            FROM product p
+            INNER JOIN product_root pr ON p.parent_id = pr.id
+        )
+        select pm.*, p.product_name,
+               pr.product_name as top_product_name
         from product_model pm
         left join product p on pm.product_id = p.id
+        left join product_root pr on p.id = pr.id
         <where>
             <if test="c.model != null and c.model != ''">
                 and pm.model  like  concat('%',#{c.model},'%')
@@ -31,9 +51,9 @@
                         SELECT id
                         FROM product
                         WHERE id = #{c.topProductParentId}
-                        
+
                         UNION ALL
-                        
+
                         SELECT p.id
                         FROM product p
                         INNER JOIN product_tree pt ON p.parent_id = pt.id
@@ -43,6 +63,15 @@
             </if>
         </where>
         order by  pm.id
+    </select>
+
+    <select id="selectBatchNoListByProductModelId" resultType="java.lang.String">
+        select distinct si.batch_no
+        from stock_inventory si
+        where si.product_model_id = #{productModelId}
+          and si.batch_no is not null
+          and si.batch_no != ''
+        order by si.batch_no
     </select>
     <select id="selectLatestRecord" resultType="com.ruoyi.basic.pojo.ProductModel">
             SELECT * FROM product_model
@@ -123,4 +152,4 @@
         order by p.id,pm.id desc
     </select>
 
-</mapper>
\ No newline at end of file
+</mapper>

--
Gitblit v1.9.3