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
e4ffd88c
authored
Sep 13, 2023
by
李小龙
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
fixBug:跌倒告警发送消息
parent
ab080c56
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
92 additions
and
26 deletions
server-common/src/main/java/com/makeit/enums/BaseEnum.java
server-common/src/main/java/com/makeit/utils/msg/SendTypeEnum.java
server-common/src/main/java/com/makeit/utils/msg/dto/MsgSendDTO.java
server-service/src/main/java/com/makeit/dto/platform/alarm/PlatAlarmCheckDTO.java
server-service/src/main/java/com/makeit/service/platform/alarm/PlatAlarmRecordService.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/BreathAlarm.java
server-service/src/main/java/com/makeit/service/platform/alarm/alarmStrategy/FallAlarm.java
server-service/src/main/java/com/makeit/service/platform/alarm/alarmStrategy/HeartAlarm.java
server-service/src/main/java/com/makeit/service/platform/alarm/impl/PlatAlarmRecordServiceImpl.java
server-common/src/main/java/com/makeit/enums/BaseEnum.java
View file @
e4ffd88c
...
...
@@ -99,7 +99,7 @@ public interface BaseEnum {
static
BaseEnum
getByValue
(
Class
<?
extends
BaseEnum
>
emClazz
,
String
value
)
{
BaseEnum
[]
em
=
emClazz
.
getEnumConstants
();
for
(
BaseEnum
e
:
em
)
{
if
(
e
.
getValue
().
equals
(
value
))
{
if
(
StringUtils
.
equals
(
e
.
getValue
(),
value
))
{
return
e
;
}
}
...
...
server-common/src/main/java/com/makeit/utils/msg/SendTypeEnum.java
View file @
e4ffd88c
...
...
@@ -9,9 +9,10 @@ import lombok.Getter;
@Getter
public
enum
SendTypeEnum
implements
BaseEnum
{
//1-短信 2-邮件 3-语音短信 4-云龄工单 5-晶奇工单 6-子女端小程序
SMS
(
"alarm.sendType.sms"
),
MAIL
(
"alarm.sendType.mail"
),
VOICE_SMS
(
"alarm.sendType.voiceSms"
),
SMS
(
"alarm.notifyChannel.sms"
),
MAIL
(
"alarm.notifyChannel.mail"
),
VOICE_SMS
(
"alarm.notifyChannel.voiceMessage"
),
//todo 加字典
YUNLING
(
"alarm.sendType.yunling"
),
JINGQI
(
"alarm.sendType.jingqi"
),
CHILD_WECHAT
(
"alarm.sendType.childWechat"
)
...
...
server-common/src/main/java/com/makeit/utils/msg/dto/MsgSendDTO.java
View file @
e4ffd88c
...
...
@@ -5,11 +5,8 @@ import lombok.AllArgsConstructor;
import
lombok.Builder
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
org.apache.commons.lang3.StringUtils
;
import
java.util.Collection
;
import
java.util.regex.Matcher
;
import
java.util.regex.Pattern
;
@Data
@Builder
...
...
@@ -30,8 +27,6 @@ public class MsgSendDTO {
*/
private
String
[]
param
;
private
String
sendContent
;
public
void
setParam
(
String
...
param
)
{
this
.
param
=
param
;
}
...
...
server-service/src/main/java/com/makeit/dto/platform/alarm/PlatAlarmCheckDTO.java
View file @
e4ffd88c
...
...
@@ -25,4 +25,6 @@ public class PlatAlarmCheckDTO {
private
JSONObject
properties
;
//PlatAlarmRecord.remark
private
String
remark
;
}
server-service/src/main/java/com/makeit/service/platform/alarm/PlatAlarmRecordService.java
View file @
e4ffd88c
...
...
@@ -54,7 +54,7 @@ public interface PlatAlarmRecordService extends IService<PlatAlarmRecord> {
*/
void
noticeDeviceAlarm
(
PlatAlarmConfig
alarmConfig
,
PlatAlarmRecord
alarmRecord
);
PlatAlarmRecord
c
reate
PlatAlarmRecord
(
PlatAlarmCheckDTO
platAlarmCheckDTO
);
PlatAlarmRecord
c
onvertTo
PlatAlarmRecord
(
PlatAlarmCheckDTO
platAlarmCheckDTO
);
void
getElderListByDeviceId
(
PlatAlarmCheckDTO
platAlarmCheckDTO
);
}
server-service/src/main/java/com/makeit/service/platform/alarm/alarmStrategy/BehaviorAlarm.java
View file @
e4ffd88c
...
...
@@ -7,16 +7,20 @@ 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.device.PlatDevice
;
import
com.makeit.entity.platform.elder.PlatElder
;
import
com.makeit.entity.platform.space.PlatRoom
;
import
com.makeit.enums.platform.alarm.PlatAlarmConfigEnum
;
import
com.makeit.enums.redis.RedisConst
;
import
com.makeit.service.platform.alarm.PlatAlarmRecordService
;
import
com.makeit.utils.data.convert.JsonUtil
;
import
com.makeit.utils.redis.RedisUtil
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.Date
;
import
java.util.List
;
...
...
@@ -77,8 +81,18 @@ public class BehaviorAlarm implements IAlarm{
@Async
public
void
notice
(
PlatAlarmCheckDTO
platAlarmCheckDTO
)
{
platAlarmRecordService
.
getElderListByDeviceId
(
platAlarmCheckDTO
);
platAlarmCheckDTO
.
getParam
().
add
(
"房间名"
);
PlatAlarmRecord
platAlarmRecord
=
platAlarmRecordService
.
createPlatAlarmRecord
(
platAlarmCheckDTO
);
platAlarmRecordService
.
noticeDeviceAlarm
(
platAlarmCheckDTO
.
getPlatAlarmConfig
(),
platAlarmRecord
);
List
<
PlatElder
>
platElderList
=
platAlarmCheckDTO
.
getPlatElderList
();
if
(
CollectionUtils
.
isEmpty
(
platElderList
)){
return
;
}
PlatRoom
platRoom
=
platAlarmCheckDTO
.
getPlatRoom
();
for
(
PlatElder
platElder
:
platElderList
)
{
List
<
String
>
param
=
new
ArrayList
<>();
param
.
add
(
platElder
.
getName
());
param
.
add
(
platRoom
.
getName
());
platAlarmCheckDTO
.
setParam
(
param
);
PlatAlarmRecord
platAlarmRecord
=
platAlarmRecordService
.
convertToPlatAlarmRecord
(
platAlarmCheckDTO
);
platAlarmRecordService
.
noticeDeviceAlarm
(
platAlarmCheckDTO
.
getPlatAlarmConfig
(),
platAlarmRecord
);
}
}
}
server-service/src/main/java/com/makeit/service/platform/alarm/alarmStrategy/BreathAlarm.java
View file @
e4ffd88c
...
...
@@ -7,17 +7,22 @@ import com.makeit.dto.platform.alarm.PlatAlarmConfigRespiratoryDTOVO;
import
com.makeit.entity.platform.alarm.PlatAlarmConfig
;
import
com.makeit.entity.platform.alarm.PlatAlarmRecord
;
import
com.makeit.entity.platform.device.PlatDevice
;
import
com.makeit.entity.platform.elder.PlatElder
;
import
com.makeit.entity.platform.space.PlatRoom
;
import
com.makeit.enums.platform.alarm.PlatAlarmConfigEnum
;
import
com.makeit.enums.redis.RedisConst
;
import
com.makeit.service.platform.alarm.PlatAlarmRecordService
;
import
com.makeit.utils.data.convert.JsonUtil
;
import
com.makeit.utils.redis.RedisUtil
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
@Component
public
class
BreathAlarm
implements
IAlarm
{
...
...
@@ -67,6 +72,12 @@ public class BreathAlarm implements IAlarm{
long
count
=
endLong
-
startLong
;
if
(
br
>
end
||
br
<
start
)
{
if
(
count
>=
duration
)
{
if
(
br
>
end
){
platAlarmCheckDTO
.
setRemark
(
"呼吸过速"
);
}
if
(
br
<
start
){
platAlarmCheckDTO
.
setRemark
(
"呼吸过缓"
);
}
notice
(
platAlarmCheckDTO
);
RedisUtil
.
set
(
RedisConst
.
ALARM_DEVICE_ID
+
deviceId
,
endLong
/
1000
);
}
...
...
@@ -76,12 +87,27 @@ public class BreathAlarm implements IAlarm{
return
;
}
/**
* [#长者姓名][#呼吸状态],请及时处理!
* @param platAlarmCheckDTO
*/
@Override
@Async
public
void
notice
(
PlatAlarmCheckDTO
platAlarmCheckDTO
)
{
platAlarmRecordService
.
getElderListByDeviceId
(
platAlarmCheckDTO
);
platAlarmCheckDTO
.
getParam
().
add
(
"呼吸状态111"
);
PlatAlarmRecord
platAlarmRecord
=
platAlarmRecordService
.
createPlatAlarmRecord
(
platAlarmCheckDTO
);
platAlarmRecordService
.
noticeDeviceAlarm
(
platAlarmCheckDTO
.
getPlatAlarmConfig
(),
platAlarmRecord
);
platAlarmRecordService
.
getElderListByDeviceId
(
platAlarmCheckDTO
);
List
<
PlatElder
>
platElderList
=
platAlarmCheckDTO
.
getPlatElderList
();
if
(
CollectionUtils
.
isEmpty
(
platElderList
)){
return
;
}
PlatRoom
platRoom
=
platAlarmCheckDTO
.
getPlatRoom
();
for
(
PlatElder
platElder
:
platElderList
)
{
List
<
String
>
param
=
new
ArrayList
<>();
param
.
add
(
platElder
.
getName
());
param
.
add
(
platAlarmCheckDTO
.
getRemark
());
platAlarmCheckDTO
.
setParam
(
param
);
PlatAlarmRecord
platAlarmRecord
=
platAlarmRecordService
.
convertToPlatAlarmRecord
(
platAlarmCheckDTO
);
platAlarmRecordService
.
noticeDeviceAlarm
(
platAlarmCheckDTO
.
getPlatAlarmConfig
(),
platAlarmRecord
);
}
}
}
server-service/src/main/java/com/makeit/service/platform/alarm/alarmStrategy/FallAlarm.java
View file @
e4ffd88c
...
...
@@ -54,7 +54,7 @@ public class FallAlarm implements IAlarm{
param
.
add
(
platElder
.
getName
());
param
.
add
(
platRoom
.
getName
());
platAlarmCheckDTO
.
setParam
(
param
);
PlatAlarmRecord
platAlarmRecord
=
platAlarmRecordService
.
c
reate
PlatAlarmRecord
(
platAlarmCheckDTO
);
PlatAlarmRecord
platAlarmRecord
=
platAlarmRecordService
.
c
onvertTo
PlatAlarmRecord
(
platAlarmCheckDTO
);
platAlarmRecordService
.
noticeDeviceAlarm
(
platAlarmCheckDTO
.
getPlatAlarmConfig
(),
platAlarmRecord
);
}
}
...
...
server-service/src/main/java/com/makeit/service/platform/alarm/alarmStrategy/HeartAlarm.java
View file @
e4ffd88c
...
...
@@ -7,17 +7,22 @@ import com.makeit.dto.platform.alarm.PlatAlarmConfigHeartDTOVO;
import
com.makeit.entity.platform.alarm.PlatAlarmConfig
;
import
com.makeit.entity.platform.alarm.PlatAlarmRecord
;
import
com.makeit.entity.platform.device.PlatDevice
;
import
com.makeit.entity.platform.elder.PlatElder
;
import
com.makeit.entity.platform.space.PlatRoom
;
import
com.makeit.enums.platform.alarm.PlatAlarmConfigEnum
;
import
com.makeit.enums.redis.RedisConst
;
import
com.makeit.service.platform.alarm.PlatAlarmRecordService
;
import
com.makeit.utils.data.convert.JsonUtil
;
import
com.makeit.utils.redis.RedisUtil
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Component
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
@Component
public
class
HeartAlarm
implements
IAlarm
{
...
...
@@ -58,6 +63,12 @@ public class HeartAlarm implements IAlarm {
long
count
=
endLong
-
startLong
;
if
(
hr
>
end
||
hr
<
start
)
{
if
(
count
>=
duration
)
{
if
(
hr
>
end
){
platAlarmCheckDTO
.
setRemark
(
"心率过速"
);
}
if
(
hr
<
start
){
platAlarmCheckDTO
.
setRemark
(
"心率过缓"
);
}
notice
(
platAlarmCheckDTO
);
RedisUtil
.
set
(
RedisConst
.
ALARM_DEVICE_ID
+
deviceId
,
endLong
/
1000
);
}
...
...
@@ -70,8 +81,19 @@ public class HeartAlarm implements IAlarm {
@Async
public
void
notice
(
PlatAlarmCheckDTO
platAlarmCheckDTO
)
{
platAlarmRecordService
.
getElderListByDeviceId
(
platAlarmCheckDTO
);
platAlarmCheckDTO
.
getParam
().
add
(
"呼吸状态111"
);
PlatAlarmRecord
platAlarmRecord
=
platAlarmRecordService
.
createPlatAlarmRecord
(
platAlarmCheckDTO
);
platAlarmRecordService
.
noticeDeviceAlarm
(
platAlarmCheckDTO
.
getPlatAlarmConfig
(),
platAlarmRecord
);
platAlarmRecordService
.
getElderListByDeviceId
(
platAlarmCheckDTO
);
List
<
PlatElder
>
platElderList
=
platAlarmCheckDTO
.
getPlatElderList
();
if
(
CollectionUtils
.
isEmpty
(
platElderList
)){
return
;
}
PlatRoom
platRoom
=
platAlarmCheckDTO
.
getPlatRoom
();
for
(
PlatElder
platElder
:
platElderList
)
{
List
<
String
>
param
=
new
ArrayList
<>();
param
.
add
(
platElder
.
getName
());
param
.
add
(
platAlarmCheckDTO
.
getRemark
());
platAlarmCheckDTO
.
setParam
(
param
);
PlatAlarmRecord
platAlarmRecord
=
platAlarmRecordService
.
convertToPlatAlarmRecord
(
platAlarmCheckDTO
);
platAlarmRecordService
.
noticeDeviceAlarm
(
platAlarmCheckDTO
.
getPlatAlarmConfig
(),
platAlarmRecord
);
}
}
}
server-service/src/main/java/com/makeit/service/platform/alarm/impl/PlatAlarmRecordServiceImpl.java
View file @
e4ffd88c
...
...
@@ -270,7 +270,13 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
List
<
SendTypeEnum
>
notifyChannelList
=
Arrays
.
asList
(
SendTypeEnum
.
SMS
,
SendTypeEnum
.
VOICE_SMS
,
SendTypeEnum
.
MAIL
);
Set
<
String
>
phoneSet
=
platUserList
.
stream
().
map
(
PlatUser:
:
getMobile
).
collect
(
Collectors
.
toSet
());
//发送消息
noticeByChannel
(
alarmConfig
,
alarmRecord
,
phoneSet
,
notifyChannelList
);
//noticeByChannel(alarmConfig, alarmRecord, phoneSet, notifyChannelList);
String
userIdJoin
=
platUserList
.
stream
().
map
(
PlatUser:
:
getId
).
collect
(
Collectors
.
joining
(
","
));
alarmRecord
.
setNotifyUser
(
userIdJoin
);
saveOrUpdate
(
alarmRecord
);
}
/**
...
...
@@ -299,21 +305,21 @@ public class PlatAlarmRecordServiceImpl extends ServiceImpl<PlatAlarmRecordMappe
}
@Override
public
PlatAlarmRecord
c
reate
PlatAlarmRecord
(
PlatAlarmCheckDTO
platAlarmCheckDTO
)
{
public
PlatAlarmRecord
c
onvertTo
PlatAlarmRecord
(
PlatAlarmCheckDTO
platAlarmCheckDTO
)
{
PlatAlarmConfig
config
=
platAlarmCheckDTO
.
getPlatAlarmConfig
();
PlatDevice
platDevice
=
platAlarmCheckDTO
.
getPlatDevice
();
List
<
String
>
param
=
platAlarmCheckDTO
.
getParam
();
List
<
PlatElder
>
elderList
=
platAlarmCheckDTO
.
getPlatElderList
();
String
elderNameJoin
=
elderList
.
stream
().
map
(
PlatElder:
:
getName
).
collect
(
Collectors
.
joining
(
" "
));
PlatAlarmRecord
platAlarmRecord
=
new
PlatAlarmRecord
();
platAlarmRecord
.
setAlarmId
(
config
.
getId
());
platAlarmRecord
.
setAlarmType
(
config
.
getAlarmType
());
platAlarmRecord
.
setAlarmDate
(
new
Date
());
platAlarmRecord
.
setStatus
(
"0"
);
//todo
platAlarmRecord
.
setContent
(
replaceParam
(
elderNameJoin
,
param
));
platAlarmRecord
.
setStatus
(
CommonEnum
.
NO
.
getValue
());
platAlarmRecord
.
setNoticeStatus
(
CommonEnum
.
NO
.
getValue
());
//模板信息 替换参数
platAlarmRecord
.
setContent
(
replaceParam
(
config
.
getContent
(),
param
));
platAlarmRecord
.
setOrgId
(
platDevice
.
getOrgId
());
platAlarmRecord
.
setNotifyUser
(
config
.
getNotifyUser
());
platAlarmRecord
.
setDeviceId
(
platDevice
.
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