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
d48161c1
authored
Dec 20, 2023
by
汪志阳
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
fix:bug fix
parent
cb4d4438
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
15 additions
and
19 deletions
server-service/src/main/java/com/makeit/service/platform/alarm/alarmStrategy/OffBedAlarm.java
server-web/src/main/java/com/makeit/mqtt/PushCallback.java
server-service/src/main/java/com/makeit/service/platform/alarm/alarmStrategy/OffBedAlarm.java
View file @
d48161c1
...
@@ -11,7 +11,6 @@ import com.makeit.entity.platform.elder.PlatElder;
...
@@ -11,7 +11,6 @@ import com.makeit.entity.platform.elder.PlatElder;
import
com.makeit.enums.CommonEnum
;
import
com.makeit.enums.CommonEnum
;
import
com.makeit.enums.platform.alarm.PlatAlarmConfigEnum
;
import
com.makeit.enums.platform.alarm.PlatAlarmConfigEnum
;
import
com.makeit.enums.redis.RedisConst
;
import
com.makeit.enums.redis.RedisConst
;
import
com.makeit.service.platform.alarm.PlatAlarmConfigService
;
import
com.makeit.service.platform.alarm.PlatAlarmRecordService
;
import
com.makeit.service.platform.alarm.PlatAlarmRecordService
;
import
com.makeit.utils.AlarmConfigCacheUtil
;
import
com.makeit.utils.AlarmConfigCacheUtil
;
import
com.makeit.utils.AlarmRedisDTO
;
import
com.makeit.utils.AlarmRedisDTO
;
...
@@ -20,7 +19,6 @@ import com.makeit.utils.redis.RedisUtil;
...
@@ -20,7 +19,6 @@ import com.makeit.utils.redis.RedisUtil;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
...
@@ -38,8 +36,6 @@ public class OffBedAlarm implements IAlarm {
...
@@ -38,8 +36,6 @@ public class OffBedAlarm implements IAlarm {
private
final
PlatAlarmConfigEnum
.
AlarmTypeEnum
alarmTypeEnum
=
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
OFF_BED
;
private
final
PlatAlarmConfigEnum
.
AlarmTypeEnum
alarmTypeEnum
=
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
OFF_BED
;
@Resource
@Resource
private
AlarmConfigCacheUtil
alarmConfigCacheUtil
;
private
AlarmConfigCacheUtil
alarmConfigCacheUtil
;
@Autowired
private
PlatAlarmConfigService
platAlarmConfigService
;
@Override
@Override
public
boolean
support
(
String
alarmType
)
{
public
boolean
support
(
String
alarmType
)
{
...
@@ -53,9 +49,6 @@ public class OffBedAlarm implements IAlarm {
...
@@ -53,9 +49,6 @@ public class OffBedAlarm implements IAlarm {
*/
*/
@Override
@Override
public
void
checkConfig
(
PlatAlarmCheckDTO
platAlarmCheckDTO
)
{
public
void
checkConfig
(
PlatAlarmCheckDTO
platAlarmCheckDTO
)
{
if
(
1
==
1
)
{
return
;
}
PlatDevice
platDevice
=
platAlarmCheckDTO
.
getPlatDevice
();
PlatDevice
platDevice
=
platAlarmCheckDTO
.
getPlatDevice
();
platAlarmRecordService
.
getElderListByDeviceId
(
platAlarmCheckDTO
);
platAlarmRecordService
.
getElderListByDeviceId
(
platAlarmCheckDTO
);
log
.
info
(
"执行离床checkConfig方法:"
);
log
.
info
(
"执行离床checkConfig方法:"
);
...
@@ -65,7 +58,6 @@ public class OffBedAlarm implements IAlarm {
...
@@ -65,7 +58,6 @@ public class OffBedAlarm implements IAlarm {
return
;
return
;
}
}
PlatAlarmConfig
config
=
alarmConfigCacheUtil
.
get
(
platDevice
.
getOrgId
(),
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
OFF_BED
.
getValue
());
PlatAlarmConfig
config
=
alarmConfigCacheUtil
.
get
(
platDevice
.
getOrgId
(),
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
OFF_BED
.
getValue
());
// log.info("当前config:{},dto config:{}", config.getRuleConfig(), platAlarmCheckDTO.getPlatAlarmConfig().getRuleConfig());
offBedCheckAlarm
(
config
,
platAlarmCheckDTO
,
platDevice
);
offBedCheckAlarm
(
config
,
platAlarmCheckDTO
,
platDevice
);
}
}
...
@@ -114,7 +106,7 @@ public class OffBedAlarm implements IAlarm {
...
@@ -114,7 +106,7 @@ public class OffBedAlarm implements IAlarm {
boolean
isOffBed
=
"0"
.
equals
(
personState
);
boolean
isOffBed
=
"0"
.
equals
(
personState
);
// 1-有人 0-无人
// 1-有人 0-无人
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
(
"1"
.
equals
(
personState
)
)
{
log
.
info
(
"deviceId:{},离床告警有人状态下,删除redis"
,
deviceId
);
log
.
info
(
"deviceId:{},离床告警有人状态下,删除redis"
,
deviceId
);
RedisUtil
.
delete
(
RedisConst
.
ALARM_DEVICE_OFF_BED_ID
+
deviceId
);
RedisUtil
.
delete
(
RedisConst
.
ALARM_DEVICE_OFF_BED_ID
+
deviceId
);
return
;
return
;
...
@@ -126,7 +118,10 @@ public class OffBedAlarm implements IAlarm {
...
@@ -126,7 +118,10 @@ public class OffBedAlarm implements IAlarm {
}
}
if
(
isOffBed
)
{
if
(
isOffBed
)
{
// 离床推送redis
// 离床推送redis
sendToRedis
(
alarmRedisDTO
,
deviceId
);
if
(
sendToRedis
(
alarmRedisDTO
,
deviceId
))
{
//第一次离床
return
;
}
alarmRedisDTO
=
RedisUtil
.
get
(
RedisConst
.
ALARM_DEVICE_OFF_BED_ID
+
deviceId
);
alarmRedisDTO
=
RedisUtil
.
get
(
RedisConst
.
ALARM_DEVICE_OFF_BED_ID
+
deviceId
);
...
@@ -168,12 +163,18 @@ public class OffBedAlarm implements IAlarm {
...
@@ -168,12 +163,18 @@ public class OffBedAlarm implements IAlarm {
LocalTime
firstTime
=
longToTime
(
firstOffBedLong
).
toLocalTime
();
LocalTime
firstTime
=
longToTime
(
firstOffBedLong
).
toLocalTime
();
boolean
isInTime
=
firstTime
.
isAfter
(
startTime
)
||
firstTime
.
isBefore
(
endTime
);
boolean
isInTime
=
firstTime
.
isAfter
(
startTime
)
||
firstTime
.
isBefore
(
endTime
);
//
LocalTime endTimeLimit = endTime.plusMinutes(-duration);
LocalTime
endTimeLimit
=
endTime
.
plusMinutes
(-
duration
);
// 离床时间在范围内
// 离床时间在范围内
if
(
isInTime
&&
isOverTime
)
{
if
(
isInTime
&&
isOverTime
)
{
// 离床时间为23:00-1:00 持续时间5分钟 ,第一次离床为0:55,满足条件的时间>1:00,不预警
if
(
firstTime
.
isAfter
(
endTimeLimit
)
&&
firstTime
.
isBefore
(
endTime
))
{
log
.
info
(
"deviceId:{},UnCrossDay第一次离床时间,{}+持续时间:{}将超过范围,{}"
,
deviceId
,
firstTime
,
duration
,
endTime
);
return
;
}
platAlarmCheckDTO
.
setAbnormalValue
(
String
.
valueOf
(
currentTimeMillis
-
firstOffBedLong
));
platAlarmCheckDTO
.
setAbnormalValue
(
String
.
valueOf
(
currentTimeMillis
-
firstOffBedLong
));
log
.
info
(
"deviceId:{},cross离床告警离床时间在范围时间内,配置:{}"
,
deviceId
,
config
.
getRuleConfig
());
log
.
info
(
"deviceId:{},cross离床告警离床时间在范围时间内,配置:{}"
,
deviceId
,
config
.
getRuleConfig
());
platAlarmCheckDTO
.
setPlatAlarmConfig
(
config
);
platAlarmCheckDTO
.
setPlatAlarmConfig
(
config
);
// platAlarmCheckDTO.setAlarmRecordId(IdWorker.getIdStr(PlatAlarmRecord.class));
noticeAlarm
(
alarmRedisDTO
,
platAlarmCheckDTO
,
deviceId
);
noticeAlarm
(
alarmRedisDTO
,
platAlarmCheckDTO
,
deviceId
);
return
;
return
;
}
}
...
@@ -255,7 +256,7 @@ public class OffBedAlarm implements IAlarm {
...
@@ -255,7 +256,7 @@ public class OffBedAlarm implements IAlarm {
}
}
}
}
private
void
sendToRedis
(
AlarmRedisDTO
alarmRedisDTO
,
String
deviceId
)
{
private
boolean
sendToRedis
(
AlarmRedisDTO
alarmRedisDTO
,
String
deviceId
)
{
Date
now
=
toDate
();
Date
now
=
toDate
();
// 第一次上报
// 第一次上报
if
(
alarmRedisDTO
==
null
)
{
if
(
alarmRedisDTO
==
null
)
{
...
@@ -264,9 +265,11 @@ public class OffBedAlarm implements IAlarm {
...
@@ -264,9 +265,11 @@ public class OffBedAlarm implements IAlarm {
alarmRedisDTO
.
setStart
(
now
);
alarmRedisDTO
.
setStart
(
now
);
alarmRedisDTO
.
setStartLong
(
currentLong
());
alarmRedisDTO
.
setStartLong
(
currentLong
());
RedisUtil
.
set
(
RedisConst
.
ALARM_DEVICE_OFF_BED_ID
+
deviceId
,
alarmRedisDTO
);
RedisUtil
.
set
(
RedisConst
.
ALARM_DEVICE_OFF_BED_ID
+
deviceId
,
alarmRedisDTO
);
return
true
;
}
else
{
}
else
{
alarmRedisDTO
.
setStart
(
now
);
alarmRedisDTO
.
setStart
(
now
);
RedisUtil
.
set
(
RedisConst
.
ALARM_DEVICE_OFF_BED_ID
+
deviceId
,
alarmRedisDTO
);
RedisUtil
.
set
(
RedisConst
.
ALARM_DEVICE_OFF_BED_ID
+
deviceId
,
alarmRedisDTO
);
return
false
;
}
}
}
}
...
...
server-web/src/main/java/com/makeit/mqtt/PushCallback.java
View file @
d48161c1
package
com
.
makeit
.
mqtt
;
package
com
.
makeit
.
mqtt
;
import
cn.hutool.core.collection.CollUtil
;
import
cn.hutool.json.JSONUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
...
@@ -39,7 +37,6 @@ import java.util.List;
...
@@ -39,7 +37,6 @@ import java.util.List;
import
java.util.Objects
;
import
java.util.Objects
;
import
java.util.concurrent.CompletableFuture
;
import
java.util.concurrent.CompletableFuture
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.TimeUnit
;
import
java.util.stream.Collectors
;
@Component
@Component
...
@@ -206,10 +203,6 @@ public class PushCallback implements MqttCallback {
...
@@ -206,10 +203,6 @@ public class PushCallback implements MqttCallback {
logger
.
error
(
"该设备没有告警配置,设备iot-id,iot_tenantId:"
+
deviceId
+
","
+
iot_tenantId
);
logger
.
error
(
"该设备没有告警配置,设备iot-id,iot_tenantId:"
+
deviceId
+
","
+
iot_tenantId
);
return
;
return
;
}
}
List
<
PlatAlarmConfig
>
configList
=
deviceAlarmConfigList
.
stream
().
filter
(
f
->
"5"
.
equals
(
f
.
getAlarmType
())).
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isNotEmpty
(
configList
))
{
logger
.
info
(
"离床预警config集合:{}"
,
JSONUtil
.
toJsonStr
(
configList
));
}
for
(
PlatAlarmConfig
config
:
deviceAlarmConfigList
)
{
for
(
PlatAlarmConfig
config
:
deviceAlarmConfigList
)
{
String
alarmType
=
config
.
getAlarmType
();
String
alarmType
=
config
.
getAlarmType
();
...
...
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