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

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

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