From 81edec7c3bdef059a44e7c5e7b81d35ea09a72ed Mon Sep 17 00:00:00 2001
From: xiejun <xj@2023>
Date: 星期三, 13 九月 2023 08:52:39 +0800
Subject: [PATCH] 人员组织结构申请接口开发
---
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/MybatisParameterUtil.java | 82 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 82 insertions(+), 0 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 457dbdb..4931b1e 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
@@ -1,12 +1,17 @@
package com.vci.ubcs.starter.util;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.vci.ubcs.starter.exception.VciBaseException;
+import org.springblade.core.mp.support.SqlKeyword;
+import org.springblade.core.tool.utils.BeanUtil;
import org.springframework.util.ObjectUtils;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
/**
* in 鍙傛暟鎴彇锛岃繑鍥瀢rapper
@@ -16,6 +21,44 @@
*/
public class MybatisParameterUtil {
+ /**
+ * in浣滀负鏌ヨ鏉′欢鏃讹紝闃叉澶т簬1000鍑虹幇鎶ラ敊锛屽鏉′欢杩涜鎴彇锛岃繛琛ㄦ煡璇㈢殑wrapper
+ * @param wrapper MPJLambdaWrapper,涓嶈繘琛岃繛琛ㄦ煡璇㈡椂浣跨敤
+ * @param column 浣滀负in鐨勬潯浠跺垪
+ * @param coll 鏌ヨ鍙傛暟
+ * @param <T> LambdaQueryWrapper鐨勬硾鍨�
+ * @param <F> 鏌ヨ鍙傛暟绫诲瀷
+ * @return
+ * @throws VciBaseException
+ */
+ public static <T, F> MPJLambdaWrapper<T> cutInParameter(MPJLambdaWrapper<T> wrapper, SFunction<T, ?> column, List<F> coll) throws VciBaseException {
+ List<List<F>> newList = splitList(coll, 900);
+ if (ObjectUtils.isEmpty(newList)) {
+ throw new VciBaseException("鍙傛暟閿欒");
+ } else if (newList.size() == 1) {
+ wrapper.in(column, newList.get(0));
+ return wrapper;
+ }
+ wrapper.and(i -> {
+ i.in(column, newList.get(0));
+ newList.remove(0);
+ for (List<F> objects : newList) {
+ i.or().in(column, objects);
+ }
+ });
+ return wrapper;
+ }
+
+ /**
+ * in浣滀负鏌ヨ鏉′欢鏃讹紝闃叉澶т簬1000鍑虹幇鎶ラ敊锛屽鏉′欢杩涜鎴彇锛屼笉鍏峰杩炶〃鏌ヨ鐨剋rapper
+ * @param wrapper LambdaQueryWrapper,涓嶈繘琛岃繛琛ㄦ煡璇㈡椂浣跨敤
+ * @param column 浣滀负in鐨勬潯浠跺垪
+ * @param coll 鏌ヨ鍙傛暟
+ * @param <T> LambdaQueryWrapper鐨勬硾鍨�
+ * @param <F> 鏌ヨ鍙傛暟绫诲瀷
+ * @return
+ * @throws VciBaseException
+ */
public static <T, F> LambdaQueryWrapper<T> cutInParameter(LambdaQueryWrapper<T> wrapper, SFunction<T, ?> column, List<F> coll) throws VciBaseException {
List<List<F>> newList = splitList(coll, 900);
if (ObjectUtils.isEmpty(newList)) {
@@ -34,6 +77,44 @@
return wrapper;
}
+ /**
+ * notin浣滀负鏌ヨ鏉′欢鏃讹紝闃叉澶т簬1000鍑虹幇鎶ラ敊锛屽鏉′欢杩涜鎴彇锛岃繛琛ㄦ煡璇㈢殑wrapper
+ * @param wrapper MPJLambdaWrapper,涓嶈繘琛岃繛琛ㄦ煡璇㈡椂浣跨敤
+ * @param column 浣滀负in鐨勬潯浠跺垪
+ * @param coll 鏌ヨ鍙傛暟
+ * @param <T> LambdaQueryWrapper鐨勬硾鍨�
+ * @param <F> 鏌ヨ鍙傛暟绫诲瀷
+ * @return
+ * @throws VciBaseException
+ */
+ public static <T, F> MPJLambdaWrapper<T> cutNotInParameter(MPJLambdaWrapper<T> wrapper, SFunction<T, ?> column, List<F> coll) throws VciBaseException {
+ List<List<F>> newList = splitList(coll, 900);
+ if (ObjectUtils.isEmpty(newList)) {
+ throw new VciBaseException("鍙傛暟閿欒");
+ } else if (newList.size() == 1) {
+ wrapper.notIn(column, newList.get(0));
+ return wrapper;
+ }
+ wrapper.and(i -> {
+ i.in(column, newList.get(0));
+ newList.remove(0);
+ for (List<F> objects : newList) {
+ i.or().notIn(column, objects);
+ }
+ });
+ return wrapper;
+ }
+
+ /**
+ * notin浣滀负鏌ヨ鏉′欢鏃讹紝闃叉澶т簬1000鍑虹幇鎶ラ敊锛屽鏉′欢杩涜鎴彇锛屼笉鍏峰杩炶〃鏌ヨ鐨剋rapper
+ * @param wrapper LambdaQueryWrapper,涓嶈繘琛岃繛琛ㄦ煡璇㈡椂浣跨敤
+ * @param column 浣滀负in鐨勬潯浠跺垪
+ * @param coll 鏌ヨ鍙傛暟
+ * @param <T> LambdaQueryWrapper鐨勬硾鍨�
+ * @param <F> 鏌ヨ鍙傛暟绫诲瀷
+ * @return
+ * @throws VciBaseException
+ */
public static <T, F> LambdaQueryWrapper<T> cutNotInParameter(LambdaQueryWrapper<T> wrapper, SFunction<T, ?> column, List<F> coll) throws VciBaseException {
List<List<F>> newList = splitList(coll, 900);
if (ObjectUtils.isEmpty(newList)) {
@@ -67,4 +148,5 @@
return newList;
}
+
}
--
Gitblit v1.9.3