Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
X
xzxt-api-report
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
雷紫添
xzxt-api-report
Commits
1401aa0b
Commit
1401aa0b
authored
Apr 22, 2022
by
liulianglang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
es 人查案
parent
4bc58928
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
634 additions
and
2 deletions
+634
-2
pom.xml
+10
-1
src/main/java/com/founder/controller/XxcxController.java
+219
-0
src/main/java/com/founder/model/AsjParam.java
+34
-0
src/main/java/com/founder/model/XyrParam.java
+39
-0
src/main/java/com/founder/service/XxcxService.java
+4
-0
src/main/java/com/founder/service/impl/XxcxServiceImpl.java
+328
-1
No files found.
pom.xml
View file @
1401aa0b
...
...
@@ -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>
...
...
src/main/java/com/founder/controller/XxcxController.java
View file @
1401aa0b
...
...
@@ -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
();
...
...
src/main/java/com/founder/model/AsjParam.java
0 → 100644
View file @
1401aa0b
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
;
}
src/main/java/com/founder/model/XyrParam.java
0 → 100644
View file @
1401aa0b
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
;
}
src/main/java/com/founder/service/XxcxService.java
View file @
1401aa0b
...
...
@@ -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
);
...
...
src/main/java/com/founder/service/impl/XxcxServiceImpl.java
View file @
1401aa0b
...
...
@@ -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
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment