From a56ead69baf1d4a068f93e5c23f668ba285bfdb1 Mon Sep 17 00:00:00 2001 From: liangcheng <1546584672@qq.com> Date: Tue, 5 Aug 2025 10:40:32 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=B8=AD=E8=88=AA=E5=AF=8C=E5=A3=AB?= =?UTF-8?q?=E8=BE=BE=20=E4=BF=AE=E5=A4=8Din=20=E8=AF=AD=E5=8F=A5=E8=B6=85?= =?UTF-8?q?=E8=BF=871000=E6=9D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../forstarsecond/CustomSearchTemplate.java | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/com/weaver/formmode/customjavacode/forstarsecond/CustomSearchTemplate.java b/src/com/weaver/formmode/customjavacode/forstarsecond/CustomSearchTemplate.java index 02e0a74..512dcf0 100644 --- a/src/com/weaver/formmode/customjavacode/forstarsecond/CustomSearchTemplate.java +++ b/src/com/weaver/formmode/customjavacode/forstarsecond/CustomSearchTemplate.java @@ -29,12 +29,23 @@ public class CustomSearchTemplate extends AbstractCustomSqlConditionJavaCode { while (rst.next()) { unitList.add(Util.null2String(rst.getString("VndName").trim())); } - String join = unitList.stream() - .map(s -> "'" + s + "'") - .collect(Collectors.joining(",")); - rst.writeLog("CustomSearchTemplate:"+unitList.toString()); + int batchSize = 900; + List> batches = new ArrayList<>(); + for (int i = 0; i < unitList.size(); i += batchSize) { + batches.add(unitList.subList(i, Math.min(i + batchSize, unitList.size()))); + } - String sqlCondition = "d1.gzdw in ("+join+")"; + // 为每批生成 IN 条件 + List inConditions = batches.stream() + .map(batch -> batch.stream() + .distinct() + .map(s -> "'" + s + "'") + .collect(Collectors.joining(","))) + .map(batch -> "d1.gzdw IN (" + batch + ")") + .collect(Collectors.toList()); + + // 用 OR 连接多个 IN 条件 + String sqlCondition = "(" + String.join(" OR ", inConditions) + ")"; return sqlCondition; }