| | |
| | | wrapperData(dataList, templateVO, sqlBO.getSelectFieldList(), false); |
| | | // maps.stream().forEach(map -> { |
| | | // Map<String, String> data = new HashMap<>(); |
| | | //// map.forEach((key, value) -> { |
| | | //// data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value)); |
| | | //// }); |
| | | // map.forEach((key, value) -> { |
| | | // data.put(((String) key).toLowerCase(Locale.ROOT), String.valueOf(value)); |
| | | // }); |
| | | // for (String s : map.keySet()) { |
| | | // data.put(((String) s).toLowerCase(Locale.ROOT), String.valueOf(map.get(s))); |
| | | // } |
| | |
| | | if (referFieldMap.containsKey(field)) { |
| | | return VciBaseUtil.toInSql(referFieldMap.get(field), value); //referFieldMap.get(field) + SPACE + "= '" + value + "'" + SPACE; |
| | | } else { |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "= " + getStringValueInWhere(field, value, attrVOMap) + "" + SPACE; |
| | | //TODO:暂时没考虑IN>1000条的问题 |
| | | //return (field.contains(".") ? "" : "t.") + field + SPACE + "= " + getStringValueInWhere(field, value, attrVOMap) + "" + SPACE; |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "IN (" + getStringValueInWhere(field, "IN//"+value, attrVOMap) + ")" + SPACE; |
| | | } |
| | | } else if (key.endsWith("_notin")) { |
| | | String field = UBCSSqlKeyword.getColumn(key, "_in"); |
| | | if (referFieldMap.containsKey(field)) { |
| | | return VciBaseUtil.toInSql(referFieldMap.get(field), value); //referFieldMap.get(field) + SPACE + "= '" + value + "'" + SPACE; |
| | | } else { |
| | | //return (field.contains(".") ? "" : "t.") + field + SPACE + "not in (" + getStringValueInWhere(field, "IN//"+value, attrVOMap) + ")" + SPACE; |
| | | return (field.contains(".") ? "" : "t.") + field + SPACE + "IN (" + getStringValueInWhere(field, "IN//"+value, attrVOMap) + ")" + SPACE; |
| | | } |
| | | |
| | | } else { |
| | | // if (referFieldMap.containsKey(key)) { |
| | | // //说明是参照的,我们参照的查询都认为是字符串,如果是时间格式的查询肯定有问题, |
| | |
| | | || VciFieldTypeEnum.VTInteger.equals(fieldTypeEnum)) { |
| | | return value; |
| | | } else { |
| | | if(value.contains("IN//")){ |
| | | return MybatisParameterUtil.getInClause(Func.toStrList(value.replace("IN//",""))); |
| | | } |
| | | return "'" + value + "'"; |
| | | } |
| | | } else { |
| | | if ((value.startsWith("(") && value.endsWith(")")) || (value.startsWith("'") && value.endsWith("'"))) { |
| | | return value; |
| | | } |
| | | }else if(value.contains("IN//")){ |
| | | //暂时不考虑>1000的情况,因为搜索一般也不会出现搜索1000条的情况 |
| | | //return MybatisParameterUtil.convertToOrConditions(field, Func.toStrList(value.replace("IN//",""))); |
| | | return MybatisParameterUtil.getInClause(Func.toStrList(value.replace("IN//",""))); |
| | | }else{ |
| | | return "'" + value + "'"; |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | |