ludc
2023-06-15 e14d495581896374cc4be7ec929feb95005e6563
Source/UBCS/ubcs-service-api/ubcs-util-api/src/main/java/com/vci/ubcs/starter/util/UBCSSqlKeyword.java
@@ -9,7 +9,7 @@
import java.util.Map;
/**
 * UBCSSqlKeyword
 * UBCSSqlKeyword,高级查询不传的时候默认是_equal
 * map转wrapper时用到的比对转换
 * @author ludc
 * @date 2023/06/06 10:01
@@ -43,8 +43,8 @@
      if (!Func.isEmpty(query)) {
         query.forEach((k, v) -> {
            if (!Func.hasEmpty(new Object[]{k, v}) && !k.endsWith("_ignore")) {
               if (k.endsWith("_equal")) {
                  qw.eq(getColumn(k, "_equal"), v);
               if (k.endsWith("_like")) {
                  qw.like(getColumn(k, "_like"), v);
               } else if (k.endsWith("_notequal")) {
                  qw.ne(getColumn(k, "_notequal"), v);
               } else if (k.endsWith("_likeleft")) {
@@ -76,65 +76,74 @@
               } else if (k.endsWith("_notnull")) {
                  qw.isNotNull(getColumn(k, "_notnull"));
               } else {
                  qw.like(getColumn(k, "_like"), v);
                  qw.eq(getColumn(k, "_equal"), v);
               }
            }
         });
      }
   }
   public static void buildConditionByAs(Map<String, Object> query, MPJLambdaWrapper<?> qw, String tableAlias){
      buildConditionMPJ(query,qw,tableAlias);
   }
   public static void buildCondition(Map<String, Object> query, MPJLambdaWrapper<?> qw) {
      buildConditionMPJ(query,qw,null);
   }
   private static void buildConditionMPJ(Map<String, Object> query, MPJLambdaWrapper<?> qw, String tableAlias){
      if (!Func.isEmpty(query)) {
         query.forEach((k, v) -> {
            if (!Func.hasEmpty(new Object[]{k, v}) && !k.endsWith("_ignore")) {
               if (k.endsWith("_equal")) {
                  qw.eq(getColumn(k, "_equal"), v);
               if (k.endsWith("_like")) {
                  qw.like(tableAlias+"."+getColumn(k, "_like"), v);
               } else if (k.endsWith("_notequal")) {
                  qw.ne(getColumn(k, "_notequal"), v);
                  qw.ne(tableAlias+"."+getColumn(k, "_notequal"), v);
               } else if (k.endsWith("_likeleft")) {
                  qw.likeLeft(getColumn(k, "_likeleft"), v);
                  qw.likeLeft(tableAlias+"."+getColumn(k, "_likeleft"), v);
               } else if (k.endsWith("_likeright")) {
                  qw.likeRight(getColumn(k, "_likeright"), v);
                  qw.likeRight(tableAlias+"."+getColumn(k, "_likeright"), v);
               } else if (k.endsWith("_notlike")) {
                  qw.notLike(getColumn(k, "_notlike"), v);
                  qw.notLike(tableAlias+"."+getColumn(k, "_notlike"), v);
               } else if (k.endsWith("_ge")) {
                  qw.ge(getColumn(k, "_ge"), v);
                  qw.ge(tableAlias+"."+getColumn(k, "_ge"), v);
               } else if (k.endsWith("_le")) {
                  qw.le(getColumn(k, "_le"), v);
                  qw.le(tableAlias+"."+getColumn(k, "_le"), v);
               } else if (k.endsWith("_gt")) {
                  qw.gt(getColumn(k, "_gt"), v);
                  qw.gt(tableAlias+"."+getColumn(k, "_gt"), v);
               } else if (k.endsWith("_lt")) {
                  qw.lt(getColumn(k, "_lt"), v);
                  qw.lt(tableAlias+"."+getColumn(k, "_lt"), v);
               } else if (k.endsWith("_datege")) {
                  qw.ge(getColumn(k, "_datege"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss"));
                  qw.ge(tableAlias+"."+getColumn(k, "_datege"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss"));
               } else if (k.endsWith("_dategt")) {
                  qw.gt(getColumn(k, "_dategt"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss"));
                  qw.gt(tableAlias+"."+getColumn(k, "_dategt"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss"));
               } else if (k.endsWith("_dateequal")) {
                  qw.eq(getColumn(k, "_dateequal"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss"));
                  qw.eq(tableAlias+"."+getColumn(k, "_dateequal"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss"));
               } else if (k.endsWith("_datele")) {
                  qw.le(getColumn(k, "_datele"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss"));
                  qw.le(tableAlias+"."+getColumn(k, "_datele"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss"));
               } else if (k.endsWith("_datelt")) {
                  qw.lt(getColumn(k, "_datelt"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss"));
                  qw.lt(tableAlias+"."+getColumn(k, "_datelt"), DateUtil.parse(String.valueOf(v), "yyyy-MM-dd HH:mm:ss"));
               } else if (k.endsWith("_null")) {
                  qw.isNull(getColumn(k, "_null"));
                  qw.isNull(tableAlias+"."+getColumn(k, "_null"));
               } else if (k.endsWith("_notnull")) {
                  qw.isNotNull(getColumn(k, "_notnull"));
                  qw.isNotNull(tableAlias+"."+getColumn(k, "_notnull"));
               } else {
                  qw.like(getColumn(k, "_like"), v);
                  qw.eq(tableAlias+"."+getColumn(k, "_equal"), v);
               }
            }
         });
      }
   }
   public static void buildConditionByMapString(Map<String, String> query, MPJLambdaWrapper<?> qw) {
      if (!Func.isEmpty(query)) {
         query.forEach((k, v) -> {
            if (!Func.hasEmpty(new Object[]{k, v}) && !k.endsWith("_ignore")) {
               if (k.endsWith("_equal")) {
                  qw.eq(getColumn(k, "_equal"), v);
               if (k.endsWith("_like")) {
                  qw.like(getColumn(k, "_like"), v);
               } else if (k.endsWith("_notequal")) {
                  qw.ne(getColumn(k, "_notequal"), v);
               } else if (k.endsWith("_likeleft")) {
@@ -166,7 +175,7 @@
               } else if (k.endsWith("_notnull")) {
                  qw.isNotNull(getColumn(k, "_notnull"));
               } else {
                  qw.like(getColumn(k, "_like"), v);
                  qw.eq(getColumn(k, "_equal"), v);
               }
            }
@@ -178,8 +187,8 @@
      if (!Func.isEmpty(query)) {
         query.forEach((k, v) -> {
            if (!Func.hasEmpty(new Object[]{k, v}) && !k.endsWith("_ignore")) {
               if (k.endsWith("_equal")) {
                  qw.eq(getColumn(k, "_equal"), v);
               if (k.endsWith("_like")) {
                  qw.like(getColumn(k, "_like"), v);
               } else if (k.endsWith("_notequal")) {
                  qw.ne(getColumn(k, "_notequal"), v);
               } else if (k.endsWith("_likeleft")) {
@@ -211,7 +220,7 @@
               } else if (k.endsWith("_notnull")) {
                  qw.isNotNull(getColumn(k, "_notnull"));
               } else {
                  qw.like(getColumn(k, "_like"), v);
                  qw.eq(getColumn(k, "_equal"), v);
               }
            }
@@ -220,14 +229,12 @@
   }
   /**
    * 目前考虑一种特殊情况,在做连表查询的时候,因为查询条件是map转wrapper,
    * 这样就会出现未明确定义列的错误,所以需要考虑在何处来做处理,
    * 获取列名,没有转下划线映射
    * @param column
    * @param keyword
    * @return
    */
   private static String getColumn(String column, String keyword) {
      //没有转下划线映射
      return StringUtil.removeSuffix(column, keyword).toLowerCase(Locale.ROOT);
   }