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