From 4c036f937336085fb5071aabfe433c7f45f84cab Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期二, 10 二月 2026 10:34:02 +0800
Subject: [PATCH] 入库明细查询id冲突修复

---
 rsf-server/src/main/java/com/vincent/rsf/server/common/domain/PageParam.java |   37 ++++++++++++++++++++++++-------------
 1 files changed, 24 insertions(+), 13 deletions(-)

diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/common/domain/PageParam.java b/rsf-server/src/main/java/com/vincent/rsf/server/common/domain/PageParam.java
index 4c952c0..2ed6d84 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/common/domain/PageParam.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/common/domain/PageParam.java
@@ -78,6 +78,14 @@
         return this.buildWrapper(like, null, "create_time");
     }
 
+    /** 澶氳〃 JOIN 鏃剁粰鍒楀姞琛ㄥ埆鍚嶏紝閬垮厤鍒楀悕姝т箟锛沘lias 涓� null 鎴栫┖鏃朵笌涓嶅姞鍒悕涓�鑷� */
+    private static String col(String tableAlias, String columnName) {
+        if (tableAlias != null && !tableAlias.isEmpty()) {
+            return tableAlias + ".`" + columnName + "`";
+        }
+        return "`" + columnName + "`";
+    }
+
     public QueryWrapper<T> buildWrapper(boolean like, String timeField) {
         return this.buildWrapper(like, null, timeField);
     }
@@ -86,8 +94,9 @@
         return this.buildWrapper(like, null, "create_time", fields);
     }
 
+    /** 鍚� buildWrapper(like, consumer, timeField)锛宼ableAlias 闈炵┖鏃剁粰涓昏〃鍒楀姞鍒悕锛岀敤浜庡琛� JOIN 閬垮厤姝т箟锛涗紶 null 琛屼负涓庡師鏉ヤ竴鑷� */
     @SuppressWarnings("all")
-    public QueryWrapper<T> buildWrapper(boolean like, Consumer<QueryWrapper<T>> consumer, String timeField) {
+    public QueryWrapper<T> buildWrapper(boolean like, Consumer<QueryWrapper<T>> consumer, String timeField, String tableAlias) {
         QueryWrapper<T> queryWrapper = new QueryWrapper<>();
         Map<String, Object> map = where.getMap();
         for (String key : map.keySet()) {
@@ -105,8 +114,8 @@
                     if (this.isToUnderlineCase) {
                         key = Utils.toSymbolCase(key, '_');
                     }
-                    queryWrapper.ge(key, DateUtils.convert(list.get(0)));
-                    queryWrapper.le(key, DateUtils.convert(list.get(1)));
+                    queryWrapper.ge(col(tableAlias, key), DateUtils.convert(list.get(0)));
+                    queryWrapper.le(col(tableAlias, key), DateUtils.convert(list.get(1)));
                 }
             } else {
                 if (this.isToUnderlineCase) {
@@ -114,11 +123,9 @@
                 }
                 String finalKey = key;
                 if (like && key.contains(timeField)) {
-                    queryWrapper.and(wrapper -> wrapper.like("`" + finalKey + "`", val));
-//                    queryWrapper.like("`" +  key + "`", val);
+                    queryWrapper.and(wrapper -> wrapper.like(col(tableAlias, finalKey), val));
                 } else {
-                    queryWrapper.and(wrapper -> wrapper.eq("`" + finalKey + "`", val));
-//                    queryWrapper.eq("`" +  key + "`", val);
+                    queryWrapper.and(wrapper -> wrapper.eq(col(tableAlias, finalKey), val));
                 }
             }
         }
@@ -129,20 +136,19 @@
 
         if (!Cools.isEmpty(where.getTimeStart())) {
             Date timeStart = DateUtils.convert(String.valueOf(where.getTimeStart()), DateUtils.yyyyMMdd_F);
-            queryWrapper.ge(timeField, timeStart);
+            queryWrapper.ge(col(tableAlias, timeField), timeStart);
 
         }
         if (!Cools.isEmpty(where.getTimeEnd())) {
             Date timeStart = DateUtils.convert(String.valueOf(where.getTimeEnd()), DateUtils.yyyyMMdd_F);
-            queryWrapper.le(timeField, timeStart);
+            queryWrapper.le(col(tableAlias, timeField), timeStart);
         }
 
         if (!Cools.isEmpty(where.getOrderBy())) {
             if (sortIsSQL(where.getOrderBy())) {
                 List<OrderItem> orders = parseOrderSQL(where.getOrderBy());
-                // 濡傛灉鎵�鏈夋帓搴忓瓧娈甸兘鏃犳晥锛屼娇鐢ㄩ粯璁ゆ帓搴�
                 if (orders.isEmpty()) {
-                    queryWrapper.orderByDesc("create_time");
+                    queryWrapper.orderByDesc(col(tableAlias, "create_time"));
                 } else {
                     setOrders(orders);
                 }
@@ -176,9 +182,9 @@
                         String column = columns.get(i);
                         String condition = where.getCondition();
                         if (i == 0) {
-                            wrapper.or().like("`" + column + "`", condition);
+                            wrapper.or().like(col(tableAlias, column), condition);
                         } else {
-                            wrapper.or().like("`" + column + "`", condition);
+                            wrapper.or().like(col(tableAlias, column), condition);
                         }
                     }
                 });
@@ -188,6 +194,11 @@
     }
 
     @SuppressWarnings("all")
+    public QueryWrapper<T> buildWrapper(boolean like, Consumer<QueryWrapper<T>> consumer, String timeField) {
+        return buildWrapper(like, consumer, timeField, (String) null);
+    }
+
+    @SuppressWarnings("all")
     public QueryWrapper<T> buildWrapper(boolean like, Consumer<QueryWrapper<T>> consumer, String timeField, List<String> fields) {
         QueryWrapper<T> queryWrapper = new QueryWrapper<>();
         Map<String, Object> map = where.getMap();

--
Gitblit v1.9.1