Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
amos-boot-biz
Project
Project
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
项目统一框架
amos-boot-biz
Commits
ad0421a2
Commit
ad0421a2
authored
Dec 06, 2023
by
H2T
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
根据需求文档,相似警情结果限制两小时内的警情
parent
125ff0a6
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
32 additions
and
13 deletions
+32
-13
ESAlertCalledService.java
...odule/elevator/biz/service/impl/ESAlertCalledService.java
+32
-13
No files found.
amos-boot-system-tzs/amos-boot-module-96333/amos-boot-module-96333-biz/src/main/java/com/yeejoin/amos/boot/module/elevator/biz/service/impl/ESAlertCalledService.java
View file @
ad0421a2
...
...
@@ -26,6 +26,8 @@ import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilde
import
org.springframework.stereotype.Service
;
import
org.typroject.tyboot.core.foundation.utils.ValidationUtil
;
import
java.time.Instant
;
import
java.time.temporal.ChronoUnit
;
import
java.util.Date
;
import
java.util.LinkedList
;
import
java.util.List
;
...
...
@@ -164,7 +166,10 @@ public class ESAlertCalledService {
boolMust
.
must
(
qbstatus
);
// 如果没有搜索条件不搜索
boolean
flag
=
true
;
// ①事发地点一致,或相距不超过200米的;&& ②警情类别一致;&& ③完成状态:未完成
// 获取当前的UTC时间戳和两小时前的时间戳
Instant
now
=
Instant
.
now
();
Instant
twoHoursBefore
=
now
.
minus
(
2
,
ChronoUnit
.
HOURS
);
// ①事发地点一致,或相距不超过200米的;&& ②警情类别一致; && ③报警时间:距离当前时间不超过两小时的
if
(!
ValidationUtil
.
isEmpty
(
alertCalled
.
getAddress
())
&&
!
ValidationUtil
.
isEmpty
(
alertCalled
.
getAlarmTypeCode
())
&&
!
ValidationUtil
.
isEmpty
(
alertCalled
.
getAlarmTypeCode
()))
{
flag
=
false
;
...
...
@@ -176,10 +181,14 @@ public class ESAlertCalledService {
BoolQueryBuilder
temp2
=
QueryBuilders
.
boolQuery
()
.
filter
(
QueryBuilders
.
matchQuery
(
"alarmTypeCode"
,
alertCalled
.
getAlarmTypeCode
()));
qb0
.
must
(
temp2
);
BoolQueryBuilder
temp3
=
QueryBuilders
.
boolQuery
()
.
filter
(
QueryBuilders
.
matchQuery
(
"alertStatusStr"
,
AlertStatusEnum
.
UNCLOSED
.
getCode
()));
qb0
.
must
(
temp3
);
// BoolQueryBuilder temp3 = QueryBuilders.boolQuery()
// .filter(QueryBuilders.matchQuery("alertStatusStr", AlertStatusEnum.UNCLOSED.getCode()));
// qb0.must(temp3);
BoolQueryBuilder
temp4
=
QueryBuilders
.
boolQuery
()
.
filter
(
QueryBuilders
.
rangeQuery
(
"callTimeLong"
)
.
gte
(
twoHoursBefore
.
toEpochMilli
())
.
lte
(
now
.
toEpochMilli
()));
qb0
.
must
(
temp4
);
boolMust
.
should
(
qb0
);
}
// 报警电话一致;
...
...
@@ -191,7 +200,7 @@ public class ESAlertCalledService {
tempQb
.
must
(
tempQb1
);
boolMust
.
should
(
tempQb
);
}
// 使用单位名称一致;&& ②警情类别一致;&& ③
完成状态:未完成
// 使用单位名称一致;&& ②警情类别一致;&& ③
报警时间:距离当前时间不超过两小时的
if
(!
ValidationUtil
.
isEmpty
(
alertCalled
.
getUseUnit
())
&&
!
ValidationUtil
.
isEmpty
(
alertCalled
.
getAlarmTypeCode
())
)
{
flag
=
false
;
BoolQueryBuilder
qb0
=
QueryBuilders
.
boolQuery
();
...
...
@@ -202,23 +211,33 @@ public class ESAlertCalledService {
BoolQueryBuilder
temp2
=
QueryBuilders
.
boolQuery
()
.
filter
(
QueryBuilders
.
termQuery
(
"alarmTypeCode.keyword"
,
alertCalled
.
getAlarmTypeCode
()));
qb0
.
must
(
temp2
);
BoolQueryBuilder
temp3
=
QueryBuilders
.
boolQuery
()
.
filter
(
QueryBuilders
.
matchQuery
(
"alertStatusStr"
,
AlertStatusEnum
.
UNCLOSED
.
getCode
()));
qb0
.
must
(
temp3
);
// BoolQueryBuilder temp3 = QueryBuilders.boolQuery()
// .filter(QueryBuilders.matchQuery("alertStatusStr", AlertStatusEnum.UNCLOSED.getCode()));
// qb0.must(temp3);
BoolQueryBuilder
temp4
=
QueryBuilders
.
boolQuery
()
.
filter
(
QueryBuilders
.
rangeQuery
(
"callTimeLong"
)
.
gte
(
twoHoursBefore
.
toEpochMilli
())
.
lte
(
now
.
toEpochMilli
()));
qb0
.
must
(
temp4
);
boolMust
.
should
(
qb0
);
}
// 电梯识别码一致;&& ③
完成状态:未完成
// 电梯识别码一致;&& ③
报警时间:距离当前时间不超过两小时的
if
(!
ValidationUtil
.
isEmpty
(
alertCalled
.
getDeviceId
()))
{
flag
=
false
;
BoolQueryBuilder
qb0
=
QueryBuilders
.
boolQuery
();
BoolQueryBuilder
temp
=
QueryBuilders
.
boolQuery
()
.
filter
(
QueryBuilders
.
termQuery
(
"deviceId.keyword"
,
alertCalled
.
getDeviceId
()));
qb0
.
must
(
temp
);
BoolQueryBuilder
temp2
=
QueryBuilders
.
boolQuery
()
.
filter
(
QueryBuilders
.
matchQuery
(
"alertStatusStr"
,
AlertStatusEnum
.
UNCLOSED
.
getCode
()));
qb0
.
must
(
temp2
);
// BoolQueryBuilder temp2 = QueryBuilders.boolQuery()
// .filter(QueryBuilders.matchQuery("alertStatusStr", AlertStatusEnum.UNCLOSED.getCode()));
// qb0.must(temp2);
BoolQueryBuilder
temp3
=
QueryBuilders
.
boolQuery
()
.
filter
(
QueryBuilders
.
rangeQuery
(
"callTimeLong"
)
.
gte
(
twoHoursBefore
.
toEpochMilli
())
.
lte
(
now
.
toEpochMilli
()));
qb0
.
must
(
temp3
);
boolMust
.
should
(
qb0
);
}
boolMust
.
minimumShouldMatch
(
1
);
//至少满足一个
...
...
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