From b46cf401da847d7cca6269c6b2ffb04f6f72691a Mon Sep 17 00:00:00 2001 From: ludc Date: 星期日, 14 五月 2023 03:57:37 +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