Commit 1401aa0b by liulianglang

es 人查案

parent 4bc58928
......@@ -83,7 +83,16 @@
<artifactId>commons-lang3</artifactId>
<version>3.7</version>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>6.4.3</version>
</dependency>
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>transport</artifactId>
<version>6.4.3</version>
</dependency>
<!-- alibaba的druid数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
......
......@@ -353,6 +353,225 @@ public class XxcxController {
reslt.setStatus("success");
return reslt;
}
@RequestMapping("/AsjApiByZjhm")
public Result AsjApiByZjhm(@RequestBody XyrParam xyr){
Result reslt = new Result();
HttpServletRequest request = IpADdress.getRequest();
String header = request.getHeader("founder.authorization");
if(StringUtils.isEmpty(header) || !author.equals(header)){
reslt.setData(new ArrayList<>());
reslt.setMsg("没有授权码或者授权码验证未通过,不能查询!");
reslt.setStatus("fail");
return reslt;
}
if(StringUtils.isEmpty(xyr.getZjhm()) ){
reslt.setData(new ArrayList<>());
reslt.setMsg("没有传入证件号码,不能查询!");
reslt.setStatus("fail");
return reslt;
}
Map mapResult = new HashMap();
List<Map<String,Object>> listResult = new ArrayList<>();
AsjRyRelateVoBzpt asj=new AsjRyRelateVoBzpt();
JSONObject jsonParams = new JSONObject();
jsonParams.put("index","tb_st_asj");// 索引名称
jsonParams.put("request",JSONObject.parse(xxcxService.getEsAsjQryStr(xyr)));// 请求json
System.out.println("----"+jsonParams.toJSONString());
HttpEntity<Map<String,Object>> params = new HttpEntity<>(jsonParams,getHeaders(asj));// 请求头
JSONObject resultJson = restTemplate.postForEntity(gabesUrl+"search",params,JSONObject.class).getBody();
LinkedHashMap json = (LinkedHashMap) resultJson.get("result");
LinkedHashMap jsonResponse = (LinkedHashMap) json.get("response");
LinkedHashMap jsonHit = (LinkedHashMap) jsonResponse.get("hits");
int total = (int) jsonHit.get("total");
if(total > 0 ){
List<LinkedHashMap> jsonHitArray = (List<LinkedHashMap>) jsonHit.get("hits");
SimpleDateFormat sf = new SimpleDateFormat("yyyyMMddhhmmss");
for(int i=0;i<jsonHitArray.size();i++){
Map map = new HashMap();
LinkedHashMap obj = (LinkedHashMap) jsonHitArray.get(i).get("_source");
String asjbh = (String) obj.get("v_solr6_tb_st_asj_AS_ASJBH");
String ajmc = (String) obj.get("v_solr6_tb_st_asj_AT_AJMC");
String ajlbdmMc = (String) obj.get("v_solr6_tb_st_asj_AS_AJLBDM_value");// 案件类别
String ajzlbMc = (String) obj.get("v_solr6_tb_st_asj_AS_ZATZ_JYQK_value");// 小案类别
String ajxzlbMc = (String) obj.get("tb_st_asj_asjbz_AJXLB_VALUE");// 细类案类别
String bzrXm = (String) obj.get("tb_st_asj_asjbz_XXCZRY_XM");// 标注人姓名
String bzrDwdmMc = (String) obj.get("tb_st_asj_asjbz_XXCZDW_GAJGJGDM_VALUE");// 标注人单位
String asjfsddDzmc = (String) obj.get("v_solr6_tb_st_asj_AT_ASJFSDD_DZMC");// 案发地详细地址
String asjfsddXzqh = (String) obj.get("v_solr6_tb_st_asj_AS_ASJFSDD_XZQHDM");// 案发地详细地址
String ssjzrmby = (String) obj.get("v_solr6_tb_st_asj_AN_SSJZRMBY");// 损失总价值
String larq = (String) obj.get("v_solr6_tb_st_asj_AS_LARQ");// 立案日期
String ladwdm = (String) obj.get("v_solr6_tb_st_asj_AS_LADW_GAJGJGDM");// 立案单位代码
String ladwMc = (String) obj.get("v_solr6_tb_st_asj_AT_LADW_GAJGMC");// 立案单位名称
String asjfssjAsjfskssj = (String) obj.get("v_solr6_tb_st_asj_AS_ASJFSSJ_ASJFSKSSJ");// 案发开始时间
String asjfssjAsjfsjssj = (String) obj.get("v_solr6_tb_st_asj_AS_ASJFSSJ_ASJFSJSSJ");// 案发结束时间
String jyaq = (String) obj.get("v_solr6_tb_st_asj_AT_JYAQ");// 简要案情
String bzztMs = (String) obj.get("tb_st_asj_asjbz_BZZT_VALUE");// 标注状态描述
String bzzt = (String) obj.get("tb_st_asj_asjbz_BZZT");// 标注状态
map.put("asjbh",asjbh);
map.put("ajmc",ajmc);
map.put("ajlbdmMc",ajlbdmMc);
map.put("ajzlbMc",ajzlbMc);
map.put("ajxzlbMc",ajxzlbMc);
map.put("bzrDwdmMc",bzrDwdmMc);
map.put("bzrXm",bzrXm);
map.put("asjfsddDzmc",asjfsddDzmc);
map.put("ssjzrmby",ssjzrmby);
map.put("asjfsddXzqh",asjfsddXzqh);
// if(null!=ladwPcs){
// ladwMc = detailervice.getDwMcBydm(ladwPcs);
// }
map.put("ladwdm",ladwdm);
map.put("ladwMc",ladwMc);
// 立案日期和案发日期 过滤
if(null != larq){
try {
map.put("larq",sf.parse(larq));
} catch (ParseException e) {
e.printStackTrace();
}
}else{
map.put("larq","无");
}
if(null != asjfssjAsjfskssj){
try {
map.put("asjfssjAsjfskssj",sf.parse(asjfssjAsjfskssj));
} catch (ParseException e) {
e.printStackTrace();
}
}else{
map.put("asjfssjAsjfskssj","无");
}
if(null != asjfssjAsjfsjssj){
try {
map.put("asjfssjAsjfsjssj",sf.parse(asjfssjAsjfsjssj));
} catch (ParseException e) {
e.printStackTrace();
}
}else{
map.put("asjfssjAsjfsjssj","无");
}
if(StringUtils.isEmpty(bzztMs)){
map.put("bzztMs","未标注");
}else{
map.put("bzztMs",bzztMs);
}
map.put("bzzt",bzzt);
map.put("jyaq",jyaq);
listResult.add(map);
}
}
mapResult.put("total",total);
mapResult.put("rows",listResult);
reslt.setData(mapResult);
reslt.setMsg("案件信息查询成功");
reslt.setStatus("success");
return reslt;
}
@RequestMapping("/AsjApiGroupByZjhm")
public Result AsjApiGroupByZjhm(@RequestBody AsjRyRelateVoBzpt asjbl){
Result reslt = new Result();
HttpServletRequest request = IpADdress.getRequest();
String header = request.getHeader("founder.authorization");
if(StringUtils.isEmpty(header) || !author.equals(header)){
reslt.setData(new ArrayList<>());
reslt.setMsg("没有授权码或者授权码验证未通过,不能查询!");
reslt.setStatus("fail");
return reslt;
}
if(StringUtils.isEmpty(asjbl.getAsjbh()) ){
reslt.setData(new ArrayList<>());
reslt.setMsg("没有传入案件编号,不能查询!");
reslt.setStatus("fail");
return reslt;
}
Map mapResult = new HashMap();
mapResult.put("isExist","flase");
List<Map<String,Object>> listResult = new ArrayList<>();
AsjRyRelateVoBzpt asj=new AsjRyRelateVoBzpt();
asj.setAsjbh(asjbl.getAsjbh());
JSONObject jsonParams = new JSONObject();
jsonParams.put("index","tb_xw_zbfzxyr");// 索引名称
jsonParams.put("request",JSONObject.parse(xxcxService.getCountByAsjbhNum1()));// 请求json
System.out.println("----"+jsonParams.toJSONString());
HttpEntity<Map<String,Object>> params = new HttpEntity<>(jsonParams,getHeaders(asj));// 请求头
JSONObject resultJson = restTemplate.postForEntity(gabesUrl+"search",params,JSONObject.class).getBody();
System.out.println("result---"+resultJson.toJSONString());
// LinkedHashMap json = (LinkedHashMap) resultJson.get("result");
// LinkedHashMap jsonResponse = (LinkedHashMap) json.get("response");
// LinkedHashMap jsonHit = (LinkedHashMap) jsonResponse.get("hits");
// int total = (int) jsonHit.get("total");
// if(total > 0 ){
// mapResult.put("isExist","true");
// }
reslt.setData(mapResult);
reslt.setMsg("案件信息查询成功");
reslt.setStatus("success");
return reslt;
}
@RequestMapping("/AsjApiGroupByZjhm3")
public Result AsjApiGroupByZjhm3(@RequestBody AsjRyRelateVoBzpt asjbl){
Result reslt = new Result();
HttpServletRequest request = IpADdress.getRequest();
String header = request.getHeader("founder.authorization");
if(StringUtils.isEmpty(header) || !author.equals(header)){
reslt.setData(new ArrayList<>());
reslt.setMsg("没有授权码或者授权码验证未通过,不能查询!");
reslt.setStatus("fail");
return reslt;
}
if(StringUtils.isEmpty(asjbl.getAsjbh()) ){
reslt.setData(new ArrayList<>());
reslt.setMsg("没有传入案件编号,不能查询!");
reslt.setStatus("fail");
return reslt;
}
Map mapResult = new HashMap();
mapResult.put("isExist","flase");
List<Map<String,Object>> listResult = new ArrayList<>();
AsjRyRelateVoBzpt asj=new AsjRyRelateVoBzpt();
asj.setAsjbh(asjbl.getAsjbh());
JSONObject jsonParams = new JSONObject();
jsonParams.put("index","tb_xw_zbfzxyr");// 索引名称
jsonParams.put("request",JSONObject.parse(xxcxService.getCountByAsjbhNum3()));// 请求json
System.out.println("----"+jsonParams.toJSONString());
HttpEntity<Map<String,Object>> params = new HttpEntity<>(jsonParams,getHeaders(asj));// 请求头
JSONObject resultJson = restTemplate.postForEntity(gabesUrl+"search",params,JSONObject.class).getBody();
System.out.println("result---"+resultJson.toJSONString());
// LinkedHashMap json = (LinkedHashMap) resultJson.get("result");
// LinkedHashMap jsonResponse = (LinkedHashMap) json.get("response");
// LinkedHashMap jsonHit = (LinkedHashMap) jsonResponse.get("hits");
// int total = (int) jsonHit.get("total");
// if(total > 0 ){
// mapResult.put("isExist","true");
// }
reslt.setData(mapResult);
reslt.setMsg("案件信息查询成功");
reslt.setStatus("success");
return reslt;
}
@RequestMapping("/AsjApiIsExist")
public Result AsjApiIsExist(@RequestBody AsjRyRelateVoBzpt asjbl){
Result reslt = new Result();
......
package com.founder.model;
import lombok.Data;
@Data
public class AsjParam {
private String asjbh;
private String ajmc;
private String bzzt;
private String ajlbdm;
private String zatzJyqk;
private String ajxlb;
private String jyaq;
private String jyaqType;
private String afsjKssj;
private String afsjJssj;
private String ladwdm;
private String larqKssj;
private String larqJssj;
}
package com.founder.model;
import lombok.Data;
@Data
public class XyrParam {
private String xm;
private String zjhm;
private String xbdm;
private String zhrqKssj;
private String zhrqJssj;
private String zhdwdm;
private String xzzmc;
private String csrqKssj;
private String csrqJssj;
private String gjdm;
private String mzdm;
private String hjdqhdm;
private String hjdmc;
private int page;
private int limit;
}
......@@ -12,7 +12,11 @@ public interface XxcxService {
TbStAsjView queryTbStAsjByJjdbh(String jjdbh);
List<TbXwRybhView> queryTbXwRybh(TbXwRybhView param);
String getEsAsjQryStr(XyrParam xyr);
String getCountByAsjbhNum1();
String getCountByAsjbhNum3();
List<TbXwBaView> queryTbXwBa(TbXwBaView param);
List<TbZhzxJjxxView> queryJjxx(TbZhzxJjxxView param);
......
......@@ -3,12 +3,28 @@ package com.founder.service.impl;
import com.founder.dao.XxcxDao;
import com.founder.model.*;
import com.founder.service.XxcxService;
import org.apache.commons.lang3.StringUtils;
import org.apache.lucene.search.join.ScoreMode;
import org.elasticsearch.index.query.*;
import org.elasticsearch.join.query.JoinQueryBuilders;
import org.elasticsearch.script.Script;
import org.elasticsearch.search.aggregations.AggregationBuilders;
import org.elasticsearch.search.aggregations.bucket.terms.TermsAggregationBuilder;
import org.elasticsearch.search.aggregations.pipeline.PipelineAggregatorBuilders;
import org.elasticsearch.search.aggregations.pipeline.bucketselector.BucketSelectorPipelineAggregationBuilder;
import org.elasticsearch.search.builder.SearchSourceBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import org.elasticsearch.join.query.HasChildQueryBuilder;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static org.elasticsearch.search.sort.SortOrder.DESC;
@Service
public class XxcxServiceImpl implements XxcxService {
......@@ -56,7 +72,318 @@ public class XxcxServiceImpl implements XxcxService {
}
return tbStAsjView;
}
private BoolQueryBuilder getBoolXyr(XyrParam xyr) {
BoolQueryBuilder bqXyr = QueryBuilders.boolQuery();
// 信息删除判断标志
TermsQueryBuilder termQueryBuilderXxsc = QueryBuilders.termsQuery("v_solr6_tb_xw_zbfzxyr_PS_XXSC_PDBZ", "0");
bqXyr.must(termQueryBuilderXxsc);
//姓名
if (StringUtils.isNotEmpty(xyr.getXm())) {
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("v_solr6_tb_xw_zbfzxyr_PS_ZHFZXYR_XM", "*" + xyr.getXm() + "*");
bqXyr.must(wildcardQueryBuilder);
}
if (StringUtils.isNotEmpty(xyr.getZjhm())) {
String [] zjhms=xyr.getZjhm().split(",");
BoolQueryBuilder zjBuilder=new BoolQueryBuilder();
for(int i=0;i<zjhms.length;i++){
zjBuilder.should(QueryBuilders.termsQuery("v_solr6_tb_xw_zbfzxyr_PS_ZHFZXYR_CYZJ_ZJHM", zjhms[i]));
}
// TermsQueryBuilder termQueryBuilder = QueryBuilders.termsQuery("v_solr6_tb_xw_zbfzxyr_PS_ZHFZXYR_CYZJ_ZJHM", xyr.getZjhm());
// bqXyr.must(termQueryBuilder);
bqXyr.must(zjBuilder);
}
//性别
if (StringUtils.isNotEmpty(xyr.getXbdm())) {
TermsQueryBuilder termQueryBuilder = QueryBuilders.termsQuery("v_solr6_tb_xw_zbfzxyr_PS_ZHFZXYR_XBDM", xyr.getXbdm());
bqXyr.must(termQueryBuilder);
}
//抓获日期
// if (StringUtils.isNotEmpty(xyr.getZhrqKssj()) && StringUtils.isNotEmpty(xyr.getZhrqJssj())) {
// RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("v_solr6_tb_xw_zbfzxyr_PS_ZHRQ").gte(xyr.getZhrqKssj()).lte(DateUtil.EndDateAdd(xyr.getZhrqJssj()));
// bqXyr.must(rangeQueryBuilder);
// } else {
// if (StringUtils.isNotEmpty(xyr.getZhrqKssj())) {
// RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("v_solr6_tb_xw_zbfzxyr_PS_ZHRQ").gte(xyr.getZhrqKssj());
// bqXyr.must(rangeQueryBuilder);
// }
// if (StringUtils.isNotEmpty(xyr.getZhrqJssj())) {
// RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("v_solr6_tb_xw_zbfzxyr_PS_ZHRQ").lte(DateUtil.EndDateAdd(xyr.getZhrqJssj()));
// bqXyr.must(rangeQueryBuilder);
// }
// }
//抓获单位
if (StringUtils.isNotEmpty(xyr.getZhdwdm())) {
String unitcode = xyr.getZhdwdm();
if (unitcode.endsWith("0000000000")) {
unitcode = unitcode.substring(0, 2);
}
// 市局
else if (unitcode.endsWith("00000000")) {
unitcode = unitcode.substring(0, 4);
}
// 分局
else if (unitcode.endsWith("000000")) {
unitcode = unitcode.substring(0, 6);
}
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("v_solr6_tb_xw_zbfzxyr_PS_ZHDW_GAJGJGDM", unitcode + "*");
bqXyr.must(wildcardQueryBuilder);
}
// 现住址名称
if (StringUtils.isNotEmpty(xyr.getXzzmc())) {
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("v_solr6_tb_xw_zbfzxyr_PT_ZHFZXYR_XZZ_DZMC", "*" + xyr.getXzzmc() + "*");
bqXyr.must(wildcardQueryBuilder);
}
//出生日期
// if (StringUtils.isNotEmpty(xyr.getCsrqKssj())) {
// RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("v_solr6_tb_xw_zbfzxyr_PS_ZHFZXYR_CSRQ_RQGZXX").gte(xyr.getCsrqKssj());
// bqXyr.must(rangeQueryBuilder);
// }
// if (StringUtils.isNotEmpty(xyr.getCsrqJssj())) {
// RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("v_solr6_tb_xw_zbfzxyr_PS_ZHFZXYR_CSRQ_RQGZXX").lte(DateUtil.EndDateAdd(xyr.getCsrqJssj()));
// bqXyr.must(rangeQueryBuilder);
// }
// 国籍
if (StringUtils.isNotEmpty(xyr.getGjdm())) {
TermsQueryBuilder termQueryBuilder = QueryBuilders.termsQuery("v_solr6_tb_xw_zbfzxyr_PS_ZHFZXYR_GJDM", xyr.getGjdm());
bqXyr.must(termQueryBuilder);
}
// 民族
if (StringUtils.isNotEmpty(xyr.getMzdm())) {
TermsQueryBuilder termQueryBuilder = QueryBuilders.termsQuery("v_solr6_tb_xw_zbfzxyr_PS_ZHFZXYR_MZDM", xyr.getMzdm());
bqXyr.must(termQueryBuilder);
}
// 户籍地行政区划
if (StringUtils.isNotEmpty(xyr.getHjdqhdm())) {
String zhfzxyrHjdzXzqhdm = xyr.getHjdqhdm();
if (zhfzxyrHjdzXzqhdm.endsWith("0000")) {
zhfzxyrHjdzXzqhdm = zhfzxyrHjdzXzqhdm.substring(0, 2);
} else if (zhfzxyrHjdzXzqhdm.endsWith("00")) {
zhfzxyrHjdzXzqhdm = zhfzxyrHjdzXzqhdm.substring(0, 4);
}
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("v_solr6_tb_xw_zbfzxyr_PS_ZHFZXYR_HJDZ_XZQHDM", zhfzxyrHjdzXzqhdm + "*");
bqXyr.must(wildcardQueryBuilder);
}
// 户籍地名称
if (StringUtils.isNotEmpty(xyr.getHjdmc())) {
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("v_solr6_tb_xw_zbfzxyr_PT_ZHFZXYR_HJDZ_DZMC", "*" + xyr.getHjdmc() + "*");
bqXyr.must(wildcardQueryBuilder);
}
return bqXyr;
}
private BoolQueryBuilder getBoolAsj(AsjParam asj) {
BoolQueryBuilder bqAj = QueryBuilders.boolQuery();
// 信息删除判断标志
TermsQueryBuilder termQueryBuilderXxsc = QueryBuilders.termsQuery("v_solr6_tb_st_asj_AS_XXSC_PDBZ", "0");
bqAj.must(termQueryBuilderXxsc);
if (null != asj) {
// 案事件编号模糊查询
if (StringUtils.isNotEmpty(asj.getAsjbh())) {
TermsQueryBuilder termsQueryBuilder = QueryBuilders.termsQuery("v_solr6_tb_st_asj_AS_ASJBH", asj.getAsjbh());
bqAj.must(termsQueryBuilder);
}
// 案件类别代码模糊查询
if (StringUtils.isNotEmpty(asj.getAjlbdm())) {
// 根据规则截取前三位
String ajlbdm = "";
if (asj.getAjlbdm().endsWith("000")) {
ajlbdm = asj.getAjlbdm().substring(0, 3) + "*";
} else {
ajlbdm = asj.getAjlbdm();
}
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("v_solr6_tb_st_asj_AS_AJLBDM", ajlbdm);
bqAj.must(wildcardQueryBuilder);
}
//标注状态
if (StringUtils.isNotEmpty(asj.getBzzt())) {
if ("1".equals(asj.getBzzt())) {
TermsQueryBuilder termQueryBuilder = QueryBuilders.termsQuery("tb_st_asj_asjbz_BZZT", asj.getBzzt());
bqAj.must(termQueryBuilder);
} else {
TermsQueryBuilder termQueryBuilder = QueryBuilders.termsQuery("tb_st_asj_asjbz_BZZT", "1");
bqAj.mustNot(termQueryBuilder);
}
}
// 小案类别
if (StringUtils.isNotEmpty(asj.getZatzJyqk())) {
// 根据规则截取前三位
String zatz = "";
if (asj.getZatzJyqk().endsWith("000000")) {
zatz = asj.getZatzJyqk().substring(0, 6) + "*";
} else if (asj.getZatzJyqk().endsWith("00")) {
zatz = asj.getZatzJyqk().substring(0, 10) + "*";
} else {
zatz = asj.getZatzJyqk();
}
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("v_solr6_tb_st_asj_AS_ZATZ_JYQK", zatz);
bqAj.must(wildcardQueryBuilder);
}
// 细案类别
if (StringUtils.isNotEmpty(asj.getAjxlb())) {
TermsQueryBuilder termQueryBuilder = QueryBuilders.termsQuery("tb_st_asj_asjbz_AJXLB", asj.getAjxlb());
bqAj.must(termQueryBuilder);
}
// 案件名称
if (StringUtils.isNotEmpty(asj.getAjmc())) {
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("v_solr6_tb_st_asj_AT_AJMC", "*" + asj.getAjmc() + "*");
bqAj.must(wildcardQueryBuilder);
}
// 案发时间(年月日)范围
// if (StringUtils.isNotEmpty(asj.getAfsjKssj()) && StringUtils.isNotEmpty(asj.getAfsjJssj())) {
// RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("v_solr6_tb_st_asj_AS_ASJFSSJ_ASJFSKSSJ").gte(asj.getAfsjKssj()).lte(DateUtil.EndDateAdd(asj.getAfsjJssj()));
// bqAj.must(rangeQueryBuilder);
// } else {
// if (StringUtils.isNotEmpty(asj.getAfsjKssj())) {
// RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("v_solr6_tb_st_asj_AS_ASJFSSJ_ASJFSKSSJ").gte(asj.getAfsjKssj());
// bqAj.must(rangeQueryBuilder);
// }
// if (StringUtils.isNotEmpty(asj.getAfsjJssj())) {
// RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("v_solr6_tb_st_asj_AS_ASJFSSJ_ASJFSKSSJ").lte(DateUtil.EndDateAdd(asj.getAfsjJssj()));
// bqAj.must(rangeQueryBuilder);
// }
// }
//立案单位
if (StringUtils.isNotEmpty(asj.getLadwdm())) {
String unitcode = asj.getLadwdm();
if (unitcode.endsWith("0000000000")) {
unitcode = unitcode.substring(0, 2);
}
// 市局
else if (unitcode.endsWith("00000000")) {
unitcode = unitcode.substring(0, 4);
}
// 分局
else if (unitcode.endsWith("000000")) {
unitcode = unitcode.substring(0, 6);
}
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("v_solr6_tb_st_asj_AS_LADW_GAJGJGDM", unitcode + "*");
bqAj.must(wildcardQueryBuilder);
}
// //立案日期
// if (StringUtils.isNotEmpty(asj.getLarqKssj())) {
// RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("v_solr6_tb_st_asj_AS_LARQ").gte(asj.getLarqKssj());
// bqAj.must(rangeQueryBuilder);
//
// }
// if (StringUtils.isNotEmpty(asj.getLarqJssj())) {
// RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("v_solr6_tb_st_asj_AS_LARQ").lte(DateUtil.EndDateAdd(asj.getLarqJssj()));
// bqAj.must(rangeQueryBuilder);
// }
// 简要案情模糊查询
if (asj.getJyaq() != null && !asj.getJyaq().isEmpty()) {
String jyaq = asj.getJyaq();
String[] jyaqs = jyaq.split(",|,");
String jyaqType = asj.getJyaqType();
if ("and".equals(jyaqType)) {
for (String aq : jyaqs) {
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("v_solr6_tb_st_asj_AT_JYAQ", "*" + aq + "*");
bqAj.must(wildcardQueryBuilder);
}
} else if ("or".equals(jyaqType)) {
BoolQueryBuilder bqShould = QueryBuilders.boolQuery();
for (String aq : jyaqs) {
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("v_solr6_tb_st_asj_AT_JYAQ", "*" + aq + "*");
bqShould.should(wildcardQueryBuilder);
}
bqAj.must(bqShould);
} else {
WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("v_solr6_tb_st_asj_AT_JYAQ", "*" + jyaq + "*");
bqAj.must(wildcardQueryBuilder);
}
}
}
return bqAj;
}
@Override
public String getEsAsjQryStr(XyrParam xyr) {
BoolQueryBuilder bqAj = QueryBuilders.boolQuery();
// 信息删除判断标志
TermsQueryBuilder termQueryBuilderXxsc = QueryBuilders.termsQuery("v_solr6_tb_st_asj_AS_XXSC_PDBZ", "0");
bqAj.must(termQueryBuilderXxsc);
BoolQueryBuilder bqXyr = getBoolXyr(xyr);
HasChildQueryBuilder childQueryBuilder = JoinQueryBuilders.hasChildQuery("v_solr6_tb_xw_zbfzxyr", bqXyr, ScoreMode.None);
bqAj.must(childQueryBuilder);
int page = xyr.getPage();
int limit = xyr.getLimit();
int begin = (page - 1) * limit;
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
searchSourceBuilder.query(bqAj).from(begin).size(limit).trackTotalHits(true);
searchSourceBuilder.sort("v_solr6_tb_st_asj_AS_LARQ", DESC);
return searchSourceBuilder.toString();
}
@Override
public String getCountByAsjbhNum1(){
//函数扩展聚合
// Script script = new Script("doc['v_solr6_tb_xw_zbfzxyr_PS_ASJBH'].values +'####'+ doc['v_solr6_tb_xw_zbfzxyr_PS_ZHFZXYR_CYZJ_ZJHM'].values");
// TermsAggregationBuilder app = AggregationBuilders.terms("app").script(script).size(10000);
TermsAggregationBuilder termsAgg = AggregationBuilders.terms("asjbhGroup").field("v_solr6_tb_xw_zbfzxyr_PS_ASJBH").size(10);
//聚合,count为自带的
// termsAgg.subAggregation(AggregationBuilders.avg("avgAmount").field("amount"));
//声明BucketPath,用于后面的bucket筛选
Map<String, String> bucketsPathsMap = new HashMap<>(8);
bucketsPathsMap.put("orderCount", "_count");
// bucketsPathsMap.put("avgAmount", "avgAmount");
//设置脚本
Script script = new Script("params.orderCount >=2");
//构建bucket选择器
BucketSelectorPipelineAggregationBuilder bs =
PipelineAggregatorBuilders.bucketSelector("having", bucketsPathsMap, script);
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
termsAgg.subAggregation(bs);
searchSourceBuilder.aggregation(termsAgg);
return searchSourceBuilder.toString();
}
@Override
public String getCountByAsjbhNum3(){
//函数扩展聚合
Script script1 = new Script("doc['v_solr6_tb_xw_zbfzxyr_PS_ASJBH'].values +'####'+ doc['v_solr6_tb_xw_zbfzxyr_PS_ZHFZXYR_CYZJ_ZJHM'].values");
TermsAggregationBuilder termsAgg = AggregationBuilders.terms("asjbhGroup").script(script1).size(10);
// TermsAggregationBuilder termsAgg = AggregationBuilders.terms("asjbhGroup").field("v_solr6_tb_xw_zbfzxyr_PS_ASJBH").size(10);
//聚合,count为自带的
// termsAgg.subAggregation(AggregationBuilders.avg("avgAmount").field("amount"));
//声明BucketPath,用于后面的bucket筛选
Map<String, String> bucketsPathsMap = new HashMap<>(8);
bucketsPathsMap.put("orderCount", "_count");
// bucketsPathsMap.put("avgAmount", "avgAmount");
//设置脚本
Script script = new Script("params.orderCount >=2");
//构建bucket选择器
BucketSelectorPipelineAggregationBuilder bs =
PipelineAggregatorBuilders.bucketSelector("having", bucketsPathsMap, script);
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
termsAgg.subAggregation(bs);
searchSourceBuilder.aggregation(termsAgg);
return searchSourceBuilder.toString();
}
@Override
public TbStAsjView queryTbStAsjByJjdbh(String jjdbh) {
TbStAsjView tbStAsjView = null;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment