From 3623c7ad92348e76a917ca844d76d27711d58191 Mon Sep 17 00:00:00 2001
From: xiejun <xiejun@vci-tech.com>
Date: 星期四, 26 十二月 2024 16:15:20 +0800
Subject: [PATCH] 集成获取mdm分发通用数据格式接口集成 日志输出到日志文件中
---
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/MybatisParameterUtil.java | 73 +++++++++++++++++++++++++++++++++++-
1 files changed, 71 insertions(+), 2 deletions(-)
diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/MybatisParameterUtil.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/MybatisParameterUtil.java
index 4931b1e..96d578d 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/MybatisParameterUtil.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/MybatisParameterUtil.java
@@ -14,12 +14,82 @@
import java.util.Map;
/**
- * in 鍙傛暟鎴彇锛岃繑鍥瀢rapper
+ * in 鍙傛暟鎴彇锛岃繑鍥瀢rapper/鎴栬�厀here鏉′欢瀛楃涓�
*
* @author ludc
* @date 2023/5/5
*/
public class MybatisParameterUtil {
+
+ /**
+ * Oracle IN 鏌ヨ鐨勬渶澶у弬鏁伴檺鍒�
+ */
+ private static final int MAX_IN_CLAUSE_SIZE = 1000;
+
+ /**
+ * 灏嗙粰瀹氱殑 ID 鍒楄〃杞崲涓洪�傚悎 Oracle 鐨勬煡璇㈡潯浠�
+ *
+ * @param ids ID 鍒楄〃
+ * @return 閫傚悎 Oracle 鐨勬煡璇㈡潯浠�
+ */
+ public static String convertToOrConditions(String filed,List<String> ids) {
+ if (ids == null || ids.isEmpty()) {
+ return "";
+ }
+
+ StringBuilder queryBuilder = new StringBuilder();
+ int size = ids.size();
+
+ // 鍒嗘壒澶勭悊锛岄伩鍏嶈秴杩� Oracle IN 鏌ヨ鐨勬渶澶ч檺鍒�
+ for (int i = 0; i < size; i += MAX_IN_CLAUSE_SIZE) {
+ int end = Math.min(i + MAX_IN_CLAUSE_SIZE, size);
+ List<String> subList = ids.subList(i, end);
+ if (queryBuilder.length() > 0) {
+ queryBuilder.append(" OR ");
+ }
+ queryBuilder.append("(")
+ .append(getInClause(filed,subList)).append(")");
+ }
+
+ return queryBuilder.toString();
+ }
+
+ /*
+ * 鑾峰彇 IN 鏌ヨ鏉′欢瀛楃涓�
+ * @param ids ID 鍒楄〃
+ * @return IN 鏌ヨ鏉′欢瀛楃涓�
+ */
+ private static String getInClause(String filed,List<String> ids) {
+ StringBuilder inClauseBuilder = new StringBuilder();
+ inClauseBuilder.append(filed + " IN (");
+
+ for (int i = 0; i < ids.size(); i++) {
+ inClauseBuilder.append("'").append(ids.get(i)).append("'");
+ if (i < ids.size() - 1) {
+ inClauseBuilder.append(", ");
+ }
+ }
+ inClauseBuilder.append(")");
+
+ return inClauseBuilder.toString();
+ }
+
+ /**
+ * 鑾峰彇 IN 鏌ヨ鏉′欢瀛楃涓诧紙涓嶅寘鍚玦n锛�
+ *
+ * @param ids ID 鍒楄〃
+ * @return IN 鏌ヨ鏉′欢瀛楃涓�
+ */
+ public static String getInClause(List<String> ids) {
+ StringBuilder inClauseBuilder = new StringBuilder();
+ for (int i = 0; i < ids.size(); i++) {
+ inClauseBuilder.append("'").append(ids.get(i)).append("'");
+ if (i < ids.size() - 1) {
+ inClauseBuilder.append(", ");
+ }
+ }
+ return inClauseBuilder.toString();
+ }
/**
* in浣滀负鏌ヨ鏉′欢鏃讹紝闃叉澶т簬1000鍑虹幇鎶ラ敊锛屽鏉′欢杩涜鎴彇锛岃繛琛ㄦ煡璇㈢殑wrapper
@@ -147,6 +217,5 @@
}
return newList;
}
-
}
--
Gitblit v1.9.3