高级搜索

This commit is contained in:
zhn
2022-05-23 18:19:12 +08:00
parent dbd7c662a6
commit 67b9e12c1c
@@ -3141,15 +3141,17 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
}
//高级搜索 queryConditionVOList List<QueryConditionVO>
List<QueryConditionVO> queryConditionVOList = (List<QueryConditionVO>) parameter.get("queryConditionVOList");
if(ObjectUtils.isNotEmpty(queryConditionVOList)){
String queryCondition = sqlJoint(queryConditionVOList);
if(StringUtils.isNotBlank(queryCondition)){
conditionSb.append(queryCondition);
if(ObjectUtils.isNotEmpty(parameter.get("queryConditionVOList"))){
String queryConditionVOListStr = (String) parameter.get("queryConditionVOList");
List<QueryConditionVO> queryConditionVOList = JSONObject.parseArray(queryConditionVOListStr, QueryConditionVO.class);
if(ObjectUtils.isNotEmpty(queryConditionVOList)){
String queryCondition = sqlJoint(queryConditionVOList);
if(StringUtils.isNotBlank(queryCondition)){
conditionSb.append(" and " + queryCondition);
}
}
}
//处理列表表头排序
if (StringUtils.isNotBlank((String) parameter.get("orderByField"))) {
conditionSb.append(" order by " + (String) parameter.get("orderByField"));
@@ -5089,6 +5091,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
fieldListQuery.add("technology_territory");
fieldListQuery.add("xin1_che1_xing2_shi2_shi1_ri4_qi1");
fieldListQuery.add("implement_time");
fieldListQuery.add("corresponding_standard");
List<String> fieldListNew = new ArrayList<>();
fieldListNew.add("id");
@@ -5145,6 +5148,10 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
for (QueryConditionVO queryConditionVO : queryConditionVOList) {
String type = queryConditionVO.getType();//and或or
String rule = queryConditionVO.getRule();
String ruleLike = "";
if(QueryRuleEnum.LEFT_LIKE.getCondition().equals(rule) || QueryRuleEnum.RIGHT_LIKE.getCondition().equals(rule)){
ruleLike = QueryRuleEnum.LIKE.getCondition();
}
String field = queryConditionVO.getField();
String val = queryConditionVO.getVal();
//如果查询字段对应的搜索条件值为空,则不作处理
@@ -5153,7 +5160,11 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
sb.append(" " + field + " ");
//查询类型
String ruleTemp = queryType(rule);
sb.append(ruleTemp + " ");
if(StringUtils.isNotBlank(ruleLike)){
sb.append(ruleLike + " ");
}else{
sb.append(ruleTemp + " ");
}
//..(用in-->特殊处理)
if(val.contains(",")){
StringBuilder sbTemp = new StringBuilder();
@@ -5162,10 +5173,21 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
}
if(StringUtils.isNotBlank(sbTemp)){
String substring = sbTemp.substring(0, sbTemp.length() - 1);
sb.append(substring);
sb.append("("+substring+")");
}
}else{
sb.append(val);
//like和in需要特殊处理
if(QueryRuleEnum.IN.getCondition().equals(rule)){
sb.append("('" + val + "')");
}else if(QueryRuleEnum.LIKE.getCondition().equals(rule)){
sb.append("'%" + val + "%'");
}else if(QueryRuleEnum.LEFT_LIKE.getCondition().equals(rule)){
sb.append("'%" + val + "'");
}else if(QueryRuleEnum.RIGHT_LIKE.getCondition().equals(rule)){
sb.append("'" + val + "%'");
}else{
sb.append("'" + val + "'");
}
}
if(count > 1){
sb.append(type + " ");