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:
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());
|
||||||
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
@ -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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user