高级搜索

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> //高级搜索 queryConditionVOList List<QueryConditionVO>
List<QueryConditionVO> queryConditionVOList = (List<QueryConditionVO>) parameter.get("queryConditionVOList"); if(ObjectUtils.isNotEmpty(parameter.get("queryConditionVOList"))){
if(ObjectUtils.isNotEmpty(queryConditionVOList)){ String queryConditionVOListStr = (String) parameter.get("queryConditionVOList");
String queryCondition = sqlJoint(queryConditionVOList); List<QueryConditionVO> queryConditionVOList = JSONObject.parseArray(queryConditionVOListStr, QueryConditionVO.class);
if(StringUtils.isNotBlank(queryCondition)){ if(ObjectUtils.isNotEmpty(queryConditionVOList)){
conditionSb.append(queryCondition); String queryCondition = sqlJoint(queryConditionVOList);
if(StringUtils.isNotBlank(queryCondition)){
conditionSb.append(" and " + queryCondition);
}
} }
} }
//处理列表表头排序 //处理列表表头排序
if (StringUtils.isNotBlank((String) parameter.get("orderByField"))) { if (StringUtils.isNotBlank((String) parameter.get("orderByField"))) {
conditionSb.append(" order by " + (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("technology_territory");
fieldListQuery.add("xin1_che1_xing2_shi2_shi1_ri4_qi1"); fieldListQuery.add("xin1_che1_xing2_shi2_shi1_ri4_qi1");
fieldListQuery.add("implement_time"); fieldListQuery.add("implement_time");
fieldListQuery.add("corresponding_standard");
List<String> fieldListNew = new ArrayList<>(); List<String> fieldListNew = new ArrayList<>();
fieldListNew.add("id"); fieldListNew.add("id");
@@ -5145,6 +5148,10 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
for (QueryConditionVO queryConditionVO : queryConditionVOList) { for (QueryConditionVO queryConditionVO : queryConditionVOList) {
String type = queryConditionVO.getType();//and或or String type = queryConditionVO.getType();//and或or
String rule = queryConditionVO.getRule(); 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 field = queryConditionVO.getField();
String val = queryConditionVO.getVal(); String val = queryConditionVO.getVal();
//如果查询字段对应的搜索条件值为空,则不作处理 //如果查询字段对应的搜索条件值为空,则不作处理
@@ -5153,7 +5160,11 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
sb.append(" " + field + " "); sb.append(" " + field + " ");
//查询类型 //查询类型
String ruleTemp = queryType(rule); String ruleTemp = queryType(rule);
sb.append(ruleTemp + " "); if(StringUtils.isNotBlank(ruleLike)){
sb.append(ruleLike + " ");
}else{
sb.append(ruleTemp + " ");
}
//在..中(用in-->特殊处理) //在..中(用in-->特殊处理)
if(val.contains(",")){ if(val.contains(",")){
StringBuilder sbTemp = new StringBuilder(); StringBuilder sbTemp = new StringBuilder();
@@ -5162,10 +5173,21 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
} }
if(StringUtils.isNotBlank(sbTemp)){ if(StringUtils.isNotBlank(sbTemp)){
String substring = sbTemp.substring(0, sbTemp.length() - 1); String substring = sbTemp.substring(0, sbTemp.length() - 1);
sb.append(substring); sb.append("("+substring+")");
} }
}else{ }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){ if(count > 1){
sb.append(type + " "); sb.append(type + " ");