From 7dd24c581d76e6aaba2fc8788d3c74160b8c160a Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期二, 15 九月 2026 12:48:21 +0800
Subject: [PATCH] fix: 入库记录添加采购单号搜索

---
 src/main/resources/mapper/stock/StockInRecordMapper.xml |   46 +++++++++++++++++++++++++++-------------------
 1 files changed, 27 insertions(+), 19 deletions(-)

diff --git a/src/main/resources/mapper/stock/StockInRecordMapper.xml b/src/main/resources/mapper/stock/StockInRecordMapper.xml
index 1e85b70..587591a 100644
--- a/src/main/resources/mapper/stock/StockInRecordMapper.xml
+++ b/src/main/resources/mapper/stock/StockInRecordMapper.xml
@@ -2,24 +2,8 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.stock.mapper.StockInRecordMapper">
 
-    <select id="listPage" resultType="com.ruoyi.stock.dto.StockInRecordDto">
-        WITH RECURSIVE product_tree AS (
-        SELECT id
-        FROM product
-        WHERE id = #{params.topParentProductId}
-
-        UNION ALL
-
-        SELECT p.id
-        FROM product p
-        INNER JOIN product_tree pt ON p.parent_id = pt.id
-        )
-        SELECT
-        sir.*,
-        p.product_name as product_name,
-        pm.model,
-        pm.unit,
-        u.nick_name as createBy,
+    <!-- 婧愬崟鍙疯〃杈惧紡锛氬垪琛ㄥ睍绀轰笌閲囪喘鍗曞彿鎼滅储鏉′欢鍏辩敤锛屼繚璇佺瓫閫夊彛寰勪笌鏄剧ず涓�鑷� -->
+    <sql id="sourceOrderNoExpr">
         CASE
             WHEN #{params.topParentProductId} = 3 AND TRIM(sir.record_type) = '7' THEN
                 COALESCE(pl_by_product.purchase_contract_number, pl_direct.purchase_contract_number)
@@ -64,7 +48,28 @@
                     ELSE NULL
                 END
             ELSE NULL
-        END AS sourceOrderNo
+        END
+    </sql>
+
+    <select id="listPage" resultType="com.ruoyi.stock.dto.StockInRecordDto">
+        WITH RECURSIVE product_tree AS (
+        SELECT id
+        FROM product
+        WHERE id = #{params.topParentProductId}
+
+        UNION ALL
+
+        SELECT p.id
+        FROM product p
+        INNER JOIN product_tree pt ON p.parent_id = pt.id
+        )
+        SELECT
+        sir.*,
+        p.product_name as product_name,
+        pm.model,
+        pm.unit,
+        u.nick_name as createBy,
+        <include refid="sourceOrderNoExpr"/> AS sourceOrderNo
         FROM stock_in_record as sir
         LEFT JOIN product_model as pm on sir.product_model_id = pm.id
         LEFT JOIN product as p on pm.product_id = p.id
@@ -116,6 +121,9 @@
             <if test="params.recordType != null and params.recordType != ''">
                 and sir.record_type = #{params.recordType}
             </if>
+            <if test="params.sourceOrderNo != null and params.sourceOrderNo != ''">
+                and (<include refid="sourceOrderNoExpr"/>) like concat('%',#{params.sourceOrderNo},'%')
+            </if>
             <if test="params.topParentProductId != null and params.topParentProductId > 0">
                 and p.id in (select id from product_tree)
             </if>

--
Gitblit v1.9.3