From b11b45122d2b6903e8970e8d55712f7a6a657e22 Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期三, 10 一月 2024 00:01:10 +0800
Subject: [PATCH] defaultReferDataGrid接口修改,实现兼容高级查询sql拼接;修改流水处理接口,增加流水处理跳出判断

---
 Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/UBCSCondition.java |   95 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 95 insertions(+), 0 deletions(-)

diff --git a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/UBCSCondition.java b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/UBCSCondition.java
index 64b0fc0..c015273 100644
--- a/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/UBCSCondition.java
+++ b/Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/UBCSCondition.java
@@ -6,14 +6,18 @@
 import com.baomidou.mybatisplus.core.metadata.OrderItem;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
+import com.vci.ubcs.starter.web.constant.QueryOptionConstant;
 import com.vci.ubcs.starter.web.util.VciBaseUtil;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.support.Kv;
 import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.DateUtil;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.StringUtil;
 
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -24,6 +28,11 @@
  * @date 2023/6/6 15:26
  */
 public class UBCSCondition {
+
+	/**
+	 * 绌烘牸
+	 */
+	public static final String SPACE = " ";
 
 	public UBCSCondition() {
 	}
@@ -136,4 +145,90 @@
 		return qw;
 	}
 
+	public static String getWhereSqlByMap(Map<String, String> conditionMap){
+		List<String> whereSqlList = new ArrayList<>();
+		conditionMap.forEach((key,value)->{
+			String sql = "";
+			// 涓嶄负绌烘墠鍘绘嫾鎺�
+			if(!Func.hasEmpty(new Object[]{key, value}) && !key.endsWith("_ignore")){
+				if (key.endsWith("_like")) {
+					String field = UBCSSqlKeyword.getColumn(key, "_like");
+					sql = field + SPACE + "LIKE" + SPACE + "'%" + value + "%'" + SPACE;
+				} else if (key.endsWith("_notequal")) {
+					String field = UBCSSqlKeyword.getColumn(key, "_notequal");
+					sql = field + SPACE + " != " + value + SPACE;
+				} else if (key.endsWith("_likeleft")) {
+					String field = UBCSSqlKeyword.getColumn(key, "_likeleft");
+					sql = field + SPACE + "LIKE" + SPACE + "%" + value + SPACE;
+				} else if (key.endsWith("_likeright")) {
+					String field = UBCSSqlKeyword.getColumn(key, "_likeright");
+					sql = field + SPACE + "LIKE" + SPACE + value + "%" + SPACE;
+				} else if (key.endsWith("_notlike")) {
+					String field = UBCSSqlKeyword.getColumn(key, "_notlike");
+					sql = field + SPACE + "NO LIKE" + SPACE + "%" + value + "%" + SPACE;
+				} else if (key.endsWith("_ge")) {
+					String field = UBCSSqlKeyword.getColumn(key, "_ge");
+					sql = field + SPACE + " >= " + value + SPACE;
+				} else if (key.endsWith("_le")) {
+					//璇存槑鏄�<=鐨勩�傛垜浠渶瑕佸厛鑾峰彇涓�涓�
+					String field = UBCSSqlKeyword.getColumn(key, "_le");
+					sql = field + SPACE + " <= " + value + "" + SPACE;
+				} else if (key.endsWith("_gt")) {
+					String field = UBCSSqlKeyword.getColumn(key, "_gt");
+					sql = field + SPACE + "> " + value + SPACE;
+				} else if (key.endsWith("_lt")) {
+					String field = UBCSSqlKeyword.getColumn(key, "_lt");
+					sql = field + SPACE + "< " + value + SPACE;
+				} else if (key.endsWith("_datege")) {
+					String field = UBCSSqlKeyword.getColumn(key, "_datege");
+					sql = field + SPACE + ">= '" + DateUtil.parse(String.valueOf(value), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE;
+				} else if (key.endsWith("_dategt")) {
+					String field = UBCSSqlKeyword.getColumn(key, "_dategt");
+					sql = field + SPACE + "> '" + DateUtil.parse(String.valueOf(value), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE;
+				} else if (key.endsWith("_dateequal")) {
+					String field = UBCSSqlKeyword.getColumn(key, "_dateequal");
+					sql = field + SPACE + "= '" + DateUtil.parse(String.valueOf(value), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE;
+				} else if (key.endsWith("_datele")) {
+					String field = UBCSSqlKeyword.getColumn(key, "_datele");
+					sql = field + SPACE + "<= '" + DateUtil.parse(String.valueOf(value), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE;
+				} else if (key.endsWith("_datelt")) {
+					String field = UBCSSqlKeyword.getColumn(key, "_datelt");
+					sql = field + SPACE + "< '" + DateUtil.parse(String.valueOf(value), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE;
+				} else if (key.endsWith("_null")) {
+					String field = UBCSSqlKeyword.getColumn(key, "_null");
+					sql = field + SPACE + "IS NULL" + SPACE;
+				} else if (key.endsWith("_notnull")) {
+					String field = UBCSSqlKeyword.getColumn(key, "_notnull");
+					sql = field + SPACE + "IS NOT NULL" + SPACE;
+				} else if (key.endsWith("_dateequal")) {
+					String field = UBCSSqlKeyword.getColumn(key, "_dateequal");
+					sql = field + SPACE + "= '" + DateUtil.parse(String.valueOf(value), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE;
+				} else if (key.endsWith("_equal")) {
+					String field = UBCSSqlKeyword.getColumn(key, "_equal");
+					sql = field + SPACE + "= '" + value + "'" + SPACE;
+				} else if(key.endsWith("_in")) {
+					String field = UBCSSqlKeyword.getColumn(key, "_in");
+					sql = VciBaseUtil.toInSql(field,value);
+				} else if(key.endsWith("_notin")) {
+					String field = UBCSSqlKeyword.getColumn(key, "_notin");
+					sql = VciBaseUtil.toInSql(field,value);
+				}
+				if(!sql.isEmpty()){
+					whereSqlList.add(sql);
+				}
+			}
+		});
+		//缁勫悎璧锋潵
+		StringBuilder andSb = new StringBuilder();
+		whereSqlList.stream().forEach(s -> {
+			andSb.append(s).append(SPACE).append(QueryOptionConstant.AND).append(SPACE);
+		});
+		String andString = andSb.toString().trim();
+		String endWithSql = QueryOptionConstant.AND;
+		if (andString.endsWith(endWithSql)) {
+			andString = andString.substring(0, andString.length() - endWithSql.length());
+		}
+		return andString;
+	}
+
 }

--
Gitblit v1.9.3