From e96908d0c5681721f12b82bbd1eda7ad5091e8cc Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期三, 21 六月 2023 14:14:21 +0800
Subject: [PATCH] 修改高级查询关闭报错问题

---
 Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java |   53 ++++++++++++++++++++++++++++++++---------------------
 1 files changed, 32 insertions(+), 21 deletions(-)

diff --git a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
index d7b4d6d..0bba185 100644
--- a/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-code/src/main/java/com/vci/ubcs/code/service/impl/MdmEngineServiceImpl.java
@@ -34,6 +34,7 @@
 import com.vci.ubcs.starter.revision.model.TreeQueryObject;
 import com.vci.ubcs.starter.revision.model.TreeWrapperOptions;
 import com.vci.ubcs.starter.revision.service.RevisionModelUtil;
+import com.vci.ubcs.starter.util.UBCSSqlKeyword;
 import com.vci.ubcs.starter.web.constant.QueryOptionConstant;
 import com.vci.ubcs.starter.web.constant.RegExpConstant;
 import com.vci.ubcs.starter.web.enumpck.BooleanEnum;
@@ -56,6 +57,8 @@
 import org.springblade.core.launch.constant.AppConstant;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.StringPool;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.Cache;
@@ -1726,66 +1729,66 @@
 				String field = UBCSSqlKeyword.getColumn(key, "_like");
 				if (referFieldMap.containsKey(field)) {
 					//璇存槑杩樻槸鍙傜収閲岄潰鐨勶紝鎴戜滑榛樿杩欑鎯呭喌涓嬮兘鏄瓧绗︿覆鍚э紝鍥犱负鍙傜収鐨勫睘鎬т笉涓�瀹氱敤鐨勫钩鍙扮殑灞炴�ф睜閲岀殑锛屾墍浠ュぇ閮ㄥ垎鎯呭喌涓嬶紝鏄剧ず鐨勫睘鎬ч兘鏄瓧绗︿覆鍚�
-					return referFieldMap.get(field) + SPACE + "LIKE" + SPACE + "concat(%,"+"concat(" + value + ",%)" + SPACE;
+					return referFieldMap.get(field) + SPACE + "LIKE" + SPACE + "'%" + value + "%'" + SPACE;
 				} else {
-					return (field.contains(".") ? "" : "t.") + field + SPACE + "LIKE " + "concat(%,"+"concat(" + getStringValueInWhere(field, value, attrVOMap) + ",%)" + SPACE;
+					return (field.contains(".") ? "" : "t.") + field + SPACE + "LIKE " + "'%" + getStringValueInWhere(field, value, attrVOMap) + "%'" + SPACE;
 				}
 			} else if (key.endsWith("_notequal")) {
 				String field = UBCSSqlKeyword.getColumn(key, "_notequal");
 				if (referFieldMap.containsKey(field)) {
-					return referFieldMap.get(field) + SPACE + " != '" + value + "'" + SPACE;
+					return referFieldMap.get(field) + SPACE + " != " + value + SPACE;
 				} else {
 					return (field.contains(".") ? "" : "t.") + field + SPACE + " != " + getStringValueInWhere(field, value, attrVOMap);
 				}
 			} else if (key.endsWith("_likeleft")) {
 				String field = UBCSSqlKeyword.getColumn(key, "_likeleft");
 				if (referFieldMap.containsKey(field)) {
-					return referFieldMap.get(field) + SPACE + "LIKE" + SPACE + "concat(%,"+value+")" + SPACE;
+					return referFieldMap.get(field) + SPACE + "LIKE" + SPACE + "%"+value + SPACE;
 				} else {
-					return (field.contains(".") ? "" : "t.") + field + SPACE + "LIKE " + "concat(%,"+getStringValueInWhere(field, value, attrVOMap)+")" + SPACE;
+					return (field.contains(".") ? "" : "t.") + field + SPACE + "LIKE " + "%" + getStringValueInWhere(field, value, attrVOMap) + SPACE;
 				}
 			} else if (key.endsWith("_likeright")) {
 				String field = UBCSSqlKeyword.getColumn(key, "_likeright");
 				if (referFieldMap.containsKey(field)) {
-					return referFieldMap.get(field) + SPACE + "LIKE" + SPACE + "concat("+value+",%)" + SPACE;
+					return referFieldMap.get(field) + SPACE + "LIKE" + SPACE + value + "%" + SPACE;
 				} else {
-					return (field.contains(".") ? "" : "t.") + field + SPACE + "LIKE " + "concat("+getStringValueInWhere(field, value, attrVOMap)+",%)" + SPACE;
+					return (field.contains(".") ? "" : "t.") + field + SPACE + "LIKE " + getStringValueInWhere(field, value, attrVOMap)+ "%" + SPACE;
 				}
 			} else if (key.endsWith("_notlike")) {
 				String field = UBCSSqlKeyword.getColumn(key, "_notlike");
 				if (referFieldMap.containsKey(field)) {
-					return referFieldMap.get(field) + SPACE + "NO LIKE" + SPACE + "concat(%,concat("+value+",%)" + SPACE;
+					return referFieldMap.get(field) + SPACE + "NO LIKE" + SPACE + "%" + value + "%" + SPACE;
 				} else {
-					return (field.contains(".") ? "" : "t.") + field + SPACE + "NO LIKE " + "concat(%,concat"+getStringValueInWhere(field, value, attrVOMap)+",%)" + SPACE;
+					return (field.contains(".") ? "" : "t.") + field + SPACE + "NO LIKE " + "%"+getStringValueInWhere(field, value, attrVOMap)+ "%" + SPACE;
 				}
 			} else if (key.endsWith("_ge")) {
 				String field = UBCSSqlKeyword.getColumn(key, "_ge");
 				if (referFieldMap.containsKey(field)) {
-					return referFieldMap.get(field) + SPACE + " >= '" + value + "'" + SPACE;
+					return referFieldMap.get(field) + SPACE + " >= " + value + SPACE;
 				} else {
-					return (field.contains(".") ? "" : "t.") + field + SPACE + " >= '" + getStringValueInWhere(value, field, attrVOMap) + "'" + SPACE;
+					return (field.contains(".") ? "" : "t.") + field + SPACE + " >= " + getStringValueInWhere(value, field, attrVOMap) + SPACE;
 				}
 			} else if (key.endsWith("_le")) {
 				//璇存槑鏄�<=鐨勩�傛垜浠渶瑕佸厛鑾峰彇涓�涓�
 				String field = UBCSSqlKeyword.getColumn(key, "_le");
 				if (referFieldMap.containsKey(field)) {
-					return referFieldMap.get(field) + SPACE + " <= '" + value + "'" + SPACE;
+					return referFieldMap.get(field) + SPACE + " <= " + value + "" + SPACE;
 				} else {
-					return (field.contains(".") ? "" : "t.") + field + SPACE + " <= '" + getStringValueInWhere(field, value, attrVOMap) + "'" + SPACE;
+					return (field.contains(".") ? "" : "t.") + field + SPACE + " <= " + getStringValueInWhere(field, value, attrVOMap) + SPACE;
 				}
 			} else if (key.endsWith("_gt")) {
 				String field = UBCSSqlKeyword.getColumn(key, "_gt");
 				if (referFieldMap.containsKey(field)) {
-					return referFieldMap.get(field) + SPACE + "> '" + value + "'" + SPACE;
+					return referFieldMap.get(field) + SPACE + "> " + value + SPACE;
 				} else {
-					return (field.contains(".") ? "" : "t.") + field + SPACE + "> '" + getStringValueInWhere(field, value, attrVOMap) + "'" + SPACE;
+					return (field.contains(".") ? "" : "t.") + field + SPACE + "> " + getStringValueInWhere(field, value, attrVOMap) + SPACE;
 				}
 			} else if (key.endsWith("_lt")) {
 				String field = UBCSSqlKeyword.getColumn(key, "_lt");
 				if (referFieldMap.containsKey(field)) {
-					return referFieldMap.get(field) + SPACE + "< '" + value + "'" + SPACE;
+					return referFieldMap.get(field) + SPACE + "< " + value + SPACE;
 				} else {
-					return (field.contains(".") ? "" : "t.") + field + SPACE + "< '" + getStringValueInWhere(field, value, attrVOMap) + "'" + SPACE;
+					return (field.contains(".") ? "" : "t.") + field + SPACE + "< " + getStringValueInWhere(field, value, attrVOMap) + SPACE;
 				}
 			} else if (key.endsWith("_datege")) {
 				String field = UBCSSqlKeyword.getColumn(key, "_datege");
@@ -1839,9 +1842,16 @@
 			} else if(key.endsWith("_dateequal")) {
 				String field = UBCSSqlKeyword.getColumn(key, "_dateequal");
 				if (referFieldMap.containsKey(field)) {
+					return referFieldMap.get(field) + SPACE + "= '" + DateUtil.parse(String.valueOf(value), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE;
+				} else {
+					return (field.contains(".") ? "" : "t.") + field + SPACE + "= '" + DateUtil.parse(String.valueOf(getStringValueInWhere(field, value, attrVOMap)), "yyyy-MM-dd HH:mm:ss") + "'" + SPACE;
+				}
+			}else if(key.endsWith("_equal")) {
+				String field = UBCSSqlKeyword.getColumn(key, "_equal");
+				if (referFieldMap.containsKey(field)) {
 					return referFieldMap.get(field) + SPACE + "= '" + value + "'" + SPACE;
 				} else {
-					return (field.contains(".") ? "" : "t.") + field + SPACE + "= '" + getStringValueInWhere(field, value, attrVOMap)+ "'" + SPACE;
+					return (field.contains(".") ? "" : "t.") + field + SPACE + "= '" + getStringValueInWhere(field, value, attrVOMap) + "'"  + SPACE;
 				}
 			}else {
 				if (referFieldMap.containsKey(key)) {
@@ -1854,6 +1864,7 @@
 			}
 		}
 		return "";
+
 		/*if (key.endsWith("_begin")) {
 			//璇存槑鏄�>=鐨勩�傛垜浠渶瑕佸厛鑾峰彇涓�涓�
 			String field = (key.substring(0, key.length() - 6).toLowerCase().trim());
@@ -1903,7 +1914,7 @@
 			}
 			if (field.contains(".") && attrVOMap != null && attrVOMap.containsKey(field.split("\\.")[0].toLowerCase(Locale.ROOT))) {
 				//鏄弬鐓�
-				return "'" + value + "'";
+				return value;
 			} else {
 				return value;
 			}
@@ -1927,13 +1938,13 @@
 					|| VciFieldTypeEnum.VTInteger.equals(fieldTypeEnum)) {
 					return value;
 				} else {
-					return "'" + value + "'";
+					return value;
 				}
 			} else {
 				if ((value.startsWith("(") && value.endsWith(")")) || (value.startsWith("'") && value.endsWith("'"))) {
 					return value;
 				}
-				return "'" + value + "'";
+				return value;
 			}
 		}
 

--
Gitblit v1.9.3