1
0
mirror of https://github.com/chatopera/cosin.git synced 2025-08-01 16:38:02 +08:00

Replace setRefresh() with setRefreshPolicy()

This commit is contained in:
dengchao@xgtl 2020-04-16 16:23:22 +08:00
parent f17fa7a838
commit a3e5b1660e
3 changed files with 615 additions and 765 deletions

View File

@ -100,7 +100,7 @@ public class ActivityResource extends Resource {
//回收数据 , 需要传入回收的目标 包括 批次ID任务ID筛选ID活动ID //回收数据 , 需要传入回收的目标 包括 批次ID任务ID筛选ID活动ID
dataList = SearchTools.recoversearch(this.jobDetail.getOrgi(), this.jobDetail.getExectype(), this.jobDetail.getExectarget(), metadataTable, (int) Math.ceil(this.jobDetail.getStartindex() / 50000.0), 50000); dataList = SearchTools.recoversearch(this.jobDetail.getOrgi(), this.jobDetail.getExectype(), this.jobDetail.getExectarget(), metadataTable, (int) Math.ceil(this.jobDetail.getStartindex() / 50000.0), 50000);
} else { } else {
dataList = SearchTools.dissearch(this.jobDetail.getOrgi(), formFilter, formFilterList, metadataTable, (int) Math.ceil(this.jobDetail.getStartindex() / 50000.0), 50000); dataList = SearchTools.dissearch(this.jobDetail.getOrgi(), formFilterList, metadataTable, (int) Math.ceil(this.jobDetail.getStartindex() / 50000.0), 50000);
} }
} }
this.callAgentList = MainContext.getContext().getBean(CallAgentRepository.class).findByActidAndOrgi(this.jobDetail.getId(), this.jobDetail.getOrgi()); this.callAgentList = MainContext.getContext().getBean(CallAgentRepository.class).findByActidAndOrgi(this.jobDetail.getId(), this.jobDetail.getOrgi());

View File

@ -1,462 +1,395 @@
/* /*
* Copyright (C) 2017 优客服-多渠道客服系统 * Copyright (C) 2017 优客服-多渠道客服系统
* Modifications copyright (C) 2018-2019 Chatopera Inc, <https://www.chatopera.com> * Modifications copyright (C) 2018-2019 Chatopera Inc, <https://www.chatopera.com>
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
* You may obtain a copy of the License at * You may obtain a copy of the License at
* *
* http://www.apache.org/licenses/LICENSE-2.0 * http://www.apache.org/licenses/LICENSE-2.0
* *
* Unless required by applicable law or agreed to in writing, software * Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, * distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and * See the License for the specific language governing permissions and
* limitations under the License. * limitations under the License.
*/ */
package com.chatopera.cc.persistence.impl; package com.chatopera.cc.persistence.impl;
import com.chatopera.cc.basic.Constants; import com.chatopera.cc.basic.Constants;
import com.chatopera.cc.basic.MainContext; import com.chatopera.cc.basic.MainContext;
import com.chatopera.cc.model.*; import com.chatopera.cc.model.*;
import com.chatopera.cc.persistence.repository.OrganRepository; import com.chatopera.cc.persistence.repository.OrganRepository;
import com.chatopera.cc.persistence.repository.UKefuCallOutTaskRepository; import com.chatopera.cc.persistence.repository.UKefuCallOutTaskRepository;
import com.chatopera.cc.persistence.repository.UserRepository; import com.chatopera.cc.persistence.repository.UserRepository;
import com.chatopera.cc.util.es.UKDataBean; import com.chatopera.cc.util.es.UKDataBean;
import org.apache.commons.lang3.StringUtils; import lombok.RequiredArgsConstructor;
import org.elasticsearch.action.bulk.BulkRequestBuilder; import org.apache.commons.lang3.StringUtils;
import org.elasticsearch.action.get.GetResponse; import org.elasticsearch.action.get.GetResponse;
import org.elasticsearch.action.index.IndexRequestBuilder; import org.elasticsearch.action.index.IndexRequestBuilder;
import org.elasticsearch.action.search.SearchRequestBuilder; import org.elasticsearch.action.search.SearchRequestBuilder;
import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.action.search.SearchType; import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.search.SearchHit;
import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.aggregations.Aggregation;
import org.elasticsearch.search.aggregations.Aggregation; import org.elasticsearch.search.aggregations.AggregationBuilder;
import org.elasticsearch.search.aggregations.AggregationBuilder; import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.AggregationBuilders; import org.elasticsearch.search.aggregations.bucket.terms.StringTerms;
import org.elasticsearch.search.aggregations.bucket.histogram.InternalDateHistogram; import org.elasticsearch.search.aggregations.bucket.terms.Terms;
import org.elasticsearch.search.aggregations.bucket.terms.StringTerms; import org.elasticsearch.search.sort.FieldSortBuilder;
import org.elasticsearch.search.aggregations.bucket.terms.Terms; import org.elasticsearch.search.sort.SortOrder;
import org.elasticsearch.search.sort.FieldSortBuilder; import org.springframework.data.domain.PageImpl;
import org.elasticsearch.search.sort.SortOrder; import org.springframework.data.domain.Pageable;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Sort.Order;
import org.springframework.data.domain.PageImpl; import org.springframework.lang.NonNull;
import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Repository;
import org.springframework.data.domain.Sort.Order;
import org.springframework.stereotype.Repository; import java.util.ArrayList;
import java.util.HashMap;
import java.util.*; import java.util.List;
import java.util.Map;
@Repository("esdataservice")
public class ESDataExchangeImpl{ @RequiredArgsConstructor
@Repository("esdataservice")
@Autowired public class ESDataExchangeImpl {
private UserRepository userRes ;
@NonNull
@Autowired private final UserRepository userRes;
private UKefuCallOutTaskRepository taskRes ;
@NonNull
@Autowired private final UKefuCallOutTaskRepository taskRes;
private OrganRepository organRes ;
@NonNull
public void saveIObject(UKDataBean dataBean) throws Exception { private final OrganRepository organRes;
if(dataBean.getId() == null) {
dataBean.setId((String) dataBean.getValues().get("id")); public void saveIObject(UKDataBean dataBean) {
} if (dataBean.getId() == null) {
this.saveBulk(dataBean).execute().actionGet() ; dataBean.setId((String) dataBean.getValues().get("id"));
} }
/** this.saveBulk(dataBean).execute().actionGet();
* 实时刷新仅限于 回收到部门和回收到 公共使用其他地方禁用 }
* @param dataBean
* @param refresh /**
* @throws Exception *
*/ */
public void saveIObject(UKDataBean dataBean , boolean refresh) throws Exception { public IndexRequestBuilder saveBulk(UKDataBean dataBean) {
if(dataBean.getId() == null) { IndexRequestBuilder indexRequestBuilder;
dataBean.setId((String) dataBean.getValues().get("id")); if (dataBean.getId() == null) {
} dataBean.setId((String) dataBean.getValues().get("id"));
this.saveBulk(dataBean).setRefresh(refresh).execute().actionGet() ; }
} if (!StringUtils.isBlank(dataBean.getType())) {
/** indexRequestBuilder = MainContext.getTemplet().getClient().prepareIndex(Constants.SYSTEM_INDEX,
* @param dataBean dataBean.getType(), dataBean.getId())
* @return .setSource(processValues(dataBean));
* @throws Exception } else {
*/ indexRequestBuilder = MainContext.getTemplet().getClient().prepareIndex(Constants.SYSTEM_INDEX,
public IndexRequestBuilder saveBulk(UKDataBean dataBean) throws Exception { dataBean.getTable().getTablename(), dataBean.getId())
IndexRequestBuilder indexRequestBuilder ; .setSource(processValues(dataBean));
if(dataBean.getId() == null) { }
dataBean.setId((String) dataBean.getValues().get("id")); return indexRequestBuilder;
} }
if(!StringUtils.isBlank(dataBean.getType())) {
indexRequestBuilder = MainContext.getTemplet().getClient().prepareIndex(Constants.SYSTEM_INDEX, /**
dataBean.getType(), dataBean.getId()) * 处理数据包含 自然语言处理算法计算 智能处理字段
.setSource(processValues(dataBean)); */
}else { private Map<String, Object> processValues(UKDataBean dataBean) {
indexRequestBuilder = MainContext.getTemplet().getClient().prepareIndex(Constants.SYSTEM_INDEX, Map<String, Object> values = new HashMap<>();
dataBean.getTable().getTablename(), dataBean.getId()) if (dataBean.getTable() != null) {
.setSource(processValues(dataBean)); for (TableProperties tp : dataBean.getTable().getTableproperty()) {
} if (dataBean.getValues().get(tp.getFieldname()) != null) {
return indexRequestBuilder ; values.put(tp.getFieldname(), dataBean.getValues().get(tp.getFieldname()));
} } else if (tp.getDatatypename().equals("nlp") && dataBean.getValues() != null) {
/** //智能处理 需要计算过滤HTML内容自动获取关键词摘要实体识别情感分析信息指纹 等功能
* 处理数据包含 自然语言处理算法计算 智能处理字段 values.put(tp.getFieldname(), dataBean.getValues().get(tp.getFieldname()));
* @param dataBean } else {
* @return values.put(tp.getFieldname(), dataBean.getValues().get(tp.getFieldname()));
* @throws Exception }
*/ }
private Map<String , Object> processValues(UKDataBean dataBean) throws Exception{ } else {
Map<String , Object> values = new HashMap<String , Object>() ; values.putAll(dataBean.getValues());
if(dataBean.getTable()!=null) { }
for(TableProperties tp : dataBean.getTable().getTableproperty()){ return values;
if(dataBean.getValues().get(tp.getFieldname())!=null){ }
values.put(tp.getFieldname(), dataBean.getValues().get(tp.getFieldname())) ;
}else if(tp.getDatatypename().equals("nlp") && dataBean.getValues()!=null){ public void deleteById(String type, String id) {
//智能处理 需要计算过滤HTML内容自动获取关键词摘要实体识别情感分析信息指纹 等功能 if (!StringUtils.isBlank(type) && !StringUtils.isBlank(id)) {
values.put(tp.getFieldname(), dataBean.getValues().get(tp.getFieldname())) ; MainContext.getTemplet().getClient()
}else{ .prepareDelete(Constants.SYSTEM_INDEX, type, id).execute().actionGet();
values.put(tp.getFieldname(), dataBean.getValues().get(tp.getFieldname())) ; }
} }
}
}else {
values.putAll(dataBean.getValues()); public UKDataBean getIObjectByPK(UKDataBean dataBean) {
} if (dataBean.getTable() != null) {
return values ; GetResponse getResponse = MainContext.getTemplet().getClient()
} .prepareGet(Constants.SYSTEM_INDEX,
dataBean.getTable().getTablename(), dataBean.getId())
public void deleteIObject(UKDataBean dataBean ) throws Exception { .execute().actionGet();
if(dataBean.getTable()!=null){ dataBean.setValues(getResponse.getSource());
MainContext.getTemplet().getClient().prepareDelete(Constants.SYSTEM_INDEX, dataBean.getTable().getTablename(), dataBean.getId()).setRefresh(true).execute().actionGet(); dataBean.setType(getResponse.getType());
} } else {
} dataBean.setValues(new HashMap<>());
/** }
* 批量删除单次最大删除 10000条
* @param query return processDate(dataBean);
* @param index }
* @param type
* @throws Exception public UKDataBean getIObjectByPK(String type, String id) {
*/ UKDataBean dataBean = new UKDataBean();
public void deleteByCon(QueryBuilder query ,String type) throws Exception { if (!StringUtils.isBlank(type)) {
BulkRequestBuilder bulkRequest = MainContext.getTemplet().getClient().prepareBulk(); GetResponse getResponse = MainContext.getTemplet().getClient()
SearchResponse response = MainContext.getTemplet().getClient().prepareSearch(Constants.SYSTEM_INDEX).setTypes(type) .prepareGet(Constants.SYSTEM_INDEX,
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH) type, id)
.setQuery(query) .execute().actionGet();
.setFrom(0).setSize(10000).setExplain(true).execute().actionGet(); dataBean.setValues(getResponse.getSource());
if(response.getHits().getTotalHits() > 0) { dataBean.setType(getResponse.getType());
for(SearchHit hit : response.getHits()){ } else {
String id = hit.getId(); dataBean.setValues(new HashMap<>());
bulkRequest.add(MainContext.getTemplet().getClient().prepareDelete(Constants.SYSTEM_INDEX, type, id).request()); }
} return dataBean;
bulkRequest.get(); }
}
} /**
*
public void deleteById(String type , String id){ */
if(!StringUtils.isBlank(type) && !StringUtils.isBlank(id)){ public PageImpl<UKDataBean> findPageResult(QueryBuilder query, MetadataTable metadata, Pageable page, boolean loadRef) {
MainContext.getTemplet().getClient() return findAllPageResult(query, metadata, page, loadRef, metadata != null ? metadata.getTablename() : null);
.prepareDelete(Constants.SYSTEM_INDEX, type, id).execute().actionGet(); }
}
} /**
*
*/
public UKDataBean getIObjectByPK(UKDataBean dataBean , String id) { public PageImpl<UKDataBean> findAllPageResult(QueryBuilder query, MetadataTable metadata, Pageable page, boolean loadRef, String types) {
if(dataBean.getTable()!=null){ List<UKDataBean> dataBeanList = new ArrayList<>();
GetResponse getResponse = MainContext.getTemplet().getClient() SearchRequestBuilder searchBuilder = MainContext.getTemplet().getClient().prepareSearch(Constants.SYSTEM_INDEX);
.prepareGet(Constants.SYSTEM_INDEX, if (!StringUtils.isBlank(types)) {
dataBean.getTable().getTablename(), dataBean.getId()) searchBuilder.setTypes(types);
.execute().actionGet(); }
dataBean.setValues(getResponse.getSource());
dataBean.setType(getResponse.getType()); int start = page.getPageSize() * page.getPageNumber();
}else{ searchBuilder.setFrom(start).setSize(page.getPageSize());
dataBean.setValues(new HashMap<String,Object>()); page.getSort();
} for (Order order : page.getSort()) {
searchBuilder.addSort(new FieldSortBuilder(order.getProperty()).unmappedType(order.getProperty().equals("createtime") ? "long" : "string").order(order.isDescending() ? SortOrder.DESC : SortOrder.ASC));
return processDate(dataBean); }
} SearchResponse response = searchBuilder.setQuery(query).execute().actionGet();
List<String> users = new ArrayList<>();
public UKDataBean getIObjectByPK(String type , String id) { List<String> organs = new ArrayList<>();
UKDataBean dataBean = new UKDataBean() ; List<String> taskList = new ArrayList<>();
if(!StringUtils.isBlank(type)){ // List<String> batchList = new ArrayList<>();
GetResponse getResponse = MainContext.getTemplet().getClient() // List<String> activityList = new ArrayList<>();
.prepareGet(Constants.SYSTEM_INDEX, for (SearchHit hit : response.getHits().getHits()) {
type, id) UKDataBean temp = new UKDataBean();
.execute().actionGet(); temp.setType(hit.getType());
dataBean.setValues(getResponse.getSource()); temp.setTable(metadata);
dataBean.setType(getResponse.getType()); temp.setValues(hit.getSourceAsMap());
}else{ temp.setId((String) temp.getValues().get("id"));
dataBean.setValues(new HashMap<String,Object>()); dataBeanList.add(processDate(temp));
}
return dataBean;
} if (loadRef) {
if (!StringUtils.isBlank((String) temp.getValues().get(Constants.CSKEFU_SYSTEM_DIS_AGENT))) {
public void updateIObject(UKDataBean dataBean) throws Exception { users.add((String) temp.getValues().get(Constants.CSKEFU_SYSTEM_DIS_AGENT));
if(dataBean.getId() == null) { }
dataBean.setId((String) dataBean.getValues().get("id")); if (!StringUtils.isBlank((String) temp.getValues().get(Constants.CSKEFU_SYSTEM_ASSUSER))) {
} users.add((String) temp.getValues().get(Constants.CSKEFU_SYSTEM_ASSUSER));
UKDataBean oldDataBean = this.getIObjectByPK(dataBean , dataBean.getId()); }
if (!StringUtils.isBlank((String) temp.getValues().get(Constants.CSKEFU_SYSTEM_DIS_ORGAN))) {
for(TableProperties tp : dataBean.getTable().getTableproperty()){ organs.add((String) temp.getValues().get(Constants.CSKEFU_SYSTEM_DIS_ORGAN));
if(oldDataBean.getValues()!=null&&oldDataBean.getValues().get(tp.getFieldname())!=null){ }
if(dataBean.getValues().get(tp.getFieldname())==null){ if (!StringUtils.isBlank((String) temp.getValues().get("taskid"))) {
dataBean.getValues().put(tp.getFieldname(), oldDataBean.getValues().get(tp.getFieldname())) ; taskList.add((String) temp.getValues().get("taskid"));
} }
} // if (!StringUtils.isBlank((String) temp.getValues().get("batid"))) {
} // batchList.add((String) temp.getValues().get("batid"));
MainContext.getTemplet().getClient() // }
.prepareUpdate(Constants.SYSTEM_INDEX, // if (!StringUtils.isBlank((String) temp.getValues().get("actid"))) {
dataBean.getTable().getTablename(), dataBean.getId()).setDoc(processValues(dataBean)).execute().actionGet(); // activityList.add((String) temp.getValues().get("actid"));
} // }
}
/** }
* if (loadRef) {
* @param dataBean if (users.size() > 0) {
* @param ps List<User> userList = userRes.findAllById(users);
* @param start for (UKDataBean dataBean : dataBeanList) {
* @return String userid = (String) dataBean.getValues().get(Constants.CSKEFU_SYSTEM_DIS_AGENT);
*/ if (!StringUtils.isBlank(userid)) {
public PageImpl<UKDataBean> findPageResult(QueryBuilder query,String index ,MetadataTable metadata, Pageable page , boolean loadRef) { for (User user : userList) {
return findAllPageResult(query, index, metadata, page, loadRef, metadata!=null ? metadata.getTablename() : null); if (user.getId().equals(userid)) {
} dataBean.setUser(user);
break;
/** }
* }
* @param dataBean }
* @param ps String assuer = (String) dataBean.getValues().get(Constants.CSKEFU_SYSTEM_ASSUSER);
* @param start if (!StringUtils.isBlank(assuer)) {
* @return for (User user : userList) {
*/ if (user.getId().equals(assuer)) {
public PageImpl<UKDataBean> findAllPageResult(QueryBuilder query,String index ,MetadataTable metadata, Pageable page , boolean loadRef , String types) { dataBean.setAssuser(user);
List<UKDataBean> dataBeanList = new ArrayList<UKDataBean>() ; break;
SearchRequestBuilder searchBuilder = MainContext.getTemplet().getClient().prepareSearch(Constants.SYSTEM_INDEX); }
if(!StringUtils.isBlank(types)) { }
searchBuilder.setTypes(types) ; }
} }
}
int start = page.getPageSize() * page.getPageNumber(); if (organs.size() > 0) {
searchBuilder.setFrom(start).setSize(page.getPageSize()); List<Organ> organList = organRes.findAllById(organs);
if(page!=null && page.getSort()!=null) { for (UKDataBean dataBean : dataBeanList) {
Iterator<Order> iterator = page.getSort().iterator(); String organid = (String) dataBean.getValues().get(Constants.CSKEFU_SYSTEM_DIS_ORGAN);
while(iterator.hasNext()) { if (!StringUtils.isBlank(organid)) {
Order order = iterator.next() ; for (Organ organ : organList) {
searchBuilder.addSort(new FieldSortBuilder(order.getProperty()).unmappedType(order.getProperty().equals("createtime")? "long" : "string").order( order.isDescending() ? SortOrder.DESC : SortOrder.ASC)) ; if (organ.getId().equals(organid)) {
} dataBean.setOrgan(organ);
} break;
SearchResponse response = searchBuilder.setQuery(query).execute().actionGet(); }
List<String> users = new ArrayList<String>() , organs = new ArrayList<String>() , taskList = new ArrayList<String>(),batchList = new ArrayList<String>(),activityList = new ArrayList<String>(); }
for(SearchHit hit : response.getHits().getHits()){ }
UKDataBean temp = new UKDataBean() ; }
temp.setType(hit.getType()); }
temp.setTable(metadata); if (taskList.size() > 0) {
temp.setValues(hit.getSource()); List<UKefuCallOutTask> ukefuCallOutTaskList = taskRes.findAllById(taskList);
temp.setId((String)temp.getValues().get("id")); for (UKDataBean dataBean : dataBeanList) {
dataBeanList.add(processDate(temp)) ; String taskid = (String) dataBean.getValues().get("taskid");
if (!StringUtils.isBlank(taskid)) {
for (UKefuCallOutTask task : ukefuCallOutTaskList) {
if(loadRef == true) { if (task.getId().equals(taskid)) {
if(!StringUtils.isBlank((String)temp.getValues().get(Constants.CSKEFU_SYSTEM_DIS_AGENT))) { dataBean.setTask(task);
users.add((String)temp.getValues().get(Constants.CSKEFU_SYSTEM_DIS_AGENT)) ; break;
} }
if(!StringUtils.isBlank((String)temp.getValues().get(Constants.CSKEFU_SYSTEM_ASSUSER))) { }
users.add((String)temp.getValues().get(Constants.CSKEFU_SYSTEM_ASSUSER)) ; }
} }
if(!StringUtils.isBlank((String)temp.getValues().get(Constants.CSKEFU_SYSTEM_DIS_ORGAN))) { }
organs.add((String)temp.getValues().get(Constants.CSKEFU_SYSTEM_DIS_ORGAN)) ; }
} return new PageImpl<>(dataBeanList, page, (int) response.getHits().getTotalHits());
if(!StringUtils.isBlank((String)temp.getValues().get("taskid"))) { }
taskList.add((String)temp.getValues().get("taskid")) ;
}
if(!StringUtils.isBlank((String)temp.getValues().get("batid"))) { /**
batchList.add((String)temp.getValues().get("batid")) ; *
} */
if(!StringUtils.isBlank((String)temp.getValues().get("actid"))) { public PageImpl<UKDataBean> findAllPageAggResult(QueryBuilder query, String aggField, Pageable page, boolean loadRef, String types) {
activityList.add((String)temp.getValues().get("actid")) ; List<UKDataBean> dataBeanList = new ArrayList<>();
} SearchRequestBuilder searchBuilder = MainContext.getTemplet().getClient().prepareSearch(Constants.SYSTEM_INDEX);
} if (!StringUtils.isBlank(types)) {
} searchBuilder.setTypes(types);
if(loadRef) { }
if(users.size() > 0) {
List<User> userList = userRes.findAll(users) ; int size = page.getPageSize() * (page.getPageNumber() + 1);
for(UKDataBean dataBean : dataBeanList) { searchBuilder.setFrom(0).setSize(0);
String userid = (String)dataBean.getValues().get(Constants.CSKEFU_SYSTEM_DIS_AGENT) ;
if(!StringUtils.isBlank(userid)) { AggregationBuilder aggregition = AggregationBuilders.terms(aggField).field(aggField).size(size);
for(User user : userList) { aggregition.subAggregation(AggregationBuilders.terms("apstatus").field("apstatus"));
if(user.getId().equals(userid)) { aggregition.subAggregation(AggregationBuilders.terms("callstatus").field("callstatus"));
dataBean.setUser(user);
break ; searchBuilder.addAggregation(aggregition);
}
}
} SearchResponse response = searchBuilder.setQuery(query).execute().actionGet();
String assuer = (String)dataBean.getValues().get(Constants.CSKEFU_SYSTEM_ASSUSER) ; List<String> users = new ArrayList<>();
if(!StringUtils.isBlank(assuer)) { List<String> organs = new ArrayList<>();
for(User user : userList) { List<String> taskList = new ArrayList<>();
if(user.getId().equals(assuer)) { // List<String> batchList = new ArrayList<>();
dataBean.setAssuser(user); // List<String> activityList = new ArrayList<>();
break ;
} if (response.getAggregations().get(aggField) instanceof Terms) {
} Terms agg = response.getAggregations().get(aggField);
} if (agg != null) {
} if (loadRef) {
} if (aggField.equals(Constants.CSKEFU_SYSTEM_DIS_AGENT)) {
if(organs.size() > 0) { users.add(agg.getName());
List<Organ> organList = organRes.findAll(organs) ; }
for(UKDataBean dataBean : dataBeanList) { if (aggField.equals(Constants.CSKEFU_SYSTEM_DIS_ORGAN)) {
String organid = (String)dataBean.getValues().get(Constants.CSKEFU_SYSTEM_DIS_ORGAN) ; organs.add(agg.getName());
if(!StringUtils.isBlank(organid)) { }
for(Organ organ : organList) { if (aggField.equals("taskid")) {
if(organ.getId().equals(organid)) { taskList.add(agg.getName());
dataBean.setOrgan(organ); }
break ; // if (aggField.equals("batid")) {
} // batchList.add(agg.getName());
} // }
} // if (aggField.equals("actid")) {
} // activityList.add(agg.getName());
} // }
if(taskList.size() > 0) { }
List<UKefuCallOutTask> ukefuCallOutTaskList = taskRes.findAll(taskList) ; if (agg.getBuckets() != null && agg.getBuckets().size() > 0) {
for(UKDataBean dataBean : dataBeanList) { for (Terms.Bucket entry : agg.getBuckets()) {
String taskid = (String)dataBean.getValues().get("taskid") ; UKDataBean dataBean = new UKDataBean();
if(!StringUtils.isBlank(taskid)) { dataBean.getValues().put("id", entry.getKeyAsString());
for(UKefuCallOutTask task : ukefuCallOutTaskList) { dataBean.getValues().put(aggField, entry.getKeyAsString());
if(task.getId().equals(taskid)) { dataBean.setId(agg.getName());
dataBean.setTask(task); dataBean.setType(aggField);
break ; dataBean.getValues().put("total", entry.getDocCount());
}
} for (Aggregation temp : entry.getAggregations()) {
} if (temp instanceof StringTerms) {
} StringTerms agg2 = (StringTerms) temp;
} for (Terms.Bucket entry2 : agg2.getBuckets()) {
} dataBean.getValues().put(temp.getName() + "." + entry2.getKeyAsString(), entry2.getDocCount());
return new PageImpl<UKDataBean>(dataBeanList,page , (int)response.getHits().getTotalHits()); }
} }
}
dataBeanList.add(dataBean);
/** }
* }
* @param dataBean }
* @param ps } else {
* @param start response.getAggregations().get(aggField);// InternalDateHistogram agg = response.getAggregations().get(aggField) ;
* @return // long total = response.getHits().getTotalHits() ;
*/ }
public PageImpl<UKDataBean> findAllPageAggResult(QueryBuilder query,String aggField,Pageable page , boolean loadRef , String types) {
List<UKDataBean> dataBeanList = new ArrayList<UKDataBean>() ; if (loadRef) {
SearchRequestBuilder searchBuilder = MainContext.getTemplet().getClient().prepareSearch(Constants.SYSTEM_INDEX); if (users.size() > 0) {
if(!StringUtils.isBlank(types)) { List<User> userList = userRes.findAllById(users);
searchBuilder.setTypes(types) ; for (UKDataBean dataBean : dataBeanList) {
} String userid = (String) dataBean.getValues().get(Constants.CSKEFU_SYSTEM_DIS_AGENT);
if (!StringUtils.isBlank(userid)) {
int size = page.getPageSize() * (page.getPageNumber() + 1); for (User user : userList) {
searchBuilder.setFrom(0).setSize(0); if (user.getId().equals(userid)) {
dataBean.setUser(user);
AggregationBuilder<?> aggregition = AggregationBuilders.terms(aggField).field(aggField).size(size) ; break;
aggregition.subAggregation(AggregationBuilders.terms("apstatus").field("apstatus")) ; }
aggregition.subAggregation(AggregationBuilders.terms("callstatus").field("callstatus")) ; }
}
searchBuilder.addAggregation(aggregition) ; }
}
if (organs.size() > 0) {
SearchResponse response = searchBuilder.setQuery(query).execute().actionGet(); List<Organ> organList = organRes.findAllById(organs);
List<String> users = new ArrayList<String>() , organs = new ArrayList<String>() , taskList = new ArrayList<String>(),batchList = new ArrayList<String>(),activityList = new ArrayList<String>(); for (UKDataBean dataBean : dataBeanList) {
String organid = (String) dataBean.getValues().get(Constants.CSKEFU_SYSTEM_DIS_ORGAN);
if(response.getAggregations().get(aggField) instanceof Terms){ if (!StringUtils.isBlank(organid)) {
Terms agg = response.getAggregations().get(aggField) ; for (Organ organ : organList) {
if(agg!=null){ if (organ.getId().equals(organid)) {
if(loadRef == true) { dataBean.setOrgan(organ);
if(aggField.equals(Constants.CSKEFU_SYSTEM_DIS_AGENT)) { break;
users.add(agg.getName()) ; }
} }
if(aggField.equals(Constants.CSKEFU_SYSTEM_DIS_ORGAN)) { }
organs.add(agg.getName()) ; }
} }
if(aggField.equals("taskid")) { if (taskList.size() > 0) {
taskList.add(agg.getName()) ; List<UKefuCallOutTask> ukefuCallOutTaskList = taskRes.findAllById(taskList);
} for (UKDataBean dataBean : dataBeanList) {
if(aggField.equals("batid")) { String taskid = (String) dataBean.getValues().get("taskid");
batchList.add(agg.getName()) ; if (!StringUtils.isBlank(taskid)) {
} for (UKefuCallOutTask task : ukefuCallOutTaskList) {
if(aggField.equals("actid")) { if (task.getId().equals(taskid)) {
activityList.add(agg.getName()) ; dataBean.setTask(task);
} break;
} }
if(agg.getBuckets()!=null && agg.getBuckets().size()>0){ }
for (Terms.Bucket entry : agg.getBuckets()) { }
UKDataBean dataBean = new UKDataBean(); }
dataBean.getValues().put("id", entry.getKeyAsString()) ; }
dataBean.getValues().put(aggField, entry.getKeyAsString()) ; }
dataBean.setId(agg.getName()); return new PageImpl<>(dataBeanList, page, (int) response.getHits().getTotalHits());
dataBean.setType(aggField); }
dataBean.getValues().put("total", entry.getDocCount()) ;
for (Aggregation temp : entry.getAggregations()) { /**
if(temp instanceof StringTerms) { *
StringTerms agg2 = (StringTerms) temp ; */
for (Terms.Bucket entry2 : agg2.getBuckets()) { public UKDataBean processDate(UKDataBean dataBean) {
dataBean.getValues().put(temp.getName()+"."+entry2.getKeyAsString(), entry2.getDocCount()) ; return dataBean;
} }
} }
}
dataBeanList.add(dataBean) ;
}
}
}
}else if(response.getAggregations().get(aggField) instanceof InternalDateHistogram){
// InternalDateHistogram agg = response.getAggregations().get(aggField) ;
// long total = response.getHits().getTotalHits() ;
}
if(loadRef) {
if(users.size() > 0) {
List<User> userList = userRes.findAll(users) ;
for(UKDataBean dataBean : dataBeanList) {
String userid = (String)dataBean.getValues().get(Constants.CSKEFU_SYSTEM_DIS_AGENT) ;
if(!StringUtils.isBlank(userid)) {
for(User user : userList) {
if(user.getId().equals(userid)) {
dataBean.setUser(user);
break ;
}
}
}
}
}
if(organs.size() > 0) {
List<Organ> organList = organRes.findAll(organs) ;
for(UKDataBean dataBean : dataBeanList) {
String organid = (String)dataBean.getValues().get(Constants.CSKEFU_SYSTEM_DIS_ORGAN) ;
if(!StringUtils.isBlank(organid)) {
for(Organ organ : organList) {
if(organ.getId().equals(organid)) {
dataBean.setOrgan(organ);
break ;
}
}
}
}
}
if(taskList.size() > 0) {
List<UKefuCallOutTask> ukefuCallOutTaskList = taskRes.findAll(taskList) ;
for(UKDataBean dataBean : dataBeanList) {
String taskid = (String)dataBean.getValues().get("taskid") ;
if(!StringUtils.isBlank(taskid)) {
for(UKefuCallOutTask task : ukefuCallOutTaskList) {
if(task.getId().equals(taskid)) {
dataBean.setTask(task);
break ;
}
}
}
}
}
}
return new PageImpl<UKDataBean>(dataBeanList,page , (int)response.getHits().getTotalHits());
}
/**
*
* @param dataBean
*/
public UKDataBean processDate(UKDataBean dataBean) {
return dataBean;
}
}

View File

@ -18,7 +18,6 @@ package com.chatopera.cc.util.es;
import com.chatopera.cc.basic.Constants; import com.chatopera.cc.basic.Constants;
import com.chatopera.cc.basic.MainContext; import com.chatopera.cc.basic.MainContext;
import com.chatopera.cc.model.FormFilter;
import com.chatopera.cc.model.FormFilterItem; import com.chatopera.cc.model.FormFilterItem;
import com.chatopera.cc.model.MetadataTable; import com.chatopera.cc.model.MetadataTable;
import com.chatopera.cc.persistence.impl.ESDataExchangeImpl; import com.chatopera.cc.persistence.impl.ESDataExchangeImpl;
@ -38,315 +37,233 @@ import static org.elasticsearch.index.query.QueryBuilders.termQuery;
public class SearchTools { public class SearchTools {
public static PageImpl<UKDataBean> search(String orgi , FormFilter formFilter , List<FormFilterItem> itemList , MetadataTable metadataTable , boolean loadRef , int p, int ps){ public static PageImpl<UKDataBean> search(String orgi, List<FormFilterItem> itemList, MetadataTable metadataTable, boolean loadRef, int p, int ps) {
BoolQueryBuilder queryBuilder = new BoolQueryBuilder(); BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
queryBuilder.must(termQuery("orgi", orgi)) ; queryBuilder.must(termQuery("orgi", orgi));
BoolQueryBuilder orBuilder = new BoolQueryBuilder(); BoolQueryBuilder orBuilder = new BoolQueryBuilder();
int orNums = 0 ; int orNums = 0;
for(FormFilterItem formFilterItem : itemList) { for (FormFilterItem formFilterItem : itemList) {
QueryBuilder tempQueryBuilder = null ; QueryBuilder tempQueryBuilder = null;
if(formFilterItem.getField().equals("q")) { if (formFilterItem.getField().equals("q")) {
tempQueryBuilder = new QueryStringQueryBuilder(formFilterItem.getValue()).defaultOperator(Operator.AND) ; tempQueryBuilder = new QueryStringQueryBuilder(formFilterItem.getValue()).defaultOperator(Operator.AND);
}else { } else {
switch(formFilterItem.getCond()) { switch (formFilterItem.getCond()) {
case "01": case "01":
tempQueryBuilder = rangeQuery(formFilterItem.getField()).from(formFilterItem.getValue()).includeLower(false); tempQueryBuilder = rangeQuery(formFilterItem.getField()).from(formFilterItem.getValue()).includeLower(false);
break; break;
case "02": case "02":
tempQueryBuilder = rangeQuery(formFilterItem.getField()).from(formFilterItem.getValue()).includeLower(true); tempQueryBuilder = rangeQuery(formFilterItem.getField()).from(formFilterItem.getValue()).includeLower(true);
break; break;
case "03": case "03":
tempQueryBuilder = rangeQuery(formFilterItem.getField()).to(formFilterItem.getValue()).includeUpper(false); tempQueryBuilder = rangeQuery(formFilterItem.getField()).to(formFilterItem.getValue()).includeUpper(false);
break; break;
case "04": case "04":
tempQueryBuilder = rangeQuery(formFilterItem.getField()).to(formFilterItem.getValue()).includeUpper(true); tempQueryBuilder = rangeQuery(formFilterItem.getField()).to(formFilterItem.getValue()).includeUpper(true);
break; break;
case "05": case "05":
tempQueryBuilder = termQuery(formFilterItem.getField(), formFilterItem.getValue()); tempQueryBuilder = termQuery(formFilterItem.getField(), formFilterItem.getValue());
break; break;
case "06": case "06":
tempQueryBuilder = termQuery(formFilterItem.getField(), formFilterItem.getValue()); tempQueryBuilder = termQuery(formFilterItem.getField(), formFilterItem.getValue());
break; break;
case "07": case "07":
tempQueryBuilder = new QueryStringQueryBuilder(formFilterItem.getValue()).field(formFilterItem.getField()).defaultOperator(Operator.AND); tempQueryBuilder = new QueryStringQueryBuilder(formFilterItem.getValue()).field(formFilterItem.getField()).defaultOperator(Operator.AND);
break; break;
default: default:
break; break;
} }
} }
if("AND".equalsIgnoreCase(formFilterItem.getComp())) { if ("AND".equalsIgnoreCase(formFilterItem.getComp())) {
if("06".equals(formFilterItem.getCond())) { if ("06".equals(formFilterItem.getCond())) {
queryBuilder.mustNot(tempQueryBuilder) ; queryBuilder.mustNot(tempQueryBuilder);
}else { } else {
queryBuilder.must(tempQueryBuilder) ; queryBuilder.must(tempQueryBuilder);
} }
}else { } else {
orNums ++ ; orNums++;
if("06".equals(formFilterItem.getCond())) { if ("06".equals(formFilterItem.getCond())) {
orBuilder.mustNot(tempQueryBuilder) ; orBuilder.mustNot(tempQueryBuilder);
}else { } else {
orBuilder.should(tempQueryBuilder) ; orBuilder.should(tempQueryBuilder);
} }
} }
} }
if(orNums > 0) { if (orNums > 0) {
queryBuilder.must(orBuilder) ; queryBuilder.must(orBuilder);
} }
return search(queryBuilder, metadataTable, loadRef, p, ps); return search(queryBuilder, metadataTable, loadRef, p, ps);
}
public static PageImpl<UKDataBean> dissearch(String orgi , FormFilter formFilter , List<FormFilterItem> itemList , MetadataTable metadataTable , int p, int ps){
BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
queryBuilder.must(termQuery("orgi", orgi)) ;
queryBuilder.must(termQuery("status", MainContext.NamesDisStatusType.NOT.toString())) ;
queryBuilder.must(termQuery("validresult", "valid")) ;
BoolQueryBuilder orBuilder = new BoolQueryBuilder();
int orNums = 0 ;
for(FormFilterItem formFilterItem : itemList) {
QueryBuilder tempQueryBuilder = null ;
if(formFilterItem.getField().equals("q")) {
tempQueryBuilder = new QueryStringQueryBuilder(formFilterItem.getValue()).defaultOperator(Operator.AND) ;
}else {
switch(formFilterItem.getCond()) {
case "01":
tempQueryBuilder = rangeQuery(formFilterItem.getField()).from(formFilterItem.getValue()).includeLower(false);
break;
case "02":
tempQueryBuilder = rangeQuery(formFilterItem.getField()).from(formFilterItem.getValue()).includeLower(true);
break;
case "03":
tempQueryBuilder = rangeQuery(formFilterItem.getField()).to(formFilterItem.getValue()).includeUpper(false);
break;
case "04":
tempQueryBuilder = rangeQuery(formFilterItem.getField()).to(formFilterItem.getValue()).includeUpper(true);
break;
case "05":
tempQueryBuilder = termQuery(formFilterItem.getField(), formFilterItem.getValue());
break;
case "06":
tempQueryBuilder = termQuery(formFilterItem.getField(), formFilterItem.getValue());
break;
case "07":
tempQueryBuilder = new QueryStringQueryBuilder(formFilterItem.getValue()).field(formFilterItem.getField()).defaultOperator(Operator.AND);
break;
default:
break;
}
}
if("AND".equalsIgnoreCase(formFilterItem.getComp())) {
if("06".equals(formFilterItem.getCond())) {
queryBuilder.mustNot(tempQueryBuilder) ;
}else {
queryBuilder.must(tempQueryBuilder) ;
}
}else {
orNums ++ ;
if("06".equals(formFilterItem.getCond())) {
orBuilder.mustNot(tempQueryBuilder) ;
}else {
orBuilder.should(tempQueryBuilder) ;
}
}
}
if(orNums > 0) {
queryBuilder.must(orBuilder) ;
}
return search(queryBuilder, metadataTable, false, p, ps);
}
public static PageImpl<UKDataBean> recoversearch(String orgi , String cmd ,String id, MetadataTable metadataTable , int p, int ps){
BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
queryBuilder.must(termQuery("orgi", orgi)) ;
queryBuilder.mustNot(termQuery("status", MainContext.NamesDisStatusType.NOT.toString())) ;
queryBuilder.must(termQuery("validresult", "valid")) ;
switch(cmd) {
case "actid" : queryBuilder.must(termQuery("actid", id)) ; break ;
case "batid" : queryBuilder.must(termQuery("batid", id)) ; break ;
case "taskid" : queryBuilder.must(termQuery("taskid", id)) ; break ;
case "filterid" : queryBuilder.must(termQuery("filterid", id)) ; break ;
case "agent" : queryBuilder.must(termQuery(Constants.CSKEFU_SYSTEM_DIS_AGENT, id)) ; break ;
case "skill" : queryBuilder.must(termQuery(Constants.CSKEFU_SYSTEM_DIS_ORGAN, id)) ; break ;
case "taskskill" : queryBuilder.must(termQuery("taskid", id)).must(termQuery("status", MainContext.NamesDisStatusType.DISAGENT.toString())) ; break ;
case "filterskill" : queryBuilder.must(termQuery("filterid", id)).must(termQuery("status", MainContext.NamesDisStatusType.DISAGENT.toString())) ; break ;
default : queryBuilder.must(termQuery("actid", "NOT_EXIST_KEY")) ; //必须传入一个进来;
}
return search(queryBuilder, metadataTable, false, p, ps);
}
/**
* @param orgi
* @param agent
* @param p
* @param ps
* @return
*/
public static PageImpl<UKDataBean> agentsearch(String orgi ,boolean excludeCalled , String agent , int p, int ps){
BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
queryBuilder.must(termQuery("orgi", orgi)) ;
if(excludeCalled){
queryBuilder.must(termQuery("callstatus", MainContext.NameStatusType.NOTCALL.toString())) ;
}
queryBuilder.must(termQuery("validresult", "valid")) ;
queryBuilder.must(termQuery(Constants.CSKEFU_SYSTEM_DIS_AGENT, agent)) ;
queryBuilder.must(termQuery("status", MainContext.NamesDisStatusType.DISAGENT.toString())) ;
return search(queryBuilder, p, ps);
}
/**
*
* @param orgi
* @param agent
* @param p
* @param ps
* @return
*/
public static PageImpl<UKDataBean> agentapsearch(String orgi , String agent , int p, int ps){
BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
queryBuilder.must(termQuery("orgi", orgi)) ;
queryBuilder.must(termQuery("validresult", "valid")) ;
queryBuilder.must(termQuery(Constants.CSKEFU_SYSTEM_DIS_AGENT, agent)) ;
queryBuilder.must(termQuery("apstatus", true)) ; //预约状态
queryBuilder.must(rangeQuery("aptime").to(System.currentTimeMillis())) ; //预约状态
return search(queryBuilder, p, ps);
}
/**
*
* @param orgi
* @param agent
* @param p
* @param ps
* @return
*/
public static PageImpl<UKDataBean> aisearch(String orgi , int p, int ps){
BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
queryBuilder.must(termQuery("orgi", orgi)) ;
queryBuilder.must(termQuery("callstatus", MainContext.NameStatusType.NOTCALL.toString())) ;
queryBuilder.must(termQuery("validresult", "valid")) ;
queryBuilder.must(termQuery("status", MainContext.NamesDisStatusType.DISAI.toString())) ;
return search(queryBuilder, p, ps);
}
/**
*
* @param orgi
* @param agent
* @param p
* @param ps
* @return
*/
public static PageImpl<UKDataBean> namesearch(String orgi , String phonenum){
BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
queryBuilder.must(termQuery("orgi", orgi)) ;
queryBuilder.must(termQuery("validresult", "valid")) ;
queryBuilder.must(termQuery("status", MainContext.NamesDisStatusType.DISAGENT.toString())) ;
StringBuffer strb = new StringBuffer();
if(!StringUtils.isBlank(phonenum)) {
strb.append(phonenum) ;
if(phonenum.startsWith("0")) {
strb.append(" ").append(phonenum.substring(1)) ;
}
}else {
strb.append(Constants.CSKEFU_SYSTEM_NO_DAT) ;
}
queryBuilder.must(new QueryStringQueryBuilder(strb.toString()).defaultOperator(Operator.OR) );
return search(queryBuilder, 0, 1);
}
/**
*
* @param orgi
* @param agent
* @param p
* @param ps
* @return
*/
public static PageImpl<UKDataBean> search(BoolQueryBuilder queryBuilder, int p, int ps){
return search(queryBuilder, null, true, p, ps);
}
/**
*
* @param queryBuilder
* @param metadataTable
* @param loadRef
* @param p
* @param ps
* @return
*/
private static PageImpl<UKDataBean> search(BoolQueryBuilder queryBuilder , MetadataTable metadataTable , boolean loadRef , int p, int ps){
ESDataExchangeImpl esDataExchange = MainContext.getContext().getBean(ESDataExchangeImpl.class);
return esDataExchange.findPageResult(queryBuilder, Constants.SYSTEM_INDEX, metadataTable, PageRequest.of(p, ps, Sort.Direction.ASC, "createtime"), loadRef);
} }
/** public static PageImpl<UKDataBean> dissearch(String orgi, List<FormFilterItem> itemList, MetadataTable metadataTable, int p, int ps) {
* BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
* @param queryBuilder queryBuilder.must(termQuery("orgi", orgi));
* @param metadataTable queryBuilder.must(termQuery("status", MainContext.NamesDisStatusType.NOT.toString()));
* @param loadRef queryBuilder.must(termQuery("validresult", "valid"));
* @param p
* @param ps BoolQueryBuilder orBuilder = new BoolQueryBuilder();
* @return int orNums = 0;
*/ for (FormFilterItem formFilterItem : itemList) {
public static PageImpl<UKDataBean> aggregation(BoolQueryBuilder queryBuilder , String aggField, boolean loadRef , int p, int ps) { QueryBuilder tempQueryBuilder = null;
if (formFilterItem.getField().equals("q")) {
tempQueryBuilder = new QueryStringQueryBuilder(formFilterItem.getValue()).defaultOperator(Operator.AND);
} else {
switch (formFilterItem.getCond()) {
case "01":
tempQueryBuilder = rangeQuery(formFilterItem.getField()).from(formFilterItem.getValue()).includeLower(false);
break;
case "02":
tempQueryBuilder = rangeQuery(formFilterItem.getField()).from(formFilterItem.getValue()).includeLower(true);
break;
case "03":
tempQueryBuilder = rangeQuery(formFilterItem.getField()).to(formFilterItem.getValue()).includeUpper(false);
break;
case "04":
tempQueryBuilder = rangeQuery(formFilterItem.getField()).to(formFilterItem.getValue()).includeUpper(true);
break;
case "05":
tempQueryBuilder = termQuery(formFilterItem.getField(), formFilterItem.getValue());
break;
case "06":
tempQueryBuilder = termQuery(formFilterItem.getField(), formFilterItem.getValue());
break;
case "07":
tempQueryBuilder = new QueryStringQueryBuilder(formFilterItem.getValue()).field(formFilterItem.getField()).defaultOperator(Operator.AND);
break;
default:
break;
}
}
if ("AND".equalsIgnoreCase(formFilterItem.getComp())) {
if ("06".equals(formFilterItem.getCond())) {
queryBuilder.mustNot(tempQueryBuilder);
} else {
queryBuilder.must(tempQueryBuilder);
}
} else {
orNums++;
if ("06".equals(formFilterItem.getCond())) {
orBuilder.mustNot(tempQueryBuilder);
} else {
orBuilder.should(tempQueryBuilder);
}
}
}
if (orNums > 0) {
queryBuilder.must(orBuilder);
}
return search(queryBuilder, metadataTable, false, p, ps);
}
public static PageImpl<UKDataBean> recoversearch(String orgi, String cmd, String id, MetadataTable metadataTable, int p, int ps) {
BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
queryBuilder.must(termQuery("orgi", orgi));
queryBuilder.mustNot(termQuery("status", MainContext.NamesDisStatusType.NOT.toString()));
queryBuilder.must(termQuery("validresult", "valid"));
switch (cmd) {
case "actid":
queryBuilder.must(termQuery("actid", id));
break;
case "batid":
queryBuilder.must(termQuery("batid", id));
break;
case "taskid":
queryBuilder.must(termQuery("taskid", id));
break;
case "filterid":
queryBuilder.must(termQuery("filterid", id));
break;
case "agent":
queryBuilder.must(termQuery(Constants.CSKEFU_SYSTEM_DIS_AGENT, id));
break;
case "skill":
queryBuilder.must(termQuery(Constants.CSKEFU_SYSTEM_DIS_ORGAN, id));
break;
case "taskskill":
queryBuilder.must(termQuery("taskid", id)).must(termQuery("status", MainContext.NamesDisStatusType.DISAGENT.toString()));
break;
case "filterskill":
queryBuilder.must(termQuery("filterid", id)).must(termQuery("status", MainContext.NamesDisStatusType.DISAGENT.toString()));
break;
default:
queryBuilder.must(termQuery("actid", "NOT_EXIST_KEY")); //必须传入一个进来;
}
return search(queryBuilder, metadataTable, false, p, ps);
}
/**
*
*/
public static PageImpl<UKDataBean> namesearch(String orgi, String phonenum) {
BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
queryBuilder.must(termQuery("orgi", orgi));
queryBuilder.must(termQuery("validresult", "valid"));
queryBuilder.must(termQuery("status", MainContext.NamesDisStatusType.DISAGENT.toString()));
StringBuilder strb = new StringBuilder();
if (!StringUtils.isBlank(phonenum)) {
strb.append(phonenum);
if (phonenum.startsWith("0")) {
strb.append(" ").append(phonenum.substring(1));
}
} else {
strb.append(Constants.CSKEFU_SYSTEM_NO_DAT);
}
queryBuilder.must(new QueryStringQueryBuilder(strb.toString()).defaultOperator(Operator.OR));
return search(queryBuilder, 0, 1);
}
/**
*
*/
public static PageImpl<UKDataBean> search(BoolQueryBuilder queryBuilder, int p, int ps) {
return search(queryBuilder, null, true, p, ps);
}
/**
*
*/
private static PageImpl<UKDataBean> search(BoolQueryBuilder queryBuilder, MetadataTable metadataTable, boolean loadRef, int p, int ps) {
ESDataExchangeImpl esDataExchange = MainContext.getContext().getBean(ESDataExchangeImpl.class);
return esDataExchange.findPageResult(queryBuilder, metadataTable, PageRequest.of(p, ps, Sort.Direction.ASC, "createtime"), loadRef);
}
/**
*
*/
public static PageImpl<UKDataBean> aggregation(BoolQueryBuilder queryBuilder, String aggField, boolean loadRef, int p, int ps) {
ESDataExchangeImpl esDataExchange = MainContext.getContext().getBean(ESDataExchangeImpl.class); ESDataExchangeImpl esDataExchange = MainContext.getContext().getBean(ESDataExchangeImpl.class);
return esDataExchange.findAllPageAggResult(queryBuilder, aggField, PageRequest.of(p, ps, Sort.Direction.ASC, "createtime"), loadRef, null); return esDataExchange.findAllPageAggResult(queryBuilder, aggField, PageRequest.of(p, ps, Sort.Direction.ASC, "createtime"), loadRef, null);
} }
/** /**
* *
* @param queryBuilder */
* @param metadataTable public static UKDataBean get(UKDataBean dataBean) {
* @param loadRef ESDataExchangeImpl esDataExchange = MainContext.getContext().getBean(ESDataExchangeImpl.class);
* @param p return esDataExchange.getIObjectByPK(dataBean);
* @param ps }
* @return
*/
public static UKDataBean get(UKDataBean dataBean){
ESDataExchangeImpl esDataExchange = MainContext.getContext().getBean(ESDataExchangeImpl.class);
return esDataExchange.getIObjectByPK(dataBean, dataBean.getId());
}
/** /**
* *
* @param queryBuilder */
* @param metadataTable public static UKDataBean get(String type, String id) {
* @param loadRef ESDataExchangeImpl esDataExchange = MainContext.getContext().getBean(ESDataExchangeImpl.class);
* @param p return esDataExchange.getIObjectByPK(type, id);
* @param ps }
* @return
*/
public static UKDataBean get(String type, String id){
ESDataExchangeImpl esDataExchange = MainContext.getContext().getBean(ESDataExchangeImpl.class);
return esDataExchange.getIObjectByPK(type, id);
}
/** /**
* *
* @param queryBuilder */
* @param metadataTable public static void save(UKDataBean dataBean) {
* @param loadRef ESDataExchangeImpl esDataExchange = MainContext.getContext().getBean(ESDataExchangeImpl.class);
* @param p try {
* @param ps esDataExchange.saveIObject(dataBean);
* @return } catch (Exception e) {
*/ e.printStackTrace();
public static void save(UKDataBean dataBean){ }
ESDataExchangeImpl esDataExchange = MainContext.getContext().getBean(ESDataExchangeImpl.class); }
try {
esDataExchange.saveIObject(dataBean);
} catch (Exception e) {
e.printStackTrace();
}
}
} }