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
b04680a3
authored
Oct 10, 2023
by
李小龙
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
fix: 跌倒雷达需要记录 停留时长
parent
baa834f9
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
198 additions
and
60 deletions
server-service/src/main/java/com/makeit/service/platform/alarm/PlatDayDurationRecordService.java
server-service/src/main/java/com/makeit/service/platform/alarm/alarmStrategy/BehaviorAlarm.java
server-service/src/main/java/com/makeit/service/platform/alarm/alarmStrategy/FallAlarm.java
server-service/src/main/java/com/makeit/service/platform/alarm/impl/PlatAlarmRecordServiceImpl.java
server-service/src/main/java/com/makeit/service/platform/alarm/impl/PlatDayDurationRecordServiceImpl.java
server-service/src/main/java/com/makeit/service/platform/alarm/PlatDayDurationRecordService.java
View file @
b04680a3
...
@@ -2,17 +2,23 @@ package com.makeit.service.platform.alarm;
...
@@ -2,17 +2,23 @@ package com.makeit.service.platform.alarm;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.baomidou.mybatisplus.extension.service.IService
;
import
com.makeit.dto.platform.alarm.PlatAlarmCheckDTO
;
import
com.makeit.dto.platform.alarm.PlatDayDurationRecordDTO
;
import
com.makeit.dto.platform.alarm.PlatDayDurationRecordDTO
;
import
com.makeit.entity.platform.alarm.PlatDayDurationRecord
;
import
com.makeit.entity.platform.alarm.PlatDayDurationRecord
;
import
com.makeit.utils.AlarmRedisDTO
;
import
java.util.List
;
import
java.util.List
;
/**
/**
* @author lixl
* @author lixl
* @description 针对表【plat_day_duration_record(每天停留时长记录)】的数据库操作Service
* @description 针对表【plat_day_duration_record(每天停留时长记录)】的数据库操作Service
* @createDate 2023-09-14 10:14:20
* @createDate 2023-09-14 10:14:20
*/
*/
public
interface
PlatDayDurationRecordService
extends
IService
<
PlatDayDurationRecord
>
{
public
interface
PlatDayDurationRecordService
extends
IService
<
PlatDayDurationRecord
>
{
List
<
PlatDayDurationRecord
>
getDayMaxDurationList
(
PlatDayDurationRecordDTO
param
);
List
<
PlatDayDurationRecord
>
getDayMaxDurationList
(
PlatDayDurationRecordDTO
param
);
void
saveDayDurationRecord
(
PlatAlarmCheckDTO
platAlarmCheckDTO
,
AlarmRedisDTO
alarmRedisDTO
);
}
}
server-service/src/main/java/com/makeit/service/platform/alarm/alarmStrategy/BehaviorAlarm.java
View file @
b04680a3
...
@@ -127,57 +127,11 @@ public class BehaviorAlarm implements IAlarm {
...
@@ -127,57 +127,11 @@ public class BehaviorAlarm implements IAlarm {
return
;
return
;
}
}
//保存每次进入空间时长
//保存每次进入空间时长
saveDayDurationRecord
(
platAlarmCheckDTO
,
alarmRedisDTO
);
platDayDurationRecordService
.
saveDayDurationRecord
(
platAlarmCheckDTO
,
alarmRedisDTO
);
RedisUtil
.
delete
(
RedisConst
.
ALARM_DEVICE_BEHAVIOR_ID
+
deviceId
);
RedisUtil
.
delete
(
RedisConst
.
ALARM_DEVICE_BEHAVIOR_ID
+
deviceId
);
}
}
}
}
/**
* 保存停留时长记录
* 进入雷达开始
* 走出雷达结束
*
* @param platAlarmCheckDTO
* @param alarmRedisDTO
*/
private
void
saveDayDurationRecord
(
PlatAlarmCheckDTO
platAlarmCheckDTO
,
AlarmRedisDTO
alarmRedisDTO
)
{
PlatAlarmConfig
config
=
platAlarmCheckDTO
.
getPlatAlarmConfig
();
PlatDevice
platDevice
=
platAlarmCheckDTO
.
getPlatDevice
();
Date
now
=
new
Date
();
long
endLong
=
now
.
getTime
();
long
count
=
endLong
-
alarmRedisDTO
.
getStartLong
();
//save db
platAlarmRecordService
.
getElderListByDeviceId
(
platAlarmCheckDTO
);
if
(
CollectionUtils
.
isEmpty
(
platAlarmCheckDTO
.
getPlatElderList
())){
log
.
error
(
"未关联长者,设备id:"
+
platDevice
.
getId
());
return
;
}
List
<
PlatElder
>
platElderList
=
platAlarmCheckDTO
.
getPlatElderList
();
if
(
CollectionUtils
.
isNotEmpty
(
platElderList
)){
platAlarmRecordService
.
getElderListByDeviceId
(
platAlarmCheckDTO
);
platElderList
=
platAlarmCheckDTO
.
getPlatElderList
();
}
for
(
PlatElder
platElder
:
platElderList
)
{
if
(
StringUtils
.
isBlank
(
platElder
.
getRegionName
())){
continue
;
}
PlatDayDurationRecord
durationRecord
=
new
PlatDayDurationRecord
();
durationRecord
.
setElderIds
(
platElder
.
getId
());
durationRecord
.
setRegionName
(
platElder
.
getRegionName
());
durationRecord
.
setDuration
(
count
);
durationRecord
.
setOriDeviceId
(
platDevice
.
getOriDeviceId
());
durationRecord
.
setDay
(
alarmRedisDTO
.
getStart
());
durationRecord
.
setStartDate
(
alarmRedisDTO
.
getStart
());
durationRecord
.
setEndDate
(
now
);
durationRecord
.
setTenantId
(
config
.
getTenantId
());
durationRecord
.
setRoomId
(
platElder
.
getRoomId
());
durationRecord
.
setDeviceId
(
platDevice
.
getId
());
platDayDurationRecordService
.
saveOrUpdate
(
durationRecord
);
}
}
@Override
@Override
public
void
notice
(
PlatAlarmCheckDTO
platAlarmCheckDTO
)
{
public
void
notice
(
PlatAlarmCheckDTO
platAlarmCheckDTO
)
{
...
...
server-service/src/main/java/com/makeit/service/platform/alarm/alarmStrategy/FallAlarm.java
View file @
b04680a3
...
@@ -3,7 +3,10 @@ package com.makeit.service.platform.alarm.alarmStrategy;
...
@@ -3,7 +3,10 @@ package com.makeit.service.platform.alarm.alarmStrategy;
import
cn.hutool.core.convert.Convert
;
import
cn.hutool.core.convert.Convert
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.makeit.dto.platform.alarm.PlatAlarmCheckDTO
;
import
com.makeit.dto.platform.alarm.PlatAlarmCheckDTO
;
import
com.makeit.dto.platform.alarm.PlatAlarmConfigBehaviorDTOVO
;
import
com.makeit.entity.platform.alarm.PlatAlarmConfig
;
import
com.makeit.entity.platform.alarm.PlatAlarmRecord
;
import
com.makeit.entity.platform.alarm.PlatAlarmRecord
;
import
com.makeit.entity.platform.alarm.PlatDayDurationRecord
;
import
com.makeit.entity.platform.device.PlatDevice
;
import
com.makeit.entity.platform.device.PlatDevice
;
import
com.makeit.entity.platform.elder.PlatElder
;
import
com.makeit.entity.platform.elder.PlatElder
;
import
com.makeit.entity.platform.space.PlatRoom
;
import
com.makeit.entity.platform.space.PlatRoom
;
...
@@ -11,7 +14,11 @@ import com.makeit.enums.CommonEnum;
...
@@ -11,7 +14,11 @@ 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.PlatAlarmRecordService
;
import
com.makeit.service.platform.alarm.PlatAlarmRecordService
;
import
com.makeit.service.platform.alarm.PlatDayDurationRecordService
;
import
com.makeit.utils.AlarmConfigCacheUtil
;
import
com.makeit.utils.AlarmRedisDTO
;
import
com.makeit.utils.AlarmRedisDTO
;
import
com.makeit.utils.DayDurationUtil
;
import
com.makeit.utils.data.convert.JsonUtil
;
import
com.makeit.utils.redis.RedisUtil
;
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
;
...
@@ -20,6 +27,8 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -20,6 +27,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
@Component
@Component
...
@@ -28,6 +37,15 @@ public class FallAlarm implements IAlarm {
...
@@ -28,6 +37,15 @@ public class FallAlarm implements IAlarm {
@Autowired
@Autowired
private
PlatAlarmRecordService
platAlarmRecordService
;
private
PlatAlarmRecordService
platAlarmRecordService
;
@Autowired
private
PlatDayDurationRecordService
platDayDurationRecordService
;
@Autowired
private
AlarmConfigCacheUtil
alarmConfigCacheUtil
;
@Autowired
private
DayDurationUtil
dayDurationUtil
;
private
final
PlatAlarmConfigEnum
.
AlarmTypeEnum
alarmTypeEnum
=
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
FALL
;
private
final
PlatAlarmConfigEnum
.
AlarmTypeEnum
alarmTypeEnum
=
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
FALL
;
@Override
@Override
...
@@ -46,25 +64,106 @@ public class FallAlarm implements IAlarm {
...
@@ -46,25 +64,106 @@ public class FallAlarm implements IAlarm {
PlatDevice
platDevice
=
platAlarmCheckDTO
.
getPlatDevice
();
PlatDevice
platDevice
=
platAlarmCheckDTO
.
getPlatDevice
();
String
deviceId
=
platDevice
.
getId
();
String
deviceId
=
platDevice
.
getId
();
String
personState
=
Convert
.
toStr
(
properties
.
get
(
"personState"
));
String
personState
=
Convert
.
toStr
(
properties
.
get
(
"personState"
));
//记录停留时长
recordDuration
(
platAlarmCheckDTO
);
//跌倒告警
AlarmRedisDTO
alarmRedisDTO
=
RedisUtil
.
get
(
RedisConst
.
ALARM_DEVICE_FALL_ID
+
deviceId
);
AlarmRedisDTO
alarmRedisDTO
=
RedisUtil
.
get
(
RedisConst
.
ALARM_DEVICE_FALL_ID
+
deviceId
);
if
(
alarmRedisDTO
==
null
)
{
if
(
alarmRedisDTO
==
null
)
{
alarmRedisDTO
=
new
AlarmRedisDTO
();
alarmRedisDTO
=
new
AlarmRedisDTO
();
alarmRedisDTO
.
setAlarm
(
CommonEnum
.
NO
.
getValue
());
alarmRedisDTO
.
setAlarm
(
CommonEnum
.
NO
.
getValue
());
RedisUtil
.
set
(
RedisConst
.
ALARM_DEVICE_FALL_ID
+
deviceId
,
alarmRedisDTO
);
RedisUtil
.
set
(
RedisConst
.
ALARM_DEVICE_FALL_ID
+
deviceId
,
alarmRedisDTO
);
}
}
if
(
StringUtils
.
equals
(
personState
,
CommonEnum
.
YES
.
getValue
()))
{
if
(
StringUtils
.
equals
(
personState
,
CommonEnum
.
YES
.
getValue
()))
{
if
(
StringUtils
.
equals
(
alarmRedisDTO
.
getAlarm
(),
CommonEnum
.
YES
.
getValue
()))
{
if
(
StringUtils
.
equals
(
alarmRedisDTO
.
getAlarm
(),
CommonEnum
.
YES
.
getValue
()))
{
log
.
error
(
"长者跌倒,已告警过,设备plat_id:"
+
deviceId
);
log
.
error
(
"长者跌倒,已告警过,设备plat_id:"
+
deviceId
);
return
;
return
;
}
}
alarmRedisDTO
.
setAlarm
(
CommonEnum
.
YES
.
getValue
());
alarmRedisDTO
.
setAlarm
(
CommonEnum
.
YES
.
getValue
());
RedisUtil
.
set
(
RedisConst
.
ALARM_DEVICE_FALL_ID
+
deviceId
,
alarmRedisDTO
);
RedisUtil
.
set
(
RedisConst
.
ALARM_DEVICE_FALL_ID
+
deviceId
,
alarmRedisDTO
);
notice
(
platAlarmCheckDTO
);
notice
(
platAlarmCheckDTO
);
}
else
{
}
else
{
if
(
StringUtils
.
equals
(
alarmRedisDTO
.
getAlarm
(),
CommonEnum
.
YES
.
getValue
()))
{
if
(
StringUtils
.
equals
(
alarmRedisDTO
.
getAlarm
(),
CommonEnum
.
YES
.
getValue
()))
{
alarmRedisDTO
.
setAlarm
(
CommonEnum
.
NO
.
getValue
());
alarmRedisDTO
.
setAlarm
(
CommonEnum
.
NO
.
getValue
());
RedisUtil
.
set
(
RedisConst
.
ALARM_DEVICE_FALL_ID
+
deviceId
,
alarmRedisDTO
);
RedisUtil
.
set
(
RedisConst
.
ALARM_DEVICE_FALL_ID
+
deviceId
,
alarmRedisDTO
);
}
}
}
private
void
recordDuration
(
PlatAlarmCheckDTO
platAlarmCheckDTO
)
{
PlatDevice
platDevice
=
platAlarmCheckDTO
.
getPlatDevice
();
PlatAlarmConfig
config
=
alarmConfigCacheUtil
.
get
(
platDevice
.
getOrgId
(),
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
BEHAVIOR
.
getValue
());
String
ruleConfigStr
=
config
.
getRuleConfig
();
JSONObject
properties
=
platAlarmCheckDTO
.
getProperties
();
String
deviceId
=
platDevice
.
getId
();
if
(
StringUtils
.
isBlank
(
ruleConfigStr
))
{
log
.
error
(
"行为告警配置未配置,告警配置id:"
+
config
.
getId
());
return
;
}
String
personState
=
Convert
.
toStr
(
properties
.
get
(
"personState"
));
String
person
=
Convert
.
toStr
(
properties
.
get
(
"person"
));
PlatAlarmConfigBehaviorDTOVO
ruleConfig
=
JsonUtil
.
toObj
(
ruleConfigStr
,
PlatAlarmConfigBehaviorDTOVO
.
class
);
Integer
duration
=
ruleConfig
.
getAverageDuration
();
//分钟
PlatDayDurationRecord
platDayDurationRecord
=
dayDurationUtil
.
get
(
deviceId
);
// if (platDayDurationRecord == null) {
// log.error("行为告警未找到行为异常平均时长,设备plat_id:" + platDevice.getId());
// return;
// }
Integer
duration1
=
0
;
if
(
platDayDurationRecord
!=
null
)
{
duration1
=
Math
.
toIntExact
(
platDayDurationRecord
.
getDuration
());
}
//duration+平均停留时长
if
(
duration
==
null
)
{
duration
=
0
;
}
else
{
duration
=
duration
*
60
+
(
duration1
/
1000
);
}
List
<
String
>
personStateList
=
Arrays
.
asList
(
"0"
);
//有人
//计数
Date
now
=
new
Date
();
long
endLong
=
now
.
getTime
();
AlarmRedisDTO
alarmRedisDTO
=
RedisUtil
.
get
(
RedisConst
.
ALARM_DEVICE_BEHAVIOR_ID
+
deviceId
);
if
(
alarmRedisDTO
==
null
)
{
alarmRedisDTO
=
new
AlarmRedisDTO
();
}
//有人
if
(!
personStateList
.
contains
(
person
))
{
//第一次进入空间
Long
startLong
=
alarmRedisDTO
.
getStartLong
();
if
(
startLong
==
null
)
{
alarmRedisDTO
.
setStartLong
(
endLong
);
alarmRedisDTO
.
setStart
(
now
);
RedisUtil
.
set
(
RedisConst
.
ALARM_DEVICE_BEHAVIOR_ID
+
deviceId
,
alarmRedisDTO
);
log
.
error
(
"空间雷达上报进入房间,设备plat_id:"
+
platDevice
.
getId
());
return
;
}
long
count
=
endLong
-
startLong
;
//进入空间时间满足告警时长,判断是否已经告警过了
if
(
duration
!=
0
&&
count
/
1000
>=
duration
&&
StringUtils
.
equals
(
alarmRedisDTO
.
getAlarm
(),
CommonEnum
.
NO
.
getValue
()))
{
log
.
error
(
"空间雷达发出告警,设备plat_id:"
+
platDevice
.
getId
());
if
(
duration1
!=
0
)
{
alarmRedisDTO
.
setAlarm
(
CommonEnum
.
YES
.
getValue
());
RedisUtil
.
set
(
RedisConst
.
ALARM_DEVICE_BEHAVIOR_ID
+
deviceId
,
alarmRedisDTO
);
notice
(
platAlarmCheckDTO
);
}
else
{
return
;
}
}
}
else
{
//没人
// 是否有第一次进入记录,有则保存db
Long
startLong
=
alarmRedisDTO
.
getStartLong
();
if
(
startLong
==
null
)
{
return
;
}
}
//保存每次进入空间时长
platDayDurationRecordService
.
saveDayDurationRecord
(
platAlarmCheckDTO
,
alarmRedisDTO
);
RedisUtil
.
delete
(
RedisConst
.
ALARM_DEVICE_BEHAVIOR_ID
+
deviceId
);
}
}
}
}
...
@@ -83,11 +182,11 @@ public class FallAlarm implements IAlarm {
...
@@ -83,11 +182,11 @@ public class FallAlarm implements IAlarm {
param
.
add
(
platElder
.
getName
());
param
.
add
(
platElder
.
getName
());
param
.
add
(
platRoom
.
getName
());
param
.
add
(
platRoom
.
getName
());
platAlarmCheckDTO
.
setParam
(
param
);
platAlarmCheckDTO
.
setParam
(
param
);
PlatAlarmRecord
platAlarmRecord
=
platAlarmRecordService
.
convertToPlatAlarmRecord
(
platAlarmCheckDTO
,
platElder
);
PlatAlarmRecord
platAlarmRecord
=
platAlarmRecordService
.
convertToPlatAlarmRecord
(
platAlarmCheckDTO
,
platElder
);
platAlarmRecord
.
setElderIds
(
platElder
.
getId
());
platAlarmRecord
.
setElderIds
(
platElder
.
getId
());
platAlarmRecord
.
setElderName
(
platElder
.
getName
());
platAlarmRecord
.
setElderName
(
platElder
.
getName
());
platAlarmRecordService
.
noticeDeviceAlarm
(
platAlarmCheckDTO
.
getPlatAlarmConfig
(),
platAlarmRecord
);
platAlarmRecordService
.
noticeDeviceAlarm
(
platAlarmCheckDTO
.
getPlatAlarmConfig
(),
platAlarmRecord
);
log
.
error
(
"长者跌倒,发出告警,设备id:"
+
platDevice
.
getId
()+
", 长者名称:"
+
platElder
.
getName
());
log
.
error
(
"长者跌倒,发出告警,设备id:"
+
platDevice
.
getId
()
+
", 长者名称:"
+
platElder
.
getName
());
}
}
}
}
}
}
server-service/src/main/java/com/makeit/service/platform/alarm/impl/PlatAlarmRecordServiceImpl.java
View file @
b04680a3
...
@@ -21,6 +21,7 @@ import com.makeit.entity.platform.elder.PlatElderChildrenInfo;
...
@@ -21,6 +21,7 @@ import com.makeit.entity.platform.elder.PlatElderChildrenInfo;
import
com.makeit.entity.platform.space.PlatRegionSetting
;
import
com.makeit.entity.platform.space.PlatRegionSetting
;
import
com.makeit.entity.platform.space.PlatRoom
;
import
com.makeit.entity.platform.space.PlatRoom
;
import
com.makeit.entity.platform.space.PlatRoomBedDevice
;
import
com.makeit.entity.platform.space.PlatRoomBedDevice
;
import
com.makeit.entity.saas.PlatTenant
;
import
com.makeit.enums.CommonEnum
;
import
com.makeit.enums.CommonEnum
;
import
com.makeit.exception.BusinessException
;
import
com.makeit.exception.BusinessException
;
import
com.makeit.global.aspect.tenant.TenantIdIgnore
;
import
com.makeit.global.aspect.tenant.TenantIdIgnore
;
...
@@ -33,6 +34,7 @@ import com.makeit.service.platform.elder.PlatElderService;
...
@@ -33,6 +34,7 @@ import com.makeit.service.platform.elder.PlatElderService;
import
com.makeit.service.platform.space.PlatRegionSettingService
;
import
com.makeit.service.platform.space.PlatRegionSettingService
;
import
com.makeit.service.platform.space.PlatRoomBedDeviceService
;
import
com.makeit.service.platform.space.PlatRoomBedDeviceService
;
import
com.makeit.service.platform.space.PlatRoomService
;
import
com.makeit.service.platform.space.PlatRoomService
;
import
com.makeit.service.saas.PlatTenantService
;
import
com.makeit.utils.data.convert.BeanDtoVoUtils
;
import
com.makeit.utils.data.convert.BeanDtoVoUtils
;
import
com.makeit.utils.data.convert.PageUtil
;
import
com.makeit.utils.data.convert.PageUtil
;
import
com.makeit.utils.msg.MsgSendUtil
;
import
com.makeit.utils.msg.MsgSendUtil
;
...
@@ -89,6 +91,8 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
...
@@ -89,6 +91,8 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
private
PlatRoomService
platRoomService
;
private
PlatRoomService
platRoomService
;
@Autowired
@Autowired
private
PlatRegionSettingService
platRegionSettingService
;
private
PlatRegionSettingService
platRegionSettingService
;
@Autowired
private
PlatTenantService
platTenantService
;
@Override
@Override
...
@@ -315,8 +319,22 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
...
@@ -315,8 +319,22 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
if
(
StringUtils
.
isEmpty
(
notifyChannel
)){
if
(
StringUtils
.
isEmpty
(
notifyChannel
)){
return
;
return
;
}
}
PlatTenant
platTenant
=
platTenantService
.
getById
(
alarmConfig
.
getTenantId
());
if
(
platTenant
==
null
){
return
;
}
String
alertChannel
=
platTenant
.
getAlertChannel
();
if
(
StringUtils
.
isBlank
(
alertChannel
)){
return
;
}
String
[]
tenantChannels
=
alertChannel
.
split
(
","
);
List
<
String
>
tenantChannelList
=
Arrays
.
asList
(
tenantChannels
);
String
[]
split
=
notifyChannel
.
split
(
","
);
String
[]
split
=
notifyChannel
.
split
(
","
);
for
(
String
sendType
:
split
)
{
for
(
String
sendType
:
split
)
{
//租户告警渠道 没配置的 就不发送
if
(!
tenantChannelList
.
contains
(
sendType
)){
continue
;
}
SendTypeEnum
sendTypeEnum
=
SendTypeEnum
.
getByValue
(
sendType
);
SendTypeEnum
sendTypeEnum
=
SendTypeEnum
.
getByValue
(
sendType
);
boolean
contains
=
notifyChannelList
.
contains
(
sendTypeEnum
);
boolean
contains
=
notifyChannelList
.
contains
(
sendTypeEnum
);
if
(
contains
)
{
if
(
contains
)
{
...
...
server-service/src/main/java/com/makeit/service/platform/alarm/impl/PlatDayDurationRecordServiceImpl.java
View file @
b04680a3
...
@@ -2,12 +2,22 @@ package com.makeit.service.platform.alarm.impl;
...
@@ -2,12 +2,22 @@ package com.makeit.service.platform.alarm.impl;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.makeit.dto.platform.alarm.PlatAlarmCheckDTO
;
import
com.makeit.dto.platform.alarm.PlatDayDurationRecordDTO
;
import
com.makeit.dto.platform.alarm.PlatDayDurationRecordDTO
;
import
com.makeit.entity.platform.alarm.PlatAlarmConfig
;
import
com.makeit.entity.platform.alarm.PlatDayDurationRecord
;
import
com.makeit.entity.platform.alarm.PlatDayDurationRecord
;
import
com.makeit.entity.platform.device.PlatDevice
;
import
com.makeit.entity.platform.elder.PlatElder
;
import
com.makeit.mapper.platform.alarm.PlatDayDurationRecordMapper
;
import
com.makeit.mapper.platform.alarm.PlatDayDurationRecordMapper
;
import
com.makeit.service.platform.alarm.PlatAlarmRecordService
;
import
com.makeit.service.platform.alarm.PlatDayDurationRecordService
;
import
com.makeit.service.platform.alarm.PlatDayDurationRecordService
;
import
com.makeit.utils.AlarmRedisDTO
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.List
;
/**
/**
...
@@ -19,8 +29,59 @@ import java.util.List;
...
@@ -19,8 +29,59 @@ import java.util.List;
public
class
PlatDayDurationRecordServiceImpl
extends
ServiceImpl
<
PlatDayDurationRecordMapper
,
PlatDayDurationRecord
>
public
class
PlatDayDurationRecordServiceImpl
extends
ServiceImpl
<
PlatDayDurationRecordMapper
,
PlatDayDurationRecord
>
implements
PlatDayDurationRecordService
{
implements
PlatDayDurationRecordService
{
@Autowired
private
PlatAlarmRecordService
platAlarmRecordService
;
@Override
@Override
public
List
<
PlatDayDurationRecord
>
getDayMaxDurationList
(
PlatDayDurationRecordDTO
param
){
public
List
<
PlatDayDurationRecord
>
getDayMaxDurationList
(
PlatDayDurationRecordDTO
param
){
return
baseMapper
.
getDayMaxDurationList
(
param
);
return
baseMapper
.
getDayMaxDurationList
(
param
);
}
}
/**
* 保存停留时长记录
* 进入雷达开始
* 走出雷达结束
*
* @param platAlarmCheckDTO
* @param alarmRedisDTO
*/
@Override
public
void
saveDayDurationRecord
(
PlatAlarmCheckDTO
platAlarmCheckDTO
,
AlarmRedisDTO
alarmRedisDTO
)
{
PlatAlarmConfig
config
=
platAlarmCheckDTO
.
getPlatAlarmConfig
();
PlatDevice
platDevice
=
platAlarmCheckDTO
.
getPlatDevice
();
Date
now
=
new
Date
();
long
endLong
=
now
.
getTime
();
long
count
=
endLong
-
alarmRedisDTO
.
getStartLong
();
//save db
platAlarmRecordService
.
getElderListByDeviceId
(
platAlarmCheckDTO
);
if
(
CollectionUtils
.
isEmpty
(
platAlarmCheckDTO
.
getPlatElderList
())){
log
.
error
(
"未关联长者,设备id:"
+
platDevice
.
getId
());
return
;
}
List
<
PlatElder
>
platElderList
=
platAlarmCheckDTO
.
getPlatElderList
();
if
(
CollectionUtils
.
isNotEmpty
(
platElderList
)){
platAlarmRecordService
.
getElderListByDeviceId
(
platAlarmCheckDTO
);
platElderList
=
platAlarmCheckDTO
.
getPlatElderList
();
}
for
(
PlatElder
platElder
:
platElderList
)
{
if
(
StringUtils
.
isBlank
(
platElder
.
getRegionName
())){
continue
;
}
PlatDayDurationRecord
durationRecord
=
new
PlatDayDurationRecord
();
durationRecord
.
setElderIds
(
platElder
.
getId
());
durationRecord
.
setRegionName
(
platElder
.
getRegionName
());
durationRecord
.
setDuration
(
count
);
durationRecord
.
setOriDeviceId
(
platDevice
.
getOriDeviceId
());
durationRecord
.
setDay
(
alarmRedisDTO
.
getStart
());
durationRecord
.
setStartDate
(
alarmRedisDTO
.
getStart
());
durationRecord
.
setEndDate
(
now
);
durationRecord
.
setTenantId
(
config
.
getTenantId
());
durationRecord
.
setRoomId
(
platElder
.
getRoomId
());
durationRecord
.
setDeviceId
(
platDevice
.
getId
());
this
.
saveOrUpdate
(
durationRecord
);
}
}
}
}
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