ludc
2023-06-21 e96908d0c5681721f12b82bbd1eda7ad5091e8cc
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;
         }
      }