mirror of
https://github.com/chatopera/cosin.git
synced 2025-08-05 20:41:34 +08:00
Replace setRefresh() with setRefreshPolicy()
This commit is contained in:
parent
f17fa7a838
commit
a3e5b1660e
@ -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());
|
||||||
|
@ -23,67 +23,56 @@ 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 lombok.RequiredArgsConstructor;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.elasticsearch.action.bulk.BulkRequestBuilder;
|
|
||||||
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.histogram.InternalDateHistogram;
|
|
||||||
import org.elasticsearch.search.aggregations.bucket.terms.StringTerms;
|
import org.elasticsearch.search.aggregations.bucket.terms.StringTerms;
|
||||||
import org.elasticsearch.search.aggregations.bucket.terms.Terms;
|
import org.elasticsearch.search.aggregations.bucket.terms.Terms;
|
||||||
import org.elasticsearch.search.sort.FieldSortBuilder;
|
import org.elasticsearch.search.sort.FieldSortBuilder;
|
||||||
import org.elasticsearch.search.sort.SortOrder;
|
import org.elasticsearch.search.sort.SortOrder;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.data.domain.PageImpl;
|
import org.springframework.data.domain.PageImpl;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import org.springframework.data.domain.Sort.Order;
|
import org.springframework.data.domain.Sort.Order;
|
||||||
|
import org.springframework.lang.NonNull;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@RequiredArgsConstructor
|
||||||
@Repository("esdataservice")
|
@Repository("esdataservice")
|
||||||
public class ESDataExchangeImpl {
|
public class ESDataExchangeImpl {
|
||||||
|
|
||||||
@Autowired
|
@NonNull
|
||||||
private UserRepository userRes ;
|
private final UserRepository userRes;
|
||||||
|
|
||||||
@Autowired
|
@NonNull
|
||||||
private UKefuCallOutTaskRepository taskRes ;
|
private final UKefuCallOutTaskRepository taskRes;
|
||||||
|
|
||||||
@Autowired
|
@NonNull
|
||||||
private OrganRepository organRes ;
|
private final OrganRepository organRes;
|
||||||
|
|
||||||
public void saveIObject(UKDataBean dataBean) throws Exception {
|
public void saveIObject(UKDataBean dataBean) {
|
||||||
if (dataBean.getId() == null) {
|
if (dataBean.getId() == null) {
|
||||||
dataBean.setId((String) dataBean.getValues().get("id"));
|
dataBean.setId((String) dataBean.getValues().get("id"));
|
||||||
}
|
}
|
||||||
this.saveBulk(dataBean).execute().actionGet();
|
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) {
|
|
||||||
dataBean.setId((String) dataBean.getValues().get("id"));
|
|
||||||
}
|
|
||||||
this.saveBulk(dataBean).setRefresh(refresh).execute().actionGet() ;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* @param dataBean
|
|
||||||
* @return
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
public IndexRequestBuilder saveBulk(UKDataBean dataBean) throws Exception {
|
|
||||||
IndexRequestBuilder indexRequestBuilder;
|
IndexRequestBuilder indexRequestBuilder;
|
||||||
if (dataBean.getId() == null) {
|
if (dataBean.getId() == null) {
|
||||||
dataBean.setId((String) dataBean.getValues().get("id"));
|
dataBean.setId((String) dataBean.getValues().get("id"));
|
||||||
@ -99,14 +88,12 @@ public class ESDataExchangeImpl{
|
|||||||
}
|
}
|
||||||
return indexRequestBuilder;
|
return indexRequestBuilder;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理数据,包含 自然语言处理算法计算 智能处理字段
|
* 处理数据,包含 自然语言处理算法计算 智能处理字段
|
||||||
* @param dataBean
|
|
||||||
* @return
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
*/
|
||||||
private Map<String , Object> processValues(UKDataBean dataBean) throws Exception{
|
private Map<String, Object> processValues(UKDataBean dataBean) {
|
||||||
Map<String , Object> values = new HashMap<String , Object>() ;
|
Map<String, Object> values = new HashMap<>();
|
||||||
if (dataBean.getTable() != null) {
|
if (dataBean.getTable() != null) {
|
||||||
for (TableProperties tp : dataBean.getTable().getTableproperty()) {
|
for (TableProperties tp : dataBean.getTable().getTableproperty()) {
|
||||||
if (dataBean.getValues().get(tp.getFieldname()) != null) {
|
if (dataBean.getValues().get(tp.getFieldname()) != null) {
|
||||||
@ -124,33 +111,6 @@ public class ESDataExchangeImpl{
|
|||||||
return values;
|
return values;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteIObject(UKDataBean dataBean ) throws Exception {
|
|
||||||
if(dataBean.getTable()!=null){
|
|
||||||
MainContext.getTemplet().getClient().prepareDelete(Constants.SYSTEM_INDEX, dataBean.getTable().getTablename(), dataBean.getId()).setRefresh(true).execute().actionGet();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
* 批量删除,单次最大删除 10000条
|
|
||||||
* @param query
|
|
||||||
* @param index
|
|
||||||
* @param type
|
|
||||||
* @throws Exception
|
|
||||||
*/
|
|
||||||
public void deleteByCon(QueryBuilder query ,String type) throws Exception {
|
|
||||||
BulkRequestBuilder bulkRequest = MainContext.getTemplet().getClient().prepareBulk();
|
|
||||||
SearchResponse response = MainContext.getTemplet().getClient().prepareSearch(Constants.SYSTEM_INDEX).setTypes(type)
|
|
||||||
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
|
|
||||||
.setQuery(query)
|
|
||||||
.setFrom(0).setSize(10000).setExplain(true).execute().actionGet();
|
|
||||||
if(response.getHits().getTotalHits() > 0) {
|
|
||||||
for(SearchHit hit : response.getHits()){
|
|
||||||
String id = hit.getId();
|
|
||||||
bulkRequest.add(MainContext.getTemplet().getClient().prepareDelete(Constants.SYSTEM_INDEX, type, id).request());
|
|
||||||
}
|
|
||||||
bulkRequest.get();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void deleteById(String type, String id) {
|
public void deleteById(String type, String id) {
|
||||||
if (!StringUtils.isBlank(type) && !StringUtils.isBlank(id)) {
|
if (!StringUtils.isBlank(type) && !StringUtils.isBlank(id)) {
|
||||||
MainContext.getTemplet().getClient()
|
MainContext.getTemplet().getClient()
|
||||||
@ -159,7 +119,7 @@ public class ESDataExchangeImpl{
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public UKDataBean getIObjectByPK(UKDataBean dataBean , String id) {
|
public UKDataBean getIObjectByPK(UKDataBean dataBean) {
|
||||||
if (dataBean.getTable() != null) {
|
if (dataBean.getTable() != null) {
|
||||||
GetResponse getResponse = MainContext.getTemplet().getClient()
|
GetResponse getResponse = MainContext.getTemplet().getClient()
|
||||||
.prepareGet(Constants.SYSTEM_INDEX,
|
.prepareGet(Constants.SYSTEM_INDEX,
|
||||||
@ -168,7 +128,7 @@ public class ESDataExchangeImpl{
|
|||||||
dataBean.setValues(getResponse.getSource());
|
dataBean.setValues(getResponse.getSource());
|
||||||
dataBean.setType(getResponse.getType());
|
dataBean.setType(getResponse.getType());
|
||||||
} else {
|
} else {
|
||||||
dataBean.setValues(new HashMap<String,Object>());
|
dataBean.setValues(new HashMap<>());
|
||||||
}
|
}
|
||||||
|
|
||||||
return processDate(dataBean);
|
return processDate(dataBean);
|
||||||
@ -184,49 +144,23 @@ public class ESDataExchangeImpl{
|
|||||||
dataBean.setValues(getResponse.getSource());
|
dataBean.setValues(getResponse.getSource());
|
||||||
dataBean.setType(getResponse.getType());
|
dataBean.setType(getResponse.getType());
|
||||||
} else {
|
} else {
|
||||||
dataBean.setValues(new HashMap<String,Object>());
|
dataBean.setValues(new HashMap<>());
|
||||||
}
|
}
|
||||||
return dataBean;
|
return dataBean;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void updateIObject(UKDataBean dataBean) throws Exception {
|
/**
|
||||||
if(dataBean.getId() == null) {
|
*
|
||||||
dataBean.setId((String) dataBean.getValues().get("id"));
|
*/
|
||||||
}
|
public PageImpl<UKDataBean> findPageResult(QueryBuilder query, MetadataTable metadata, Pageable page, boolean loadRef) {
|
||||||
UKDataBean oldDataBean = this.getIObjectByPK(dataBean , dataBean.getId());
|
return findAllPageResult(query, metadata, page, loadRef, metadata != null ? metadata.getTablename() : null);
|
||||||
|
|
||||||
for(TableProperties tp : dataBean.getTable().getTableproperty()){
|
|
||||||
if(oldDataBean.getValues()!=null&&oldDataBean.getValues().get(tp.getFieldname())!=null){
|
|
||||||
if(dataBean.getValues().get(tp.getFieldname())==null){
|
|
||||||
dataBean.getValues().put(tp.getFieldname(), oldDataBean.getValues().get(tp.getFieldname())) ;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
MainContext.getTemplet().getClient()
|
|
||||||
.prepareUpdate(Constants.SYSTEM_INDEX,
|
|
||||||
dataBean.getTable().getTablename(), dataBean.getId()).setDoc(processValues(dataBean)).execute().actionGet();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param dataBean
|
|
||||||
* @param ps
|
|
||||||
* @param start
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
public PageImpl<UKDataBean> findPageResult(QueryBuilder query,String index ,MetadataTable metadata, Pageable page , boolean loadRef) {
|
public PageImpl<UKDataBean> findAllPageResult(QueryBuilder query, MetadataTable metadata, Pageable page, boolean loadRef, String types) {
|
||||||
return findAllPageResult(query, index, metadata, page, loadRef, metadata!=null ? metadata.getTablename() : null);
|
List<UKDataBean> dataBeanList = new ArrayList<>();
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
*
|
|
||||||
* @param dataBean
|
|
||||||
* @param ps
|
|
||||||
* @param start
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public PageImpl<UKDataBean> findAllPageResult(QueryBuilder query,String index ,MetadataTable metadata, Pageable page , boolean loadRef , String types) {
|
|
||||||
List<UKDataBean> dataBeanList = new ArrayList<UKDataBean>() ;
|
|
||||||
SearchRequestBuilder searchBuilder = MainContext.getTemplet().getClient().prepareSearch(Constants.SYSTEM_INDEX);
|
SearchRequestBuilder searchBuilder = MainContext.getTemplet().getClient().prepareSearch(Constants.SYSTEM_INDEX);
|
||||||
if (!StringUtils.isBlank(types)) {
|
if (!StringUtils.isBlank(types)) {
|
||||||
searchBuilder.setTypes(types);
|
searchBuilder.setTypes(types);
|
||||||
@ -234,25 +168,26 @@ public class ESDataExchangeImpl{
|
|||||||
|
|
||||||
int start = page.getPageSize() * page.getPageNumber();
|
int start = page.getPageSize() * page.getPageNumber();
|
||||||
searchBuilder.setFrom(start).setSize(page.getPageSize());
|
searchBuilder.setFrom(start).setSize(page.getPageSize());
|
||||||
if(page!=null && page.getSort()!=null) {
|
page.getSort();
|
||||||
Iterator<Order> iterator = page.getSort().iterator();
|
for (Order order : page.getSort()) {
|
||||||
while(iterator.hasNext()) {
|
|
||||||
Order order = iterator.next() ;
|
|
||||||
searchBuilder.addSort(new FieldSortBuilder(order.getProperty()).unmappedType(order.getProperty().equals("createtime") ? "long" : "string").order(order.isDescending() ? SortOrder.DESC : SortOrder.ASC));
|
searchBuilder.addSort(new FieldSortBuilder(order.getProperty()).unmappedType(order.getProperty().equals("createtime") ? "long" : "string").order(order.isDescending() ? SortOrder.DESC : SortOrder.ASC));
|
||||||
}
|
}
|
||||||
}
|
|
||||||
SearchResponse response = searchBuilder.setQuery(query).execute().actionGet();
|
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>();
|
List<String> users = new ArrayList<>();
|
||||||
|
List<String> organs = new ArrayList<>();
|
||||||
|
List<String> taskList = new ArrayList<>();
|
||||||
|
// List<String> batchList = new ArrayList<>();
|
||||||
|
// List<String> activityList = new ArrayList<>();
|
||||||
for (SearchHit hit : response.getHits().getHits()) {
|
for (SearchHit hit : response.getHits().getHits()) {
|
||||||
UKDataBean temp = new UKDataBean();
|
UKDataBean temp = new UKDataBean();
|
||||||
temp.setType(hit.getType());
|
temp.setType(hit.getType());
|
||||||
temp.setTable(metadata);
|
temp.setTable(metadata);
|
||||||
temp.setValues(hit.getSource());
|
temp.setValues(hit.getSourceAsMap());
|
||||||
temp.setId((String) temp.getValues().get("id"));
|
temp.setId((String) temp.getValues().get("id"));
|
||||||
dataBeanList.add(processDate(temp));
|
dataBeanList.add(processDate(temp));
|
||||||
|
|
||||||
|
|
||||||
if(loadRef == true) {
|
if (loadRef) {
|
||||||
if (!StringUtils.isBlank((String) temp.getValues().get(Constants.CSKEFU_SYSTEM_DIS_AGENT))) {
|
if (!StringUtils.isBlank((String) temp.getValues().get(Constants.CSKEFU_SYSTEM_DIS_AGENT))) {
|
||||||
users.add((String) temp.getValues().get(Constants.CSKEFU_SYSTEM_DIS_AGENT));
|
users.add((String) temp.getValues().get(Constants.CSKEFU_SYSTEM_DIS_AGENT));
|
||||||
}
|
}
|
||||||
@ -265,17 +200,17 @@ public class ESDataExchangeImpl{
|
|||||||
if (!StringUtils.isBlank((String) temp.getValues().get("taskid"))) {
|
if (!StringUtils.isBlank((String) temp.getValues().get("taskid"))) {
|
||||||
taskList.add((String) temp.getValues().get("taskid"));
|
taskList.add((String) temp.getValues().get("taskid"));
|
||||||
}
|
}
|
||||||
if(!StringUtils.isBlank((String)temp.getValues().get("batid"))) {
|
// if (!StringUtils.isBlank((String) temp.getValues().get("batid"))) {
|
||||||
batchList.add((String)temp.getValues().get("batid")) ;
|
// batchList.add((String) temp.getValues().get("batid"));
|
||||||
}
|
// }
|
||||||
if(!StringUtils.isBlank((String)temp.getValues().get("actid"))) {
|
// if (!StringUtils.isBlank((String) temp.getValues().get("actid"))) {
|
||||||
activityList.add((String)temp.getValues().get("actid")) ;
|
// activityList.add((String) temp.getValues().get("actid"));
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (loadRef) {
|
if (loadRef) {
|
||||||
if (users.size() > 0) {
|
if (users.size() > 0) {
|
||||||
List<User> userList = userRes.findAll(users) ;
|
List<User> userList = userRes.findAllById(users);
|
||||||
for (UKDataBean dataBean : dataBeanList) {
|
for (UKDataBean dataBean : dataBeanList) {
|
||||||
String userid = (String) dataBean.getValues().get(Constants.CSKEFU_SYSTEM_DIS_AGENT);
|
String userid = (String) dataBean.getValues().get(Constants.CSKEFU_SYSTEM_DIS_AGENT);
|
||||||
if (!StringUtils.isBlank(userid)) {
|
if (!StringUtils.isBlank(userid)) {
|
||||||
@ -298,7 +233,7 @@ public class ESDataExchangeImpl{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (organs.size() > 0) {
|
if (organs.size() > 0) {
|
||||||
List<Organ> organList = organRes.findAll(organs) ;
|
List<Organ> organList = organRes.findAllById(organs);
|
||||||
for (UKDataBean dataBean : dataBeanList) {
|
for (UKDataBean dataBean : dataBeanList) {
|
||||||
String organid = (String) dataBean.getValues().get(Constants.CSKEFU_SYSTEM_DIS_ORGAN);
|
String organid = (String) dataBean.getValues().get(Constants.CSKEFU_SYSTEM_DIS_ORGAN);
|
||||||
if (!StringUtils.isBlank(organid)) {
|
if (!StringUtils.isBlank(organid)) {
|
||||||
@ -312,7 +247,7 @@ public class ESDataExchangeImpl{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (taskList.size() > 0) {
|
if (taskList.size() > 0) {
|
||||||
List<UKefuCallOutTask> ukefuCallOutTaskList = taskRes.findAll(taskList) ;
|
List<UKefuCallOutTask> ukefuCallOutTaskList = taskRes.findAllById(taskList);
|
||||||
for (UKDataBean dataBean : dataBeanList) {
|
for (UKDataBean dataBean : dataBeanList) {
|
||||||
String taskid = (String) dataBean.getValues().get("taskid");
|
String taskid = (String) dataBean.getValues().get("taskid");
|
||||||
if (!StringUtils.isBlank(taskid)) {
|
if (!StringUtils.isBlank(taskid)) {
|
||||||
@ -326,19 +261,15 @@ public class ESDataExchangeImpl{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new PageImpl<UKDataBean>(dataBeanList,page , (int)response.getHits().getTotalHits());
|
return new PageImpl<>(dataBeanList, page, (int) response.getHits().getTotalHits());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param dataBean
|
|
||||||
* @param ps
|
|
||||||
* @param start
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
public PageImpl<UKDataBean> findAllPageAggResult(QueryBuilder query, String aggField, Pageable page, boolean loadRef, String types) {
|
public PageImpl<UKDataBean> findAllPageAggResult(QueryBuilder query, String aggField, Pageable page, boolean loadRef, String types) {
|
||||||
List<UKDataBean> dataBeanList = new ArrayList<UKDataBean>() ;
|
List<UKDataBean> dataBeanList = new ArrayList<>();
|
||||||
SearchRequestBuilder searchBuilder = MainContext.getTemplet().getClient().prepareSearch(Constants.SYSTEM_INDEX);
|
SearchRequestBuilder searchBuilder = MainContext.getTemplet().getClient().prepareSearch(Constants.SYSTEM_INDEX);
|
||||||
if (!StringUtils.isBlank(types)) {
|
if (!StringUtils.isBlank(types)) {
|
||||||
searchBuilder.setTypes(types);
|
searchBuilder.setTypes(types);
|
||||||
@ -347,7 +278,7 @@ public class ESDataExchangeImpl{
|
|||||||
int size = page.getPageSize() * (page.getPageNumber() + 1);
|
int size = page.getPageSize() * (page.getPageNumber() + 1);
|
||||||
searchBuilder.setFrom(0).setSize(0);
|
searchBuilder.setFrom(0).setSize(0);
|
||||||
|
|
||||||
AggregationBuilder<?> aggregition = AggregationBuilders.terms(aggField).field(aggField).size(size) ;
|
AggregationBuilder aggregition = AggregationBuilders.terms(aggField).field(aggField).size(size);
|
||||||
aggregition.subAggregation(AggregationBuilders.terms("apstatus").field("apstatus"));
|
aggregition.subAggregation(AggregationBuilders.terms("apstatus").field("apstatus"));
|
||||||
aggregition.subAggregation(AggregationBuilders.terms("callstatus").field("callstatus"));
|
aggregition.subAggregation(AggregationBuilders.terms("callstatus").field("callstatus"));
|
||||||
|
|
||||||
@ -355,12 +286,16 @@ public class ESDataExchangeImpl{
|
|||||||
|
|
||||||
|
|
||||||
SearchResponse response = searchBuilder.setQuery(query).execute().actionGet();
|
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>();
|
List<String> users = new ArrayList<>();
|
||||||
|
List<String> organs = new ArrayList<>();
|
||||||
|
List<String> taskList = new ArrayList<>();
|
||||||
|
// List<String> batchList = new ArrayList<>();
|
||||||
|
// List<String> activityList = new ArrayList<>();
|
||||||
|
|
||||||
if (response.getAggregations().get(aggField) instanceof Terms) {
|
if (response.getAggregations().get(aggField) instanceof Terms) {
|
||||||
Terms agg = response.getAggregations().get(aggField);
|
Terms agg = response.getAggregations().get(aggField);
|
||||||
if (agg != null) {
|
if (agg != null) {
|
||||||
if(loadRef == true) {
|
if (loadRef) {
|
||||||
if (aggField.equals(Constants.CSKEFU_SYSTEM_DIS_AGENT)) {
|
if (aggField.equals(Constants.CSKEFU_SYSTEM_DIS_AGENT)) {
|
||||||
users.add(agg.getName());
|
users.add(agg.getName());
|
||||||
}
|
}
|
||||||
@ -370,12 +305,12 @@ public class ESDataExchangeImpl{
|
|||||||
if (aggField.equals("taskid")) {
|
if (aggField.equals("taskid")) {
|
||||||
taskList.add(agg.getName());
|
taskList.add(agg.getName());
|
||||||
}
|
}
|
||||||
if(aggField.equals("batid")) {
|
// if (aggField.equals("batid")) {
|
||||||
batchList.add(agg.getName()) ;
|
// batchList.add(agg.getName());
|
||||||
}
|
// }
|
||||||
if(aggField.equals("actid")) {
|
// if (aggField.equals("actid")) {
|
||||||
activityList.add(agg.getName()) ;
|
// activityList.add(agg.getName());
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
if (agg.getBuckets() != null && agg.getBuckets().size() > 0) {
|
if (agg.getBuckets() != null && agg.getBuckets().size() > 0) {
|
||||||
for (Terms.Bucket entry : agg.getBuckets()) {
|
for (Terms.Bucket entry : agg.getBuckets()) {
|
||||||
@ -398,14 +333,14 @@ public class ESDataExchangeImpl{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}else if(response.getAggregations().get(aggField) instanceof InternalDateHistogram){
|
} else {
|
||||||
// InternalDateHistogram agg = response.getAggregations().get(aggField) ;
|
response.getAggregations().get(aggField);// InternalDateHistogram agg = response.getAggregations().get(aggField) ;
|
||||||
// long total = response.getHits().getTotalHits() ;
|
// long total = response.getHits().getTotalHits() ;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (loadRef) {
|
if (loadRef) {
|
||||||
if (users.size() > 0) {
|
if (users.size() > 0) {
|
||||||
List<User> userList = userRes.findAll(users) ;
|
List<User> userList = userRes.findAllById(users);
|
||||||
for (UKDataBean dataBean : dataBeanList) {
|
for (UKDataBean dataBean : dataBeanList) {
|
||||||
String userid = (String) dataBean.getValues().get(Constants.CSKEFU_SYSTEM_DIS_AGENT);
|
String userid = (String) dataBean.getValues().get(Constants.CSKEFU_SYSTEM_DIS_AGENT);
|
||||||
if (!StringUtils.isBlank(userid)) {
|
if (!StringUtils.isBlank(userid)) {
|
||||||
@ -419,7 +354,7 @@ public class ESDataExchangeImpl{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (organs.size() > 0) {
|
if (organs.size() > 0) {
|
||||||
List<Organ> organList = organRes.findAll(organs) ;
|
List<Organ> organList = organRes.findAllById(organs);
|
||||||
for (UKDataBean dataBean : dataBeanList) {
|
for (UKDataBean dataBean : dataBeanList) {
|
||||||
String organid = (String) dataBean.getValues().get(Constants.CSKEFU_SYSTEM_DIS_ORGAN);
|
String organid = (String) dataBean.getValues().get(Constants.CSKEFU_SYSTEM_DIS_ORGAN);
|
||||||
if (!StringUtils.isBlank(organid)) {
|
if (!StringUtils.isBlank(organid)) {
|
||||||
@ -433,7 +368,7 @@ public class ESDataExchangeImpl{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (taskList.size() > 0) {
|
if (taskList.size() > 0) {
|
||||||
List<UKefuCallOutTask> ukefuCallOutTaskList = taskRes.findAll(taskList) ;
|
List<UKefuCallOutTask> ukefuCallOutTaskList = taskRes.findAllById(taskList);
|
||||||
for (UKDataBean dataBean : dataBeanList) {
|
for (UKDataBean dataBean : dataBeanList) {
|
||||||
String taskid = (String) dataBean.getValues().get("taskid");
|
String taskid = (String) dataBean.getValues().get("taskid");
|
||||||
if (!StringUtils.isBlank(taskid)) {
|
if (!StringUtils.isBlank(taskid)) {
|
||||||
@ -447,14 +382,12 @@ public class ESDataExchangeImpl{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new PageImpl<UKDataBean>(dataBeanList,page , (int)response.getHits().getTotalHits());
|
return new PageImpl<>(dataBeanList, page, (int) response.getHits().getTotalHits());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param dataBean
|
|
||||||
*/
|
*/
|
||||||
public UKDataBean processDate(UKDataBean dataBean) {
|
public UKDataBean processDate(UKDataBean dataBean) {
|
||||||
return dataBean;
|
return dataBean;
|
||||||
|
@ -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,7 +37,7 @@ 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));
|
||||||
|
|
||||||
@ -97,7 +96,7 @@ public class SearchTools {
|
|||||||
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){
|
public static PageImpl<UKDataBean> dissearch(String orgi, List<FormFilterItem> itemList, MetadataTable metadataTable, int p, int ps) {
|
||||||
BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
|
BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
|
||||||
queryBuilder.must(termQuery("orgi", orgi));
|
queryBuilder.must(termQuery("orgi", orgi));
|
||||||
queryBuilder.must(termQuery("status", MainContext.NamesDisStatusType.NOT.toString()));
|
queryBuilder.must(termQuery("status", MainContext.NamesDisStatusType.NOT.toString()));
|
||||||
@ -164,94 +163,47 @@ public class SearchTools {
|
|||||||
queryBuilder.must(termQuery("validresult", "valid"));
|
queryBuilder.must(termQuery("validresult", "valid"));
|
||||||
|
|
||||||
switch (cmd) {
|
switch (cmd) {
|
||||||
case "actid" : queryBuilder.must(termQuery("actid", id)) ; break ;
|
case "actid":
|
||||||
case "batid" : queryBuilder.must(termQuery("batid", id)) ; break ;
|
queryBuilder.must(termQuery("actid", id));
|
||||||
case "taskid" : queryBuilder.must(termQuery("taskid", id)) ; break ;
|
break;
|
||||||
case "filterid" : queryBuilder.must(termQuery("filterid", id)) ; break ;
|
case "batid":
|
||||||
case "agent" : queryBuilder.must(termQuery(Constants.CSKEFU_SYSTEM_DIS_AGENT, id)) ; break ;
|
queryBuilder.must(termQuery("batid", id));
|
||||||
case "skill" : queryBuilder.must(termQuery(Constants.CSKEFU_SYSTEM_DIS_ORGAN, id)) ; break ;
|
break;
|
||||||
case "taskskill" : queryBuilder.must(termQuery("taskid", id)).must(termQuery("status", MainContext.NamesDisStatusType.DISAGENT.toString())) ; break ;
|
case "taskid":
|
||||||
case "filterskill" : queryBuilder.must(termQuery("filterid", id)).must(termQuery("status", MainContext.NamesDisStatusType.DISAGENT.toString())) ; break ;
|
queryBuilder.must(termQuery("taskid", id));
|
||||||
default : queryBuilder.must(termQuery("actid", "NOT_EXIST_KEY")) ; //必须传入一个进来;
|
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);
|
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) {
|
public static PageImpl<UKDataBean> namesearch(String orgi, String phonenum) {
|
||||||
BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
|
BoolQueryBuilder queryBuilder = new BoolQueryBuilder();
|
||||||
queryBuilder.must(termQuery("orgi", orgi));
|
queryBuilder.must(termQuery("orgi", orgi));
|
||||||
queryBuilder.must(termQuery("validresult", "valid"));
|
queryBuilder.must(termQuery("validresult", "valid"));
|
||||||
queryBuilder.must(termQuery("status", MainContext.NamesDisStatusType.DISAGENT.toString()));
|
queryBuilder.must(termQuery("status", MainContext.NamesDisStatusType.DISAGENT.toString()));
|
||||||
StringBuffer strb = new StringBuffer();
|
StringBuilder strb = new StringBuilder();
|
||||||
if (!StringUtils.isBlank(phonenum)) {
|
if (!StringUtils.isBlank(phonenum)) {
|
||||||
strb.append(phonenum);
|
strb.append(phonenum);
|
||||||
if (phonenum.startsWith("0")) {
|
if (phonenum.startsWith("0")) {
|
||||||
@ -266,11 +218,6 @@ public class SearchTools {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param orgi
|
|
||||||
* @param agent
|
|
||||||
* @param p
|
|
||||||
* @param ps
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
public static PageImpl<UKDataBean> search(BoolQueryBuilder queryBuilder, int p, int ps) {
|
public static PageImpl<UKDataBean> search(BoolQueryBuilder queryBuilder, int p, int ps) {
|
||||||
return search(queryBuilder, null, true, p, ps);
|
return search(queryBuilder, null, true, p, ps);
|
||||||
@ -278,26 +225,14 @@ public class SearchTools {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @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) {
|
private static PageImpl<UKDataBean> search(BoolQueryBuilder queryBuilder, MetadataTable metadataTable, boolean loadRef, int p, int ps) {
|
||||||
ESDataExchangeImpl esDataExchange = MainContext.getContext().getBean(ESDataExchangeImpl.class);
|
ESDataExchangeImpl esDataExchange = MainContext.getContext().getBean(ESDataExchangeImpl.class);
|
||||||
return esDataExchange.findPageResult(queryBuilder, Constants.SYSTEM_INDEX, metadataTable, PageRequest.of(p, ps, Sort.Direction.ASC, "createtime"), loadRef);
|
return esDataExchange.findPageResult(queryBuilder, metadataTable, PageRequest.of(p, ps, Sort.Direction.ASC, "createtime"), loadRef);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param queryBuilder
|
|
||||||
* @param metadataTable
|
|
||||||
* @param loadRef
|
|
||||||
* @param p
|
|
||||||
* @param ps
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
public static PageImpl<UKDataBean> aggregation(BoolQueryBuilder queryBuilder, String aggField, boolean loadRef, int p, int ps) {
|
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);
|
||||||
@ -306,26 +241,14 @@ public class SearchTools {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param queryBuilder
|
|
||||||
* @param metadataTable
|
|
||||||
* @param loadRef
|
|
||||||
* @param p
|
|
||||||
* @param ps
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
public static UKDataBean get(UKDataBean dataBean) {
|
public static UKDataBean get(UKDataBean dataBean) {
|
||||||
ESDataExchangeImpl esDataExchange = MainContext.getContext().getBean(ESDataExchangeImpl.class);
|
ESDataExchangeImpl esDataExchange = MainContext.getContext().getBean(ESDataExchangeImpl.class);
|
||||||
return esDataExchange.getIObjectByPK(dataBean, dataBean.getId());
|
return esDataExchange.getIObjectByPK(dataBean);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param queryBuilder
|
|
||||||
* @param metadataTable
|
|
||||||
* @param loadRef
|
|
||||||
* @param p
|
|
||||||
* @param ps
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
public static UKDataBean get(String type, String id) {
|
public static UKDataBean get(String type, String id) {
|
||||||
ESDataExchangeImpl esDataExchange = MainContext.getContext().getBean(ESDataExchangeImpl.class);
|
ESDataExchangeImpl esDataExchange = MainContext.getContext().getBean(ESDataExchangeImpl.class);
|
||||||
@ -334,12 +257,6 @@ public class SearchTools {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param queryBuilder
|
|
||||||
* @param metadataTable
|
|
||||||
* @param loadRef
|
|
||||||
* @param p
|
|
||||||
* @param ps
|
|
||||||
* @return
|
|
||||||
*/
|
*/
|
||||||
public static void save(UKDataBean dataBean) {
|
public static void save(UKDataBean dataBean) {
|
||||||
ESDataExchangeImpl esDataExchange = MainContext.getContext().getBean(ESDataExchangeImpl.class);
|
ESDataExchangeImpl esDataExchange = MainContext.getContext().getBean(ESDataExchangeImpl.class);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user