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
24007b79
authored
Sep 28, 2023
by
朱淼
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
小程序长者中心老人状态
parent
e00347d9
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
83 additions
and
26 deletions
server-service/src/main/java/com/makeit/service/platform/workstation/WorkStationService.java
server-service/src/main/java/com/makeit/service/platform/workstation/impl/WorkStationServiceImpl.java
server-service/src/main/java/com/makeit/service/wechat/impl/PlatElderCenterWechatServiceImpl.java
server-service/src/main/resources/mappers/PlatBedMapper.xml
server-service/src/main/java/com/makeit/service/platform/workstation/WorkStationService.java
View file @
24007b79
...
...
@@ -4,9 +4,12 @@ package com.makeit.service.platform.workstation;
import
com.makeit.common.page.PageReqDTO
;
import
com.makeit.common.page.PageVO
;
import
com.makeit.dto.platform.auth.PlatOrgDTO
;
import
com.makeit.dto.platform.elder.PlatElderIdDTO
;
import
com.makeit.dto.platform.space.PlatSpaceVO
;
import
com.makeit.dto.platform.workstation.WorkStationQueryDTO
;
import
com.makeit.entity.platform.alarm.PlatAlarmRecord
;
import
com.makeit.module.iot.vo.breathe.DeviceInfoContentBreathe
;
import
com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO
;
import
com.makeit.vo.platform.workstation.*
;
import
java.util.List
;
...
...
@@ -31,4 +34,10 @@ public interface WorkStationService {
List
<
PlatSpaceVO
>
spaceTree
(
PlatOrgDTO
dto
);
Map
<
String
,
Map
<
String
,
String
>>
mapElderAlarmType
(
List
<
PlatAlarmRecord
>
alarmRecords
);
void
nowStatusRest
(
WorkStationInstitutionBedVO
vo
,
PlatElderIdDTO
platElderIdDTO
,
DeviceInfoContentBreathe
nowDataBreathe
,
List
<
PlatElderCoordinateVO
>
coordinateList
);
void
nowStatusSleep
(
WorkStationInstitutionBedVO
vo
,
PlatElderIdDTO
platElderIdDTO
,
DeviceInfoContentBreathe
nowDataBreathe
);
DeviceInfoContentBreathe
getNowDataBreathe
(
String
elderId
,
String
deviceId
);
}
server-service/src/main/java/com/makeit/service/platform/workstation/impl/WorkStationServiceImpl.java
View file @
24007b79
...
...
@@ -261,21 +261,24 @@ public class WorkStationServiceImpl implements WorkStationService {
platElderIdDTO
.
setElderId
(
r
.
getElderId
());
platElderIdDTO
.
setDeviceId
(
r
.
getOriDeviceId
());
PlatElderRealTimeNowVO
nowStatus
=
platElderRealTimeService
.
nowStatus
(
platElderIdDTO
);
DeviceInfoContentBreathe
deviceInfoContentBreathe
=
getNowDataBreathe
(
platElderIdDTO
.
getElderId
(),
platElderIdDTO
.
getDeviceId
());
//离床:雷达状态上报无人
//翻身:雷达上报的数据符合IOT平台睡眠质量分析模型中配置的翻身规则
//睡眠:雷达上报的数据符合IOT平台睡眠质量分析模型中的入睡时间,状态变更为睡眠
//静息:雷达上报有人,且非睡眠
if
(
DeviceInfoContentBreatheEnum
.
PersonStateEnum
.
NOBODY
.
getValue
().
equals
(
nowStatus
.
getStatus
())){
r
.
setElderStatus
(
WorkStationStatusEnum
.
NowStatus
.
OUT
.
getValue
());
}
else
if
(
nowStatus
.
getBodyMove
()!=
null
&&
nowStatus
.
getBodyMove
()
>
turnedThreshold
){
r
.
setElderStatus
(
WorkStationStatusEnum
.
NowStatus
.
TURNED
.
getValue
());
}
else
{
List
<
PlatElderCoordinateVO
>
coordinateList
=
platElderDayReportDayService
.
coordinateList
(
platElderIdDTO
.
getElderId
(),
platElderIdDTO
.
getDeviceId
(),
start
,
now
);
nowStatusRest
(
r
,
platElderIdDTO
,
deviceInfoContentBreathe
,
coordinateList
);
nowStatusSleep
(
r
,
platElderIdDTO
,
deviceInfoContentBreathe
);
if
(
nowStatus
.
getStatus
()!=
null
){
DeviceInfoContentBreathe
deviceInfoContentBreathe
=
getNowDataBreathe
(
platElderIdDTO
.
getElderId
(),
platElderIdDTO
.
getDeviceId
());
//离床:雷达状态上报无人
//翻身:雷达上报的数据符合IOT平台睡眠质量分析模型中配置的翻身规则
//睡眠:雷达上报的数据符合IOT平台睡眠质量分析模型中的入睡时间,状态变更为睡眠
//静息:雷达上报有人,且非睡眠
if
(
DeviceInfoContentBreatheEnum
.
PersonStateEnum
.
NOBODY
.
getValue
().
equals
(
nowStatus
.
getStatus
())){
r
.
setElderStatus
(
WorkStationStatusEnum
.
NowStatus
.
OUT
.
getValue
());
}
else
if
(
nowStatus
.
getBodyMove
()!=
null
&&
nowStatus
.
getBodyMove
()
>
turnedThreshold
){
r
.
setElderStatus
(
WorkStationStatusEnum
.
NowStatus
.
TURNED
.
getValue
());
}
else
{
List
<
PlatElderCoordinateVO
>
coordinateList
=
platElderDayReportDayService
.
coordinateList
(
platElderIdDTO
.
getElderId
(),
platElderIdDTO
.
getDeviceId
(),
start
,
now
);
nowStatusRest
(
r
,
platElderIdDTO
,
deviceInfoContentBreathe
,
coordinateList
);
nowStatusSleep
(
r
,
platElderIdDTO
,
deviceInfoContentBreathe
);
}
}
}
}
}
...
...
@@ -286,7 +289,8 @@ public class WorkStationServiceImpl implements WorkStationService {
return
PageUtil
.
toPageVO
(
pages
);
}
private
void
nowStatusRest
(
WorkStationInstitutionBedVO
vo
,
PlatElderIdDTO
platElderIdDTO
,
DeviceInfoContentBreathe
nowDataBreathe
,
List
<
PlatElderCoordinateVO
>
coordinateList
)
{
@Override
public
void
nowStatusRest
(
WorkStationInstitutionBedVO
vo
,
PlatElderIdDTO
platElderIdDTO
,
DeviceInfoContentBreathe
nowDataBreathe
,
List
<
PlatElderCoordinateVO
>
coordinateList
)
{
if
(
nowDataBreathe
==
null
)
{
return
;
...
...
@@ -307,7 +311,8 @@ public class WorkStationServiceImpl implements WorkStationService {
}
private
void
nowStatusSleep
(
WorkStationInstitutionBedVO
vo
,
PlatElderIdDTO
platElderIdDTO
,
DeviceInfoContentBreathe
nowDataBreathe
)
{
@Override
public
void
nowStatusSleep
(
WorkStationInstitutionBedVO
vo
,
PlatElderIdDTO
platElderIdDTO
,
DeviceInfoContentBreathe
nowDataBreathe
)
{
if
(
nowDataBreathe
==
null
)
{
return
;
...
...
@@ -344,7 +349,8 @@ public class WorkStationServiceImpl implements WorkStationService {
}
private
DeviceInfoContentBreathe
getNowDataBreathe
(
String
elderId
,
String
deviceId
)
{
@Override
public
DeviceInfoContentBreathe
getNowDataBreathe
(
String
elderId
,
String
deviceId
)
{
PlatDevice
platDevice
=
platElderRealTimeService
.
getBreathDevice
(
elderId
,
deviceId
);
...
...
server-service/src/main/java/com/makeit/service/wechat/impl/PlatElderCenterWechatServiceImpl.java
View file @
24007b79
...
...
@@ -8,18 +8,28 @@ import com.makeit.entity.platform.alarm.PlatAlarmConfig;
import
com.makeit.entity.platform.alarm.PlatAlarmRecord
;
import
com.makeit.entity.platform.elder.PlatElder
;
import
com.makeit.entity.platform.space.PlatSpace
;
import
com.makeit.entity.saas.analysis.SaasModelManage
;
import
com.makeit.entity.saas.analysis.SaasSleepAnalysisModel
;
import
com.makeit.enums.platform.alarm.PlatAlarmRecordEnum
;
import
com.makeit.enums.platform.workstation.WorkStationStatusEnum
;
import
com.makeit.enums.saas.ModelManageTypeEnum
;
import
com.makeit.module.iot.enums.DeviceInfoContentBreatheEnum
;
import
com.makeit.module.iot.vo.breathe.DeviceInfoContentBreathe
;
import
com.makeit.service.platform.alarm.PlatAlarmRecordService
;
import
com.makeit.service.platform.elder.PlatElderDayReportDayService
;
import
com.makeit.service.platform.elder.PlatElderRealTimeService
;
import
com.makeit.service.platform.elder.PlatElderService
;
import
com.makeit.service.platform.space.PlatBedService
;
import
com.makeit.service.platform.space.PlatRoomService
;
import
com.makeit.service.platform.space.PlatSpaceService
;
import
com.makeit.service.platform.workstation.WorkStationService
;
import
com.makeit.service.saas.SaasModelManageService
;
import
com.makeit.service.saas.SaasSleepAnalysisModelService
;
import
com.makeit.service.wechat.PlatElderCenterWechatService
;
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.elder.realtime.PlatElderCoordinateVO
;
import
com.makeit.vo.platform.elder.realtime.PlatElderRealTimeNowVO
;
import
com.makeit.vo.platform.workstation.WorkStationHomeBedVO
;
import
com.makeit.vo.platform.workstation.WorkStationInstitutionBedVO
;
...
...
@@ -30,6 +40,7 @@ import jodd.util.StringUtil;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
java.time.LocalDateTime
;
import
java.util.*
;
import
java.util.stream.Collectors
;
...
...
@@ -56,6 +67,13 @@ public class PlatElderCenterWechatServiceImpl implements PlatElderCenterWechatSe
@Autowired
private
PlatRoomService
platRoomService
;
@Autowired
private
SaasModelManageService
saasModelManageService
;
@Autowired
private
SaasSleepAnalysisModelService
saasSleepAnalysisModelService
;
@Autowired
private
PlatElderDayReportDayService
platElderDayReportDayService
;
@Override
public
PlatElderCenterHomeVo
homeStatistics
(
PlatElderCenterQueryDTO
dto
)
{
PlatElderCenterHomeVo
homeVo
=
new
PlatElderCenterHomeVo
();
...
...
@@ -99,10 +117,10 @@ public class PlatElderCenterWechatServiceImpl implements PlatElderCenterWechatSe
vo
.
setAlarmTypeMap
(
elderAlarmTypeMap
.
get
(
vo
.
getElderId
()));
}
if
(
StringUtil
.
isNotEmpty
(
vo
.
getDeviceId
())){
if
(
StringUtil
.
isNotEmpty
(
vo
.
get
Ori
DeviceId
())){
PlatElderIdDTO
platElderIdDTO
=
new
PlatElderIdDTO
();
platElderIdDTO
.
setElderId
(
vo
.
getElderId
());
platElderIdDTO
.
setDeviceId
(
vo
.
getDeviceId
());
platElderIdDTO
.
setDeviceId
(
vo
.
get
Ori
DeviceId
());
PlatElderRealTimeNowVO
nowStatus
=
platElderRealTimeService
.
nowStatus
(
platElderIdDTO
);
vo
.
setElderStatus
(
nowStatus
.
getStatus
());
vo
.
setHeartRate
(
nowStatus
.
getHeartRate
());
...
...
@@ -158,26 +176,50 @@ public class PlatElderCenterWechatServiceImpl implements PlatElderCenterWechatSe
//长者对应的报警类型
Map
<
String
,
Map
<
String
,
String
>>
elderAlarmTypeMap
=
workStationService
.
mapElderAlarmType
(
alarmRecords
);
//查询睡眠质量分析模型
SaasModelManage
modelManage
=
saasModelManageService
.
getOne
(
new
QueryWrapper
<
SaasModelManage
>().
lambda
()
.
eq
(
SaasModelManage:
:
getModelType
,
ModelManageTypeEnum
.
SLEEP
.
getCode
()));
Integer
turnedThreshold
=
0
;
if
(
modelManage
!=
null
){
SaasSleepAnalysisModel
model
=
saasSleepAnalysisModelService
.
view
(
modelManage
.
getModelId
());
if
(
model
!=
null
&&
model
.
getTurnedThreshold
()
!=
null
){
turnedThreshold
=
Integer
.
valueOf
(
model
.
getTurnedThreshold
());
}
}
LocalDateTime
now
=
LocalDateTime
.
now
();
LocalDateTime
start
=
now
.
minusSeconds
(
10
);
for
(
WorkStationInstitutionRoomVO
vo
:
roomVOList
)
{
vo
.
setPathName
(
vo
.
getPathName
()
+
"-"
+
vo
.
getRoomName
());
if
(
bedMap
.
get
(
vo
.
getRoomId
())
!=
null
)
{
List
<
WorkStationInstitutionBedVO
>
roomBedVos
=
bedMap
.
get
(
vo
.
getRoomId
());
//获取告警类型及老人状态
roomBedVos
.
forEach
(
r
->
{
if
(
StringUtil
.
isNotEmpty
(
r
.
getElderId
())
)
{
if
(
elderAlarmTypeMap
.
containsKey
(
r
.
getElderId
()))
{
for
(
WorkStationInstitutionBedVO
r
:
roomBedVos
)
{
if
(
StringUtil
.
isNotEmpty
(
r
.
getElderId
()))
{
if
(
elderAlarmTypeMap
.
containsKey
(
r
.
getElderId
()))
{
r
.
setAlarmTypeMap
(
elderAlarmTypeMap
.
get
(
r
.
getElderId
()));
}
if
(
StringUtil
.
isNotEmpty
(
r
.
getDeviceId
()))
{
if
(
StringUtil
.
isNotEmpty
(
r
.
getOriDeviceId
()))
{
PlatElderIdDTO
platElderIdDTO
=
new
PlatElderIdDTO
();
platElderIdDTO
.
setElderId
(
r
.
getElderId
());
platElderIdDTO
.
setDeviceId
(
r
.
getDeviceId
());
platElderIdDTO
.
setDeviceId
(
r
.
get
Ori
DeviceId
());
PlatElderRealTimeNowVO
nowStatus
=
platElderRealTimeService
.
nowStatus
(
platElderIdDTO
);
r
.
setElderStatus
(
nowStatus
.
getStatus
());
if
(
nowStatus
.
getStatus
()!=
null
){
DeviceInfoContentBreathe
deviceInfoContentBreathe
=
workStationService
.
getNowDataBreathe
(
platElderIdDTO
.
getElderId
(),
platElderIdDTO
.
getDeviceId
());
if
(
DeviceInfoContentBreatheEnum
.
PersonStateEnum
.
NOBODY
.
getValue
().
equals
(
nowStatus
.
getStatus
()))
{
r
.
setElderStatus
(
WorkStationStatusEnum
.
NowStatus
.
OUT
.
getValue
());
}
else
if
(
nowStatus
.
getBodyMove
()
!=
null
&&
nowStatus
.
getBodyMove
()
>
turnedThreshold
)
{
r
.
setElderStatus
(
WorkStationStatusEnum
.
NowStatus
.
TURNED
.
getValue
());
}
else
{
List
<
PlatElderCoordinateVO
>
coordinateList
=
platElderDayReportDayService
.
coordinateList
(
platElderIdDTO
.
getElderId
(),
platElderIdDTO
.
getDeviceId
(),
start
,
now
);
workStationService
.
nowStatusRest
(
r
,
platElderIdDTO
,
deviceInfoContentBreathe
,
coordinateList
);
workStationService
.
nowStatusSleep
(
r
,
platElderIdDTO
,
deviceInfoContentBreathe
);
}
}
}
}
}
);
}
vo
.
setList
(
roomBedVos
);
}
}
...
...
server-service/src/main/resources/mappers/PlatBedMapper.xml
View file @
24007b79
...
...
@@ -131,7 +131,7 @@
LEFT JOIN plat_elder pe ON pe.bed_id = pb.id
LEFT JOIN plat_room_bed_device prbd ON prbd.bed_id = pb.id and prbd.del_flag = 0
LEFT JOIN sys_file sf ON sf.id = pe.avatar
LEFT JOIN plat_device pd ON pd.id = prbd.device_id and pd.
.
del_flag = 0
LEFT JOIN plat_device pd ON pd.id = prbd.device_id and pd.del_flag = 0
<where>
pb.del_flag = 0 and pb.status = 0
<if
test=
"dto.elderName != null and dto.elderName != ''"
>
...
...
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