法规符合性看板-高级查询完善。
This commit is contained in:
+84
-1
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.jero.common.constant.enums.CutEnum;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.query.QueryRuleEnum;
|
||||
import com.jero.modules.document.enums.FieldTypeEnum;
|
||||
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
|
||||
import com.jero.modules.document.vo.QueryConditionVO;
|
||||
@@ -495,7 +496,7 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi
|
||||
String queryConditionVOListStr = (String) parameter.get("queryConditionVOList");
|
||||
List<QueryConditionVO> queryConditionVOList = com.alibaba.fastjson.JSONObject.parseArray(queryConditionVOListStr, QueryConditionVO.class);
|
||||
if(ObjectUtils.isNotEmpty(queryConditionVOList)){
|
||||
String queryCondition = this.bussDocumentLibraryEOService.sqlJoint(queryConditionVOList);
|
||||
String queryCondition = this.sqlJoint(queryConditionVOList);
|
||||
if(StringUtils.isNotBlank(queryCondition)){
|
||||
conditionSb.append(" and " + queryCondition);
|
||||
}
|
||||
@@ -530,6 +531,88 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi
|
||||
return condition;
|
||||
}
|
||||
|
||||
public String sqlJoint(List<QueryConditionVO> queryConditionVOList){
|
||||
StringBuilder sb = new StringBuilder();
|
||||
if(queryConditionVOList.size() != 0){
|
||||
int count =0;
|
||||
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();
|
||||
//如果查询字段对应的搜索条件值为空,则不作处理
|
||||
if(StringUtils.isNotBlank(val)) {
|
||||
field = "bdl." + field;
|
||||
count++;//从第二个查询条件开始拼接type(and或or)
|
||||
if (count > 1) {
|
||||
sb.append(" " + type + " ");
|
||||
}
|
||||
sb.append(" " + field + " ");
|
||||
//查询类型
|
||||
String ruleTemp = queryType(rule);
|
||||
if (StringUtils.isNotBlank(ruleLike)) {
|
||||
sb.append(ruleLike + " ");
|
||||
} else {
|
||||
sb.append(ruleTemp + " ");
|
||||
}
|
||||
//like和in需要特殊处理
|
||||
if (QueryRuleEnum.IN.getCondition().equals(rule)) {
|
||||
if (val.contains(",")) {
|
||||
StringBuilder sbTemp = new StringBuilder();
|
||||
for (String valTemp : val.split(",")) {
|
||||
sbTemp.append("'" + valTemp + "' ,");
|
||||
}
|
||||
if (StringUtils.isNotBlank(sbTemp)) {
|
||||
String substring = sbTemp.substring(0, sbTemp.length() - 1);
|
||||
sb.append("(" + substring + ")");
|
||||
}
|
||||
}
|
||||
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 + "'");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
public String queryType(String rule){
|
||||
String value ="";
|
||||
if(QueryRuleEnum.GT.getCondition().equals(rule)){
|
||||
value = QueryRuleEnum.GT.getValue();
|
||||
}else if(QueryRuleEnum.GE.getCondition().equals(rule)){
|
||||
value = QueryRuleEnum.GE.getValue();
|
||||
}else if(QueryRuleEnum.LT.getCondition().equals(rule)){
|
||||
value = QueryRuleEnum.LT.getValue();
|
||||
}else if(QueryRuleEnum.LE.getCondition().equals(rule)){
|
||||
value = QueryRuleEnum.LE.getValue();
|
||||
}else if(QueryRuleEnum.EQ.getCondition().equals(rule)){
|
||||
value = QueryRuleEnum.EQ.getValue();
|
||||
}else if(QueryRuleEnum.NE.getCondition().equals(rule)){
|
||||
value = QueryRuleEnum.NE.getValue();
|
||||
}else if(QueryRuleEnum.LIKE.getCondition().equals(rule)){
|
||||
value = QueryRuleEnum.LIKE.getValue();
|
||||
}else if(QueryRuleEnum.LEFT_LIKE.getCondition().equals(rule)){
|
||||
value = QueryRuleEnum.LEFT_LIKE.getValue();
|
||||
}else if(QueryRuleEnum.RIGHT_LIKE.getCondition().equals(rule)){
|
||||
value = QueryRuleEnum.RIGHT_LIKE.getValue();
|
||||
}else if(QueryRuleEnum.IN.getCondition().equals(rule)){
|
||||
value = QueryRuleEnum.IN.getValue();
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理技术领域展示字段
|
||||
* @param technologyTerritoryList
|
||||
|
||||
Reference in New Issue
Block a user