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
1e94d1b7
authored
Dec 20, 2023
by
汪志阳
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
fix:多租户offbed
parent
6d06b4bf
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
67 additions
and
18 deletions
server-service/src/main/java/com/makeit/mapper/platform/alarm/PlatAlarmConfigMapper.java
server-service/src/main/java/com/makeit/service/platform/alarm/PlatAlarmConfigService.java
server-service/src/main/java/com/makeit/service/platform/alarm/alarmStrategy/OffBedAlarm.java
server-service/src/main/java/com/makeit/service/platform/alarm/impl/PlatAlarmConfigServiceImpl.java
server-service/src/main/java/com/makeit/service/platform/device/PlatDeviceService.java
server-service/src/main/java/com/makeit/service/platform/device/impl/PlatDeviceServiceImpl.java
server-service/src/main/resources/mappers/PlatAlarmConfigMapper.xml
server-web/src/main/java/com/makeit/mqtt/PushCallback.java
server-service/src/main/java/com/makeit/mapper/platform/alarm/PlatAlarmConfigMapper.java
View file @
1e94d1b7
...
...
@@ -3,7 +3,6 @@ package com.makeit.mapper.platform.alarm;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
com.makeit.dto.platform.alarm.PlatHealthConfigDTO
;
import
com.makeit.entity.platform.alarm.PlatAlarmConfig
;
import
org.apache.ibatis.annotations.Param
;
import
java.util.List
;
...
...
@@ -23,5 +22,4 @@ public interface PlatAlarmConfigMapper extends BaseMapper<PlatAlarmConfig> {
*/
List
<
PlatHealthConfigDTO
>
getHealthConfigList
();
List
<
PlatAlarmConfig
>
listOffBed
(
@Param
(
"deviceId"
)
String
deviceId
);
}
server-service/src/main/java/com/makeit/service/platform/alarm/PlatAlarmConfigService.java
View file @
1e94d1b7
...
...
@@ -43,5 +43,5 @@ public interface PlatAlarmConfigService extends IService<PlatAlarmConfig> {
void
initData
();
List
<
PlatAlarmConfig
>
listOfBed
(
String
deviceId
);
List
<
PlatAlarmConfig
>
listOfBed
(
List
<
String
>
orgIds
);
}
server-service/src/main/java/com/makeit/service/platform/alarm/alarmStrategy/OffBedAlarm.java
View file @
1e94d1b7
...
...
@@ -239,7 +239,7 @@ public class OffBedAlarm implements IAlarm {
}
LocalDateTime
now
=
currentTime
();
LocalTime
localTime
=
LocalTime
.
now
();
LocalTime
localTime
=
LocalTime
.
now
()
.
plusHours
(
9
)
;
if
(!
isInTime
&&
localTime
.
isAfter
(
startTime
)
&&
localTime
.
isBefore
(
endTime
))
{
long
mills
=
Duration
.
between
(
startLocalDteTime
,
now
).
toMillis
()
/
1000
;
boolean
noInOverTime
=
mills
>=
duration
*
60
;
...
...
@@ -326,7 +326,7 @@ public class OffBedAlarm implements IAlarm {
}
private
static
LocalDateTime
currentTime
()
{
return
LocalDateTime
.
now
();
return
LocalDateTime
.
now
()
.
plusHours
(
9
)
;
// return LocalDateTime.now();
}
...
...
server-service/src/main/java/com/makeit/service/platform/alarm/impl/PlatAlarmConfigServiceImpl.java
View file @
1e94d1b7
...
...
@@ -15,6 +15,7 @@ import com.makeit.entity.platform.auth.PlatUser;
import
com.makeit.enums.CodeMessageEnum
;
import
com.makeit.enums.CommonEnum
;
import
com.makeit.enums.id.IdConst
;
import
com.makeit.enums.platform.alarm.PlatAlarmConfigEnum
;
import
com.makeit.exception.BusinessException
;
import
com.makeit.global.aspect.tenant.TenantIdIgnore
;
import
com.makeit.global.aspect.tenant.TenantIdUtil
;
...
...
@@ -262,7 +263,8 @@ public class PlatAlarmConfigServiceImpl extends ServiceImpl<PlatAlarmConfigMappe
@Override
@TenantIdIgnore
public
List
<
PlatAlarmConfig
>
listOfBed
(
String
deviceId
)
{
return
configMapper
.
listOffBed
(
deviceId
);
public
List
<
PlatAlarmConfig
>
listOfBed
(
List
<
String
>
orgIds
)
{
return
list
(
Wrappers
.<
PlatAlarmConfig
>
lambdaQuery
().
in
(
PlatAlarmConfig:
:
getOrgId
,
orgIds
).
eq
(
PlatAlarmConfig:
:
getAlarmType
,
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
OFF_BED
.
getValue
()));
}
}
server-service/src/main/java/com/makeit/service/platform/device/PlatDeviceService.java
View file @
1e94d1b7
...
...
@@ -97,4 +97,6 @@ public interface PlatDeviceService extends IService<PlatDevice> {
void
devicePushLog
(
MultipartFile
multipartFile
,
String
deviceId
)
throws
IOException
;
void
syncIotProperties
(
String
deviceId
,
JSONObject
iotProperties
);
List
<
PlatDevice
>
listOffBed
(
String
oriDeviceId
);
}
server-service/src/main/java/com/makeit/service/platform/device/impl/PlatDeviceServiceImpl.java
View file @
1e94d1b7
...
...
@@ -9,6 +9,7 @@ import com.alibaba.fastjson.JSONObject;
import
com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper
;
import
com.baomidou.mybatisplus.core.toolkit.Wrappers
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.google.common.collect.Lists
;
...
...
@@ -20,7 +21,6 @@ import com.makeit.common.entity.BaseBusEntity;
import
com.makeit.common.entity.BaseEntity
;
import
com.makeit.common.page.PageReqDTO
;
import
com.makeit.common.page.PageVO
;
import
com.makeit.common.response.ApiResponseEntity
;
import
com.makeit.config.ShengwangProperties
;
import
com.makeit.dto.platform.dataScreen.PlatDataScreenQueryDTO
;
import
com.makeit.dto.platform.device.*
;
...
...
@@ -76,12 +76,10 @@ import com.makeit.utils.data.convert.StreamUtil;
import
com.makeit.utils.old.StringUtils
;
import
com.makeit.utils.sql.join.JoinUtil
;
import
com.makeit.vo.platform.device.PlatChildDeviceListVO
;
import
com.makeit.vo.platform.device.PlatDeviceActiveVO
;
import
com.makeit.vo.platform.device.PlatDeviceListVO
;
import
com.makeit.vo.platform.device.PlatDeviceViewVO
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.aspectj.weaver.ast.Var
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
...
...
@@ -1122,4 +1120,9 @@ public class PlatDeviceServiceImpl extends ServiceImpl<PlatDeviceMapper, PlatDev
return
platDeviceBaseAttrDTO
;
}
@Override
@TenantIdIgnore
public
List
<
PlatDevice
>
listOffBed
(
String
oriDeviceId
)
{
return
list
(
Wrappers
.<
PlatDevice
>
lambdaQuery
().
eq
(
PlatDevice:
:
getOriDeviceId
,
oriDeviceId
));
}
}
server-service/src/main/resources/mappers/PlatAlarmConfigMapper.xml
View file @
1e94d1b7
...
...
@@ -23,11 +23,4 @@
</select>
<select
id=
"listOffBed"
resultType=
"com.makeit.entity.platform.alarm.PlatAlarmConfig"
>
select *
from plat_alarm_config
where org_id in (
select org_id from plat_device where id = #{deviceId} and del_flag = 0)
and alarm_type = 5 and tenant_id != 0
</select>
</mapper>
server-web/src/main/java/com/makeit/mqtt/PushCallback.java
View file @
1e94d1b7
package
com
.
makeit
.
mqtt
;
import
cn.hutool.core.collection.CollUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
...
...
@@ -8,6 +9,7 @@ import com.makeit.dto.platform.alarm.PlatAlarmCheckDTO;
import
com.makeit.entity.platform.alarm.PlatAlarmConfig
;
import
com.makeit.entity.platform.device.PlatDevice
;
import
com.makeit.entity.saas.analysis.SaasSleepAnalysisModel
;
import
com.makeit.enums.platform.alarm.PlatAlarmConfigEnum
;
import
com.makeit.global.aspect.tenant.TenantIdIgnore
;
import
com.makeit.module.iot.enums.DeviceState
;
import
com.makeit.module.iot.vo.DeviceInfo
;
...
...
@@ -18,6 +20,7 @@ import com.makeit.service.platform.device.PlatDeviceService;
import
com.makeit.service.saas.SaasSleepAnalysisModelService
;
import
com.makeit.utils.AlarmConfigCacheUtil
;
import
com.makeit.utils.DeviceCacheUtil
;
import
com.makeit.utils.data.convert.StreamUtil
;
import
com.makeit.utils.redis.RedisUtil
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.eclipse.paho.client.mqttv3.IMqttDeliveryToken
;
...
...
@@ -34,9 +37,11 @@ import org.springframework.stereotype.Component;
import
javax.annotation.Resource
;
import
java.math.BigDecimal
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
import
java.util.concurrent.CompletableFuture
;
import
java.util.concurrent.TimeUnit
;
import
java.util.stream.Collectors
;
@Component
...
...
@@ -203,9 +208,14 @@ public class PushCallback implements MqttCallback {
logger
.
error
(
"该设备没有告警配置,设备iot-id,iot_tenantId:"
+
deviceId
+
","
+
iot_tenantId
);
return
;
}
handleOffBed
(
platDevice
,
properties
,
messageType
);
for
(
PlatAlarmConfig
config
:
deviceAlarmConfigList
)
{
String
alarmType
=
config
.
getAlarmType
();
if
(
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
OFF_BED
.
getValue
().
equals
(
alarmType
))
{
continue
;
}
for
(
IAlarm
alarm
:
alarmList
)
{
if
(
alarm
.
support
(
alarmType
))
{
//防止呼吸心率的数据交叉
...
...
@@ -230,6 +240,47 @@ public class PushCallback implements MqttCallback {
}
/**
* 离床预警
* @param platDevice
* @param properties
* @param messageType
*/
private
void
handleOffBed
(
PlatDevice
platDevice
,
JSONObject
properties
,
String
messageType
)
{
List
<
PlatDevice
>
platDeviceList
=
platDeviceService
.
listOffBed
(
platDevice
.
getOriDeviceId
());
if
(
CollUtil
.
isEmpty
(
platDeviceList
))
{
return
;
}
List
<
String
>
orgIds
=
platDeviceList
.
stream
().
map
(
PlatDevice:
:
getOrgId
).
collect
(
Collectors
.
toList
());
List
<
PlatAlarmConfig
>
configList
=
alarmConfigService
.
listOfBed
(
orgIds
);
Map
<
String
,
PlatAlarmConfig
>
configMap
=
StreamUtil
.
toMap
(
configList
,
PlatAlarmConfig:
:
getOrgId
);
String
alarmType
=
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
OFF_BED
.
getValue
();
platDeviceList
.
forEach
(
device
->
{
for
(
IAlarm
alarm
:
alarmList
)
{
if
(
alarm
.
support
(
alarmType
))
{
PlatAlarmConfig
config
=
configMap
.
get
(
device
.
getOrgId
());
if
(
config
==
null
)
{
logger
.
info
(
"handleOffBed 未找到对应的config"
);
continue
;
}
//防止呼吸心率的数据交叉
PlatAlarmCheckDTO
platAlarmCheckDTO
=
new
PlatAlarmCheckDTO
();
//告警配置
platAlarmCheckDTO
.
setPlatAlarmConfig
(
config
);
//设备信息
platAlarmCheckDTO
.
setPlatDevice
(
device
);
//iot上报数据
platAlarmCheckDTO
.
setProperties
(
properties
);
//设备状态
platAlarmCheckDTO
.
setMessageType
(
messageType
);
alarm
.
checkConfig
(
platAlarmCheckDTO
);
}
}
});
}
private
void
cacheSpaceFallDeviceData
(
String
deviceSpaceTempData
,
DeviceInfo
device
,
long
currentSecond
)
{
long
maxSize
=
10L
;
String
key
=
deviceSpaceTempData
+
device
.
getDeviceId
();
...
...
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