Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
黄嘉阳
/
iot-platform-server
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
204b709d
authored
Dec 12, 2023
by
汪志阳
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
fix:bug处理
parent
687c91fb
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
19 additions
and
13 deletions
server-service/src/main/java/com/makeit/service/platform/alarm/alarmStrategy/OffBedAlarm.java
server-service/src/main/java/com/makeit/service/platform/alarm/alarmStrategy/OffBedAlarm.java
View file @
204b709d
...
@@ -96,17 +96,17 @@ public class OffBedAlarm implements IAlarm {
...
@@ -96,17 +96,17 @@ public class OffBedAlarm implements IAlarm {
String
personState
=
Convert
.
toStr
(
properties
.
get
(
"person"
));
String
personState
=
Convert
.
toStr
(
properties
.
get
(
"person"
));
boolean
isOffBed
=
"0"
.
equals
(
personState
);
boolean
isOffBed
=
"0"
.
equals
(
personState
);
// 1-有人 0-无人
// 1-有人 0-无人
log
.
info
(
"离床config:{}"
,
JSONUtil
.
toJsonStr
(
properties
));
log
.
info
(
"离床
告警
config:{}"
,
JSONUtil
.
toJsonStr
(
properties
));
AlarmRedisDTO
alarmRedisDTO
=
RedisUtil
.
get
(
RedisConst
.
ALARM_DEVICE_OFF_BED_ID
+
deviceId
);
AlarmRedisDTO
alarmRedisDTO
=
RedisUtil
.
get
(
RedisConst
.
ALARM_DEVICE_OFF_BED_ID
+
deviceId
);
if
(!
isOffBed
&&
alarmRedisDTO
!=
null
)
{
if
(!
isOffBed
&&
alarmRedisDTO
!=
null
)
{
log
.
info
(
"离床有人状态下,删除redis!"
);
log
.
info
(
"离床
告警
有人状态下,删除redis!"
);
RedisUtil
.
delete
(
RedisConst
.
ALARM_DEVICE_OFF_BED_ID
+
deviceId
);
RedisUtil
.
delete
(
RedisConst
.
ALARM_DEVICE_OFF_BED_ID
+
deviceId
);
return
;
return
;
}
}
// 设备无人,在范围内上报存储redis,超过离床持续时间,则预警
// 设备无人,在范围内上报存储redis,超过离床持续时间,则预警
String
messageType
=
platAlarmCheckDTO
.
getMessageType
();
String
messageType
=
platAlarmCheckDTO
.
getMessageType
();
if
(
StringUtils
.
equalsAnyIgnoreCase
(
messageType
,
"OFFLINE"
,
"DISCONNECT"
))
{
if
(
StringUtils
.
equalsAnyIgnoreCase
(
messageType
,
"OFFLINE"
,
"DISCONNECT"
))
{
log
.
info
(
"设备下线,删除redis off_bed 预警"
);
log
.
info
(
"
离床告警
设备下线,删除redis off_bed 预警"
);
RedisUtil
.
delete
(
RedisConst
.
ALARM_DEVICE_OFF_BED_ID
+
deviceId
);
RedisUtil
.
delete
(
RedisConst
.
ALARM_DEVICE_OFF_BED_ID
+
deviceId
);
}
}
if
(
isOffBed
)
{
if
(
isOffBed
)
{
...
@@ -118,17 +118,17 @@ public class OffBedAlarm implements IAlarm {
...
@@ -118,17 +118,17 @@ public class OffBedAlarm implements IAlarm {
Long
firstOffBedLong
=
alarmRedisDTO
.
getStartLong
();
Long
firstOffBedLong
=
alarmRedisDTO
.
getStartLong
();
boolean
isOverTime
=
(
localDateLong
-
firstOffBedLong
)
/
1000
>=
duration
*
60
;
boolean
isOverTime
=
(
localDateLong
-
firstOffBedLong
)
/
1000
>=
duration
*
60
;
LocalDateTime
firstOffBedTime
=
LocalDateTime
.
ofInstant
(
Instant
.
ofEpochMilli
(
firstOffBedLong
),
ZoneOffset
.
of
(
"+8"
));
LocalDateTime
firstOffBedTime
=
LocalDateTime
.
ofInstant
(
Instant
.
ofEpochMilli
(
firstOffBedLong
),
ZoneOffset
.
of
(
"+8"
));
log
.
info
(
"第一次离床时间为:"
+
firstOffBedTime
);
log
.
info
(
"
离床告警
第一次离床时间为:"
+
firstOffBedTime
);
if
(
"1"
.
equals
(
alarmRedisDTO
.
getAlarm
()))
{
if
(
"1"
.
equals
(
alarmRedisDTO
.
getAlarm
()))
{
log
.
info
(
"离床
预
警已发送预警过!"
);
log
.
info
(
"离床
告
警已发送预警过!"
);
return
;
return
;
}
}
// 第一次离床时间在范围前,则已范围开始时间起始算
// 第一次离床时间在范围前,则已范围开始时间起始算
if
(
firstOffBedTime
.
isBefore
(
startTime
))
{
if
(
firstOffBedTime
.
isBefore
(
startTime
))
{
boolean
over
=
(
Duration
.
between
(
LocalDateTime
.
now
(),
startTime
).
toMillis
(
))
/
1000
>=
duration
*
60
;
boolean
over
=
(
Math
.
abs
(
Duration
.
between
(
LocalDateTime
.
now
(),
startTime
).
toMillis
()
))
/
1000
>=
duration
*
60
;
if
(
over
)
{
if
(
over
)
{
platAlarmCheckDTO
.
setAbnormalValue
(
String
.
valueOf
(
localDateLong
-
firstOffBedLong
));
platAlarmCheckDTO
.
setAbnormalValue
(
String
.
valueOf
(
localDateLong
-
firstOffBedLong
));
log
.
info
(
"离床时间在范围前,发送预警"
);
log
.
info
(
"离床
告警离床
时间在范围前,发送预警"
);
noticeAlarm
(
alarmRedisDTO
,
platAlarmCheckDTO
,
deviceId
);
noticeAlarm
(
alarmRedisDTO
,
platAlarmCheckDTO
,
deviceId
);
return
;
return
;
}
}
...
@@ -140,13 +140,13 @@ public class OffBedAlarm implements IAlarm {
...
@@ -140,13 +140,13 @@ public class OffBedAlarm implements IAlarm {
boolean
isInRange
=
LocalDateTime
.
now
().
isAfter
(
startTime
)
&&
LocalDateTime
.
now
().
isBefore
(
endTime
);
boolean
isInRange
=
LocalDateTime
.
now
().
isAfter
(
startTime
)
&&
LocalDateTime
.
now
().
isBefore
(
endTime
);
if
(
isOffBedValid
&&
isInRange
&&
isOverTime
)
{
if
(
isOffBedValid
&&
isInRange
&&
isOverTime
)
{
platAlarmCheckDTO
.
setAbnormalValue
(
String
.
valueOf
(
localDateLong
-
firstOffBedLong
));
platAlarmCheckDTO
.
setAbnormalValue
(
String
.
valueOf
(
localDateLong
-
firstOffBedLong
));
log
.
info
(
"离床时间在范围时间内(小于范围结束时间-持续分钟)"
);
log
.
info
(
"离床
告警离床
时间在范围时间内(小于范围结束时间-持续分钟)"
);
noticeAlarm
(
alarmRedisDTO
,
platAlarmCheckDTO
,
deviceId
);
noticeAlarm
(
alarmRedisDTO
,
platAlarmCheckDTO
,
deviceId
);
return
;
return
;
}
}
if
(
firstOffBedTime
.
isAfter
(
endTime
))
{
if
(
firstOffBedTime
.
isAfter
(
endTime
))
{
log
.
info
(
"离床时间超出时间范围!"
);
log
.
info
(
"离床
告警离床
时间超出时间范围!"
);
}
}
}
}
...
@@ -185,6 +185,13 @@ public class OffBedAlarm implements IAlarm {
...
@@ -185,6 +185,13 @@ public class OffBedAlarm implements IAlarm {
// }
// }
}
}
public
static
void
main
(
String
[]
args
)
{
LocalDateTime
startTime
=
LocalDateTime
.
of
(
2023
,
12
,
12
,
15
,
43
);
boolean
over
=
(
Math
.
abs
(
Duration
.
between
(
LocalDateTime
.
now
(),
startTime
).
toMillis
()))
/
1000
>=
2
*
60
;
System
.
out
.
println
(
over
);
System
.
out
.
println
(
Duration
.
between
(
LocalDateTime
.
now
(),
startTime
).
toMillis
());
}
private
void
sendToRedis
(
AlarmRedisDTO
alarmRedisDTO
,
String
deviceId
)
{
private
void
sendToRedis
(
AlarmRedisDTO
alarmRedisDTO
,
String
deviceId
)
{
Date
now
=
new
Date
();
Date
now
=
new
Date
();
long
endLong
=
now
.
getTime
();
long
endLong
=
now
.
getTime
();
...
@@ -195,11 +202,11 @@ public class OffBedAlarm implements IAlarm {
...
@@ -195,11 +202,11 @@ public class OffBedAlarm implements IAlarm {
alarmRedisDTO
.
setStart
(
now
);
alarmRedisDTO
.
setStart
(
now
);
alarmRedisDTO
.
setStartLong
(
endLong
);
alarmRedisDTO
.
setStartLong
(
endLong
);
RedisUtil
.
set
(
RedisConst
.
ALARM_DEVICE_OFF_BED_ID
+
deviceId
,
alarmRedisDTO
);
RedisUtil
.
set
(
RedisConst
.
ALARM_DEVICE_OFF_BED_ID
+
deviceId
,
alarmRedisDTO
);
log
.
info
(
"离床设备存储redis,第一次上报时间:{},开始上报时间:{},是否上报:{}"
,
log
.
info
(
"离床
告警 离床
设备存储redis,第一次上报时间:{},开始上报时间:{},是否上报:{}"
,
getDateTime
(
alarmRedisDTO
.
getStartLong
()),
alarmRedisDTO
.
getStart
(),
alarmRedisDTO
.
getAlarm
());
getDateTime
(
alarmRedisDTO
.
getStartLong
()),
alarmRedisDTO
.
getStart
(),
alarmRedisDTO
.
getAlarm
());
}
else
{
}
else
{
alarmRedisDTO
.
setStart
(
now
);
alarmRedisDTO
.
setStart
(
now
);
log
.
info
(
"离床更新redis,第一次上报时间:{},更新时间:{},是否上报:{}"
,
log
.
info
(
"离床
告警离床
更新redis,第一次上报时间:{},更新时间:{},是否上报:{}"
,
getDateTime
(
alarmRedisDTO
.
getStartLong
()),
alarmRedisDTO
.
getStart
(),
alarmRedisDTO
.
getAlarm
());
getDateTime
(
alarmRedisDTO
.
getStartLong
()),
alarmRedisDTO
.
getStart
(),
alarmRedisDTO
.
getAlarm
());
RedisUtil
.
set
(
RedisConst
.
ALARM_DEVICE_OFF_BED_ID
+
deviceId
,
alarmRedisDTO
);
RedisUtil
.
set
(
RedisConst
.
ALARM_DEVICE_OFF_BED_ID
+
deviceId
,
alarmRedisDTO
);
}
}
...
@@ -210,7 +217,7 @@ public class OffBedAlarm implements IAlarm {
...
@@ -210,7 +217,7 @@ public class OffBedAlarm implements IAlarm {
alarmRedisDTO
.
setStart
(
new
Date
());
alarmRedisDTO
.
setStart
(
new
Date
());
alarmRedisDTO
.
setAlarm
(
CommonEnum
.
YES
.
getValue
());
alarmRedisDTO
.
setAlarm
(
CommonEnum
.
YES
.
getValue
());
RedisUtil
.
set
(
RedisConst
.
ALARM_DEVICE_OFF_BED_ID
+
deviceId
,
alarmRedisDTO
);
RedisUtil
.
set
(
RedisConst
.
ALARM_DEVICE_OFF_BED_ID
+
deviceId
,
alarmRedisDTO
);
log
.
info
(
"推送离床消息,第一次上报时间:{},开始上报时间:{},是否上报:{}"
,
log
.
info
(
"
离床告警
推送离床消息,第一次上报时间:{},开始上报时间:{},是否上报:{}"
,
getDateTime
(
alarmRedisDTO
.
getStartLong
()),
alarmRedisDTO
.
getStart
(),
alarmRedisDTO
.
getAlarm
());
getDateTime
(
alarmRedisDTO
.
getStartLong
()),
alarmRedisDTO
.
getStart
(),
alarmRedisDTO
.
getAlarm
());
}
}
...
@@ -241,7 +248,6 @@ public class OffBedAlarm implements IAlarm {
...
@@ -241,7 +248,6 @@ public class OffBedAlarm implements IAlarm {
PlatDevice
platDevice
=
platAlarmCheckDTO
.
getPlatDevice
();
PlatDevice
platDevice
=
platAlarmCheckDTO
.
getPlatDevice
();
platAlarmRecordService
.
getElderListByDeviceId
(
platAlarmCheckDTO
);
platAlarmRecordService
.
getElderListByDeviceId
(
platAlarmCheckDTO
);
List
<
PlatElder
>
platElderList
=
platAlarmCheckDTO
.
getPlatElderList
();
List
<
PlatElder
>
platElderList
=
platAlarmCheckDTO
.
getPlatElderList
();
log
.
info
(
"离床预警长者信息:{}"
,
JSONUtil
.
toJsonStr
(
platElderList
));
PlatAlarmConfig
config
=
platAlarmCheckDTO
.
getPlatAlarmConfig
();
PlatAlarmConfig
config
=
platAlarmCheckDTO
.
getPlatAlarmConfig
();
if
(
CommonEnum
.
NO
.
getValue
().
equals
(
config
.
getStatus
()))
{
if
(
CommonEnum
.
NO
.
getValue
().
equals
(
config
.
getStatus
()))
{
log
.
error
(
"离床告警配置为禁用,告警配置id:"
+
config
.
getId
());
log
.
error
(
"离床告警配置为禁用,告警配置id:"
+
config
.
getId
());
...
...
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