提交 590f7d87 作者: obcy

【专题筛选条件添加实体标签检索】

上级 d509c7ca
...@@ -3,6 +3,8 @@ package com.zzsn.event.es; ...@@ -3,6 +3,8 @@ package com.zzsn.event.es;
import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateTime;
import cn.hutool.core.map.MapUtil; import cn.hutool.core.map.MapUtil;
import cn.hutool.core.net.URLDecoder; import cn.hutool.core.net.URLDecoder;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONArray;
...@@ -2380,6 +2382,38 @@ public class EsService { ...@@ -2380,6 +2382,38 @@ public class EsService {
TermsQueryBuilder sortFieldQuery = QueryBuilders.termsQuery("sortField.fieldType", searchCondition.getKeywordList()); TermsQueryBuilder sortFieldQuery = QueryBuilders.termsQuery("sortField.fieldType", searchCondition.getKeywordList());
boolQuery.must(QueryBuilders.nestedQuery("sortField", sortFieldQuery, ScoreMode.None)); boolQuery.must(QueryBuilders.nestedQuery("sortField", sortFieldQuery, ScoreMode.None));
} }
//实体标签参数
if (CollectionUtils.isNotEmpty(searchCondition.getSpecialLabelParams())) {
cn.hutool.json.JSONObject params = searchCondition.getSpecialLabelParams();
String entityObjectId = params.getStr("entityObjectId");
BoolQueryBuilder specialLabelQuery = QueryBuilders.boolQuery();
if (StrUtil.isNotBlank(entityObjectId) && ("1892197364882550786".equals(entityObjectId) || "1874728877847257089".equals(entityObjectId))){
cn.hutool.json.JSONArray jsonArray = params.getJSONArray("labelCodeList");
if (ObjectUtil.isNotEmpty(jsonArray) && !jsonArray.isEmpty()){
List<String> reids = new ArrayList<>();
jsonArray.forEach(e -> {
cn.hutool.json.JSONObject jsonObject = (cn.hutool.json.JSONObject) e;
String labelCode = jsonObject.getStr("labelCode");
if (StrUtil.isNotBlank(labelCode)){
cn.hutool.json.JSONArray jsonArray1 = jsonObject.getJSONArray("children");
if (jsonArray1 != null && !jsonArray1.isEmpty()){
jsonArray1.forEach(f -> {
cn.hutool.json.JSONObject jsonObject1 = (cn.hutool.json.JSONObject) f;
String labelItemCode = jsonObject1.getStr("labelItemCode");
if (StrUtil.isNotBlank(labelItemCode)){
reids.add(labelCode+"-"+labelItemCode);
}
});
}
}
});
if (CollectionUtils.isNotEmpty(reids)){
specialLabelQuery.must(QueryBuilders.nestedQuery("labels",QueryBuilders.termsQuery("labels.relationId",reids),ScoreMode.None));
boolQuery.must(specialLabelQuery);
}
}
}
}
return boolQuery; return boolQuery;
} }
......
package com.zzsn.event.vo; package com.zzsn.event.vo;
import cn.hutool.json.JSONObject;
import com.zzsn.event.vo.es.Label; import com.zzsn.event.vo.es.Label;
import lombok.Data; import lombok.Data;
...@@ -205,4 +206,5 @@ public class InfoDataSearchCondition { ...@@ -205,4 +206,5 @@ public class InfoDataSearchCondition {
* 本次任务使用的流程id * 本次任务使用的流程id
*/ */
private String flowId; private String flowId;
private JSONObject specialLabelParams;
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论