Commit 169e5b05 authored by 郭武斌's avatar 郭武斌

*)搜索中添加警情类型code

parent ec6e11a2
......@@ -63,6 +63,11 @@ public class ESAlertCalledDto {
@ApiModelProperty(value = "警情类型")
private String alertType;
/**
* 警情类型code
*/
@ApiModelProperty(value = "警情类型code")
private String alertTypeCode;
/**
* 事发单位
*/
@ApiModelProperty(value = "事发单位")
......
......@@ -66,9 +66,14 @@ public class ESAlertCalled {
/**
* 警情类型
*/
@Field(type = FieldType.Text)
@Field(type = FieldType.Text, index = false)
private String alertType;
/**
* 警情类型Code
*/
@Field(type = FieldType.Text)
private String alertTypeCode;
/**
* 事发单位
*/
@Field(type = FieldType.Text, searchAnalyzer = "ik_max_word", analyzer = "ik_max_word")
......
......@@ -113,27 +113,40 @@ public class ESAlertCalledService {
/**
* 通用匹配规则,条件构建
*/
BoolQueryBuilder boolMust = QueryBuilders.boolQuery();
//接警时间,距离当前时间不超过半小时的
long currentTime = System.currentTimeMillis() ;
currentTime = currentTime - 30*60*1000;
BoolQueryBuilder qb1 = QueryBuilders.boolQuery()
.must(QueryBuilders.rangeQuery("callTimeLong").gte(currentTime));
boolMust.should(qb1);
//报警人及报警电话一致
if (!ValidationUtil.isEmpty(alertCalled.getContactUser()) && !ValidationUtil.isEmpty(alertCalled.getContactPhone()))
{
BoolQueryBuilder qb2 = QueryBuilders.boolQuery()
.must(QueryBuilders.termQuery("contactUser.keyword", alertCalled.getContactUser()))
.must(QueryBuilders.termQuery("contactPhone.keyword", alertCalled.getContactPhone()));
boolMust.should(qb2);
}
//事发地点一致,或相距不超过200米的
if (!ValidationUtil.isEmpty(alertCalled.getAddress()))
{
BoolQueryBuilder qb3 = QueryBuilders.boolQuery()
.should(QueryBuilders.matchQuery("address", alertCalled.getAddress()));
boolMust.should(qb3);
}
//警情类型一致
BoolQueryBuilder qb4 = QueryBuilders.boolQuery()
.must(QueryBuilders.termQuery("alertType.keyword", alertCalled.getAlertType()));
.must(QueryBuilders.termQuery("alertTypeCode.keyword", alertCalled.getAlertTypeCode()));
boolMust.should(qb4);
//事发单位名称一致
if (!ValidationUtil.isEmpty(alertCalled.getUnitInvolved()))
{
BoolQueryBuilder qb5 = QueryBuilders.boolQuery()
.must(QueryBuilders.matchQuery("unitInvolved", alertCalled.getUnitInvolved()));
boolMust.should(qb5);
}
BoolQueryBuilder boolMust = QueryBuilders.boolQuery();
boolMust.should(qb1).should(qb2).should(qb3).should(qb4).should(qb5);
/**
* 一般火灾,条件构造
*/
......@@ -223,6 +236,7 @@ public class ESAlertCalledService {
ESAlertCalled esAlertCalled = new ESAlertCalled();
esAlertCalled.setSequenceNbr(alertCalled.getSequenceNbr());
esAlertCalled.setAlertType(alertCalled.getAlertType());
esAlertCalled.setAlertTypeCode(alertCalled.getAlertTypeCode());
esAlertCalled.setCallTime(alertCalled.getCallTime());
esAlertCalled.setCallTimeLong(alertCalled.getCallTime().getTime());
esAlertCalled.setContactUser(alertCalled.getContactUser());
......
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