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
d44d7a1f
authored
Nov 10, 2023
by
huangjy
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
fix:长者报告定时器
parent
93f00def
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
695 additions
and
659 deletions
server-common/src/main/java/com/makeit/module/iot/service/IotProductDeviceService.java
server-common/src/main/java/com/makeit/module/iot/vo/breathe/DeviceInfoContentBreathe.java
server-module/src/main/java/com/makeit/module/controller/children/elder/PlatElderReportWeekChildrenController.java
server-module/src/main/java/com/makeit/module/controller/elder/PlatElderSleepController.java
server-service/src/main/java/com/makeit/service/platform/elder/PlatElderBreatheAnalysisService.java
server-service/src/main/java/com/makeit/service/platform/elder/PlatElderBreatheDayStatService.java
server-service/src/main/java/com/makeit/service/platform/elder/PlatElderDayReportWeekService.java
server-service/src/main/java/com/makeit/service/platform/elder/PlatElderReportMonthService.java
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderBreatheAnalysisServiceImpl.java
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderBreatheDayStatServiceImpl.java
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderDayReportWeekServiceImpl.java
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderReportMonthServiceImpl.java
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderSleepServiceImpl.java
server-service/src/main/java/com/makeit/task/HeartRespiratoryTask.java
server-service/src/main/java/com/makeit/task/IotSyncTask.java
server-service/src/main/java/com/makeit/task/PlatElderReportTask.java
server-service/src/main/java/com/makeit/task/ReportMonthTask.java
server-common/src/main/java/com/makeit/module/iot/service/IotProductDeviceService.java
View file @
d44d7a1f
...
@@ -265,27 +265,6 @@ public class IotProductDeviceService extends IotCommonService {
...
@@ -265,27 +265,6 @@ public class IotProductDeviceService extends IotCommonService {
return
tempList
;
return
tempList
;
}
}
return
Lists
.
newArrayList
();
return
Lists
.
newArrayList
();
/* long minute = 1440;
List<DeviceInfoContentBreathe> breatheList = Lists.newArrayList();
DeviceInfoContentBreathe deviceInfoContentBreathe;
for (long i = 1; i <= minute; i++) {
int brRandomLong = RandomUtils.nextInt(11,28);
int hrRandomLong = RandomUtils.nextInt(55,125);
int movebodyRandomLong = RandomUtils.nextInt(40,90);
deviceInfoContentBreathe = new DeviceInfoContentBreathe();
LocalDateTime localDateTime = startTime.plusMinutes(i);
long timeStamp = localDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
deviceInfoContentBreathe.setTimestamp(timeStamp);
DeviceInfoContentBreathe.Properties properties = new DeviceInfoContentBreathe.Properties();
properties.setBr(brRandomLong);
properties.setHr(hrRandomLong);
properties.setBodymove(movebodyRandomLong);
deviceInfoContentBreathe.setProperties(properties);
breatheList.add(deviceInfoContentBreathe);
}
return breatheList;*/
}
}
public
static
String
formatLongTime
(
long
time
)
{
public
static
String
formatLongTime
(
long
time
)
{
...
...
server-common/src/main/java/com/makeit/module/iot/vo/breathe/DeviceInfoContentBreathe.java
View file @
d44d7a1f
...
@@ -74,5 +74,12 @@ public class DeviceInfoContentBreathe {
...
@@ -74,5 +74,12 @@ public class DeviceInfoContentBreathe {
@JsonProperty
(
"point"
)
@JsonProperty
(
"point"
)
// 呼吸波形
// 呼吸波形
private
List
<
Integer
>
point
;
private
List
<
Integer
>
point
;
private
int
brStopThreshold
;
// 发生次数阈值
private
int
brFastThreshold
;
// 发生次数阈值
private
int
brSlowThreshold
;
// 发生次数阈值
private
int
hrFastThreshold
;
// 发生次数阈值
private
int
hrSlowThreshold
;
// 发生次数阈值
}
}
}
}
server-module/src/main/java/com/makeit/module/controller/children/elder/PlatElderReportWeekChildrenController.java
View file @
d44d7a1f
...
@@ -4,7 +4,6 @@ package com.makeit.module.controller.children.elder;
...
@@ -4,7 +4,6 @@ package com.makeit.module.controller.children.elder;
import
com.makeit.common.response.ApiResponseEntity
;
import
com.makeit.common.response.ApiResponseEntity
;
import
com.makeit.common.response.ApiResponseUtils
;
import
com.makeit.common.response.ApiResponseUtils
;
import
com.makeit.dto.platform.elder.PlatElderReportDTO
;
import
com.makeit.dto.platform.elder.PlatElderReportDTO
;
import
com.makeit.global.annotation.AuthIgnore
;
import
com.makeit.service.platform.elder.PlatElderDayReportWeekService
;
import
com.makeit.service.platform.elder.PlatElderDayReportWeekService
;
import
com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO
;
import
com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO
;
import
com.makeit.vo.platform.elder.report.day.*
;
import
com.makeit.vo.platform.elder.report.day.*
;
...
@@ -104,13 +103,5 @@ public class PlatElderReportWeekChildrenController {
...
@@ -104,13 +103,5 @@ public class PlatElderReportWeekChildrenController {
}
}
@ApiOperation
(
"定时任务"
)
@PostMapping
(
"heartRespiratoryJob"
)
@AuthIgnore
public
ApiResponseEntity
<
String
>
heartRespiratoryJob
()
{
platElderDayReportWeekService
.
heartRespiratoryJob
();
return
ApiResponseUtils
.
success
();
}
}
}
server-module/src/main/java/com/makeit/module/controller/elder/PlatElderSleepController.java
View file @
d44d7a1f
...
@@ -9,7 +9,7 @@ import com.makeit.global.aspect.tenant.TenantIdIgnore;
...
@@ -9,7 +9,7 @@ import com.makeit.global.aspect.tenant.TenantIdIgnore;
import
com.makeit.service.platform.device.PlatDeviceService
;
import
com.makeit.service.platform.device.PlatDeviceService
;
import
com.makeit.service.platform.elder.PlatElderReportMonthService
;
import
com.makeit.service.platform.elder.PlatElderReportMonthService
;
import
com.makeit.service.platform.elder.PlatElderSleepService
;
import
com.makeit.service.platform.elder.PlatElderSleepService
;
import
com.makeit.task.
IotSync
Task
;
import
com.makeit.task.
PlatElderReport
Task
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
io.swagger.annotations.ApiOperation
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
@@ -32,7 +32,7 @@ import org.springframework.web.bind.annotation.RestController;
...
@@ -32,7 +32,7 @@ import org.springframework.web.bind.annotation.RestController;
public
class
PlatElderSleepController
{
public
class
PlatElderSleepController
{
@Autowired
@Autowired
private
IotSyncTask
iotSync
Task
;
private
PlatElderReportTask
platElderReport
Task
;
@Autowired
@Autowired
private
PlatElderSleepService
platElderSleepService
;
private
PlatElderSleepService
platElderSleepService
;
@Autowired
@Autowired
...
@@ -40,14 +40,7 @@ public class PlatElderSleepController {
...
@@ -40,14 +40,7 @@ public class PlatElderSleepController {
@Autowired
@Autowired
private
PlatElderReportMonthService
platElderReportMonthService
;
private
PlatElderReportMonthService
platElderReportMonthService
;
@ApiOperation
(
"测试"
)
@PostMapping
(
"test"
)
@AuthIgnore
@TenantIdIgnore
public
ApiResponseEntity
<
Void
>
test
()
{
iotSyncTask
.
elderSleepSleepAnalysisTask
();
return
ApiResponseUtils
.
success
();
}
@ApiOperation
(
"测试"
)
@ApiOperation
(
"测试"
)
@PostMapping
(
"test1"
)
@PostMapping
(
"test1"
)
...
@@ -61,8 +54,24 @@ public class PlatElderSleepController {
...
@@ -61,8 +54,24 @@ public class PlatElderSleepController {
@ApiOperation
(
"测试"
)
@ApiOperation
(
"测试"
)
@PostMapping
(
"test2"
)
@PostMapping
(
"test2"
)
@AuthIgnore
@AuthIgnore
public
ApiResponseEntity
<
Void
>
reportMonthJob
()
{
public
ApiResponseEntity
<
Void
>
heartRespiratoryTask
()
{
platElderReportMonthService
.
reportMonthJob
();
platElderReportTask
.
heartRespiratoryTask
();
return
ApiResponseUtils
.
success
();
}
@ApiOperation
(
"测试"
)
@PostMapping
(
"test3"
)
@AuthIgnore
public
ApiResponseEntity
<
Void
>
elderHeartRespiratoryAnalysisTask
()
{
platElderReportTask
.
elderHeartRespiratoryAnalysisTask
();
return
ApiResponseUtils
.
success
();
}
@ApiOperation
(
"测试"
)
@PostMapping
(
"test4"
)
@AuthIgnore
public
ApiResponseEntity
<
Void
>
elderSleepSleepAnalysisTask
()
{
platElderReportTask
.
elderSleepSleepAnalysisTask
();
return
ApiResponseUtils
.
success
();
return
ApiResponseUtils
.
success
();
}
}
...
...
server-service/src/main/java/com/makeit/service/platform/elder/PlatElderBreatheAnalysisService.java
View file @
d44d7a1f
...
@@ -13,4 +13,5 @@ import com.makeit.entity.platform.elder.PlatElderBreatheAnalysis;
...
@@ -13,4 +13,5 @@ import com.makeit.entity.platform.elder.PlatElderBreatheAnalysis;
*/
*/
public
interface
PlatElderBreatheAnalysisService
extends
IService
<
PlatElderBreatheAnalysis
>
{
public
interface
PlatElderBreatheAnalysisService
extends
IService
<
PlatElderBreatheAnalysis
>
{
void
elderHeartRespiratoryAnalysisTask
();
}
}
server-service/src/main/java/com/makeit/service/platform/elder/PlatElderBreatheDayStatService.java
View file @
d44d7a1f
...
@@ -13,4 +13,5 @@ import com.makeit.entity.platform.elder.PlatElderBreatheDayStat;
...
@@ -13,4 +13,5 @@ import com.makeit.entity.platform.elder.PlatElderBreatheDayStat;
*/
*/
public
interface
PlatElderBreatheDayStatService
extends
IService
<
PlatElderBreatheDayStat
>
{
public
interface
PlatElderBreatheDayStatService
extends
IService
<
PlatElderBreatheDayStat
>
{
void
heartRespiratoryTask
();
}
}
server-service/src/main/java/com/makeit/service/platform/elder/PlatElderDayReportWeekService.java
View file @
d44d7a1f
...
@@ -48,6 +48,4 @@ public interface PlatElderDayReportWeekService {
...
@@ -48,6 +48,4 @@ public interface PlatElderDayReportWeekService {
List
<
PlatElderBehaviorDistributionVO
>
behaviorDistribution
(
PlatElderReportDTO
platElderIdDTO
);
List
<
PlatElderBehaviorDistributionVO
>
behaviorDistribution
(
PlatElderReportDTO
platElderIdDTO
);
void
heartRespiratoryJob
();
}
}
server-service/src/main/java/com/makeit/service/platform/elder/PlatElderReportMonthService.java
View file @
d44d7a1f
...
@@ -28,7 +28,6 @@ public interface PlatElderReportMonthService extends IService<PlatElderReportMon
...
@@ -28,7 +28,6 @@ public interface PlatElderReportMonthService extends IService<PlatElderReportMon
List
<
PlatElderReportMonthVO
>
reportMonth
(
PlatElderReportDTO
platElderIdDTO
);
List
<
PlatElderReportMonthVO
>
reportMonth
(
PlatElderReportDTO
platElderIdDTO
);
void
reportMonthJob
();
}
}
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderBreatheAnalysisServiceImpl.java
View file @
d44d7a1f
package
com
.
makeit
.
service
.
platform
.
elder
.
impl
;
package
com
.
makeit
.
service
.
platform
.
elder
.
impl
;
import
cn.hutool.core.date.DatePattern
;
import
cn.hutool.core.date.DateUtil
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.google.common.collect.Lists
;
import
com.google.common.collect.Maps
;
import
com.makeit.common.entity.BaseEntity
;
import
com.makeit.entity.platform.device.PlatDevice
;
import
com.makeit.entity.platform.elder.PlatElder
;
import
com.makeit.entity.platform.elder.PlatElderBreatheAnalysis
;
import
com.makeit.entity.platform.elder.PlatElderBreatheAnalysis
;
import
com.makeit.entity.platform.elder.PlatElderBreatheDayStat
;
import
com.makeit.entity.saas.analysis.SaasDiseaseEvaluateReport
;
import
com.makeit.entity.saas.analysis.SaasDiseaseModel
;
import
com.makeit.entity.saas.analysis.SaasSleepAnalysisModel
;
import
com.makeit.enums.report.BreatheTypeEnum
;
import
com.makeit.enums.report.HeartRateTypeEnum
;
import
com.makeit.mapper.platform.elder.PlatElderBreatheAnalysisMapper
;
import
com.makeit.mapper.platform.elder.PlatElderBreatheAnalysisMapper
;
import
com.makeit.module.iot.service.IotProductDeviceService
;
import
com.makeit.module.iot.vo.DeviceOperationLogEntity
;
import
com.makeit.module.iot.vo.analysis.AnalysisVO
;
import
com.makeit.module.iot.vo.analysis.BreatheAbnormalVO
;
import
com.makeit.module.iot.vo.analysis.DiseaseReportVO
;
import
com.makeit.module.iot.vo.analysis.EvaluateReportVO
;
import
com.makeit.module.iot.vo.breathe.DeviceInfoContentBreathe
;
import
com.makeit.service.platform.elder.PlatElderBreatheAnalysisService
;
import
com.makeit.service.platform.elder.PlatElderBreatheAnalysisService
;
import
com.makeit.service.platform.elder.PlatElderBreatheDayStatService
;
import
com.makeit.service.platform.elder.PlatElderRealTimeService
;
import
com.makeit.service.platform.elder.PlatElderService
;
import
com.makeit.service.saas.SaasDiseaseEvaluateReportService
;
import
com.makeit.service.saas.SaasDiseaseModelService
;
import
com.makeit.service.saas.SaasDiseaseReportService
;
import
com.makeit.service.saas.SaasSleepAnalysisModelService
;
import
com.makeit.utils.data.convert.JsonUtil
;
import
com.makeit.utils.data.convert.StreamUtil
;
import
com.makeit.utils.time.LocalDateTimeUtils
;
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
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.time.*
;
import
java.time.format.DateTimeFormatter
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.TreeMap
;
import
java.util.stream.Collectors
;
/**
/**
* <p>
* <p>
...
@@ -17,4 +62,406 @@ import org.springframework.stereotype.Service;
...
@@ -17,4 +62,406 @@ import org.springframework.stereotype.Service;
@Service
@Service
public
class
PlatElderBreatheAnalysisServiceImpl
extends
ServiceImpl
<
PlatElderBreatheAnalysisMapper
,
PlatElderBreatheAnalysis
>
implements
PlatElderBreatheAnalysisService
{
public
class
PlatElderBreatheAnalysisServiceImpl
extends
ServiceImpl
<
PlatElderBreatheAnalysisMapper
,
PlatElderBreatheAnalysis
>
implements
PlatElderBreatheAnalysisService
{
@Autowired
private
PlatElderService
platElderService
;
@Autowired
private
PlatElderBreatheDayStatService
platElderBreatheDayStatService
;
@Autowired
private
SaasSleepAnalysisModelService
saasSleepAnalysisModelService
;
@Autowired
private
SaasDiseaseModelService
saasDiseaseModelService
;
@Autowired
private
SaasDiseaseEvaluateReportService
saasDiseaseEvaluateReportService
;
@Autowired
private
SaasDiseaseReportService
saasDiseaseReportService
;
@Autowired
private
IotProductDeviceService
productDeviceService
;
@Autowired
private
PlatElderBreatheAnalysisService
platElderBreatheAnalysisService
;
@Autowired
private
PlatElderRealTimeService
platElderRealTimeService
;
private
static
final
DateTimeFormatter
DEFAULT_FORMATTER
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm"
);
@Override
@Transactional
(
rollbackFor
=
Exception
.
class
)
public
void
elderHeartRespiratoryAnalysisTask
()
{
LocalDate
nowDate
=
LocalDate
.
now
();
LocalDate
yesDate
=
nowDate
.
minusDays
(
1
);
LocalDateTime
yesStart
=
LocalDateTimeUtils
.
getDayStart
(
yesDate
);
LocalDateTime
yesEnd
=
LocalDateTimeUtils
.
getDayEnd
(
yesDate
);
List
<
PlatElder
>
elderList
=
platElderService
.
list
(
new
QueryWrapper
<
PlatElder
>().
lambda
()
.
isNotNull
(
PlatElder:
:
getBedId
));
if
(
CollectionUtils
.
isEmpty
(
elderList
))
{
return
;
}
List
<
String
>
elderIdList
=
StreamUtil
.
map
(
elderList
,
BaseEntity:
:
getId
);
List
<
PlatElderBreatheDayStat
>
elderBreatheDayStatList
=
platElderBreatheDayStatService
.
list
(
new
QueryWrapper
<
PlatElderBreatheDayStat
>().
lambda
()
.
in
(
PlatElderBreatheDayStat:
:
getElderId
,
elderIdList
)
.
eq
(
PlatElderBreatheDayStat:
:
getDay
,
yesDate
));
Map
<
String
,
PlatElderBreatheDayStat
>
breatheDayStatMap
=
StreamUtil
.
toMap
(
elderBreatheDayStatList
,
PlatElderBreatheDayStat:
:
getElderId
);
SaasSleepAnalysisModel
analysisModel
=
saasSleepAnalysisModelService
.
getOne
(
new
QueryWrapper
<
SaasSleepAnalysisModel
>().
lambda
()
.
orderByDesc
(
BaseEntity:
:
getCreateBy
)
.
last
(
"limit 1"
));
SaasDiseaseModel
saasDiseaseModel
=
saasDiseaseModelService
.
getOne
(
new
QueryWrapper
<
SaasDiseaseModel
>().
lambda
()
.
orderByDesc
(
BaseEntity:
:
getCreateBy
)
.
last
(
"limit 1"
));
// 呼吸率
int
breatheThresholdMin
=
Integer
.
parseInt
(
analysisModel
.
getBreatheThresholdMin
());
int
breatheThresholdMax
=
Integer
.
parseInt
(
analysisModel
.
getBreatheThresholdMax
());
int
breatheDuration
=
Integer
.
parseInt
(
analysisModel
.
getBreatheDuration
());
// 心率
int
heartThresholdMin
=
Integer
.
parseInt
(
analysisModel
.
getHeartThresholdMin
());
int
heartThresholdMax
=
Integer
.
parseInt
(
analysisModel
.
getHeartThresholdMax
());
int
heartDuration
=
Integer
.
parseInt
(
analysisModel
.
getHeartDuration
());
for
(
PlatElder
platElder
:
elderList
)
{
PlatElderBreatheDayStat
elderBreatheDayStat
=
breatheDayStatMap
.
get
(
platElder
.
getId
());
if
(
elderBreatheDayStat
==
null
)
{
continue
;
}
PlatDevice
platDevice
=
platElderRealTimeService
.
getBreathDevice
(
platElder
.
getId
(),
null
);
if
(
platDevice
==
null
)
{
continue
;
}
List
<
String
>
dayHourRange
=
getLastDayHourRange
(
yesStart
);
TreeMap
<
String
,
AnalysisVO
>
totalMap
=
new
TreeMap
<>();
String
reportStartTime
=
""
;
String
reportEndTime
=
""
;
for
(
String
hourRange
:
dayHourRange
)
{
String
[]
hourRangeArray
=
hourRange
.
split
(
"~"
);
List
<
DeviceOperationLogEntity
>
deviceOperationLogEntities
=
productDeviceService
.
getDeviceLogByTimeRange
(
platDevice
.
getOriDeviceId
(),
"reportProperty"
,
5000
,
hourRangeArray
[
0
],
hourRangeArray
[
1
]);
if
(
CollectionUtils
.
isEmpty
(
deviceOperationLogEntities
))
{
continue
;
}
List
<
DeviceInfoContentBreathe
>
deviceInfoContentBreatheList
=
deviceOperationLogEntities
.
stream
()
.
filter
(
deviceOperationLogEntity
->
deviceOperationLogEntity
.
getType
().
contains
(
"reportProperty"
))
.
map
(
deviceOperationLogEntity
->
{
DeviceInfoContentBreathe
deviceInfoContentBreathe
=
JsonUtil
.
toObj
((
String
)
deviceOperationLogEntity
.
getContent
(),
DeviceInfoContentBreathe
.
class
);
deviceInfoContentBreathe
.
setReportTime
(
formatLongTime
(
deviceInfoContentBreathe
.
getTimestamp
()));
return
deviceInfoContentBreathe
;
})
.
collect
(
Collectors
.
toList
());
Map
<
String
,
List
<
DeviceInfoContentBreathe
>>
minuteMap
=
StreamUtil
.
groupBy
(
deviceInfoContentBreatheList
,
DeviceInfoContentBreathe:
:
getReportTime
);
deviceOperationLogEntities
.
clear
();
// 统计每小时的体动和翻身
Map
<
String
,
AnalysisVO
>
statisticsMap
=
Maps
.
newHashMap
();
List
<
DeviceInfoContentBreathe
>
deviceInfoContentBreathes
;
for
(
Map
.
Entry
<
String
,
List
<
DeviceInfoContentBreathe
>>
entry
:
minuteMap
.
entrySet
())
{
if
(
StringUtils
.
isEmpty
(
reportStartTime
))
{
reportStartTime
=
entry
.
getKey
();
}
reportEndTime
=
entry
.
getKey
();
deviceInfoContentBreathes
=
entry
.
getValue
();
DeviceInfoContentBreathe
.
Properties
breatheProperties
;
// 呼吸暂停
int
brStopCount
=
0
;
int
brStopSecond
=
0
;
// 呼吸过速
int
brFastCount
=
0
;
int
brFastSecond
=
0
;
int
brFast
=
0
;
// 呼吸过缓
int
brSlowCount
=
0
;
int
brSlowSecond
=
0
;
int
brSlow
=
0
;
// 心率过速
int
hrFastCount
=
0
;
int
hrFast
=
0
;
int
hrFastSecond
=
0
;
// 心率过缓
int
hrSlowCount
=
0
;
int
hrSlowSecond
=
0
;
int
hrSlow
=
0
;
AnalysisVO
analysisVO
=
new
AnalysisVO
();
for
(
DeviceInfoContentBreathe
infoContentBreathe
:
deviceInfoContentBreathes
)
{
// 体动指数
breatheProperties
=
infoContentBreathe
.
getProperties
();
int
br
=
breatheProperties
.
getBr
();
int
hr
=
breatheProperties
.
getHr
();
Integer
hasPerson
=
breatheProperties
.
getPerson
();
// 0无人,1有人
if
(
hasPerson
==
0
)
{
continue
;
}
// 判断呼吸暂停
if
(
br
==
0
)
{
brStopSecond
++;
if
(
brStopSecond
==
breatheDuration
)
{
brStopCount
++;
brStopSecond
=
0
;
}
}
else
{
brStopSecond
=
0
;
}
// 判断呼吸率阈值,记录发生时间和当前呼吸率
if
(
breatheThresholdMax
<
br
)
{
if
(
brFast
==
0
)
{
brFast
=
br
;
}
brFastSecond
++;
if
(
brFastSecond
==
breatheDuration
)
{
brFastCount
++;
brFastSecond
=
0
;
}
}
else
{
brFastSecond
=
0
;
}
if
(
br
<
breatheThresholdMin
)
{
if
(
brSlow
==
0
)
{
brSlow
=
br
;
}
brSlowSecond
++;
if
(
brSlowSecond
==
breatheDuration
)
{
brSlowCount
++;
brSlowSecond
=
0
;
}
}
else
{
brSlowSecond
=
0
;
}
if
(
heartThresholdMax
<
hr
)
{
if
(
hrFast
==
0
)
{
hrFast
=
br
;
}
hrFastSecond
++;
if
(
hrFastSecond
==
heartDuration
)
{
hrFastCount
++;
hrFastSecond
=
0
;
}
}
else
{
hrFastSecond
=
0
;
}
if
(
heartThresholdMin
>
hr
)
{
if
(
hrSlow
==
0
)
{
hrSlow
=
br
;
}
hrSlowSecond
++;
if
(
hrSlowSecond
==
heartDuration
)
{
hrSlowCount
++;
hrSlowSecond
=
0
;
}
}
else
{
hrSlowSecond
=
0
;
}
}
analysisVO
.
setBrStopThreshold
(
brStopCount
);
analysisVO
.
setBrFastThreshold
(
brFastCount
);
analysisVO
.
setBrSlowThreshold
(
brSlowCount
);
analysisVO
.
setHrFastThreshold
(
hrFastCount
);
analysisVO
.
setHrSlowThreshold
(
hrSlowCount
);
statisticsMap
.
put
(
entry
.
getKey
(),
analysisVO
);
}
TreeMap
<
String
,
AnalysisVO
>
treeMap
=
new
TreeMap
<>(
statisticsMap
);
totalMap
.
putAll
(
treeMap
);
statisticsMap
.
clear
();
treeMap
.
clear
();
}
if
(
totalMap
.
isEmpty
())
{
continue
;
}
// 呼吸暂停
int
apneaTime
=
Integer
.
parseInt
(
saasDiseaseModel
.
getApneaTime
());
int
apneaThreshold
=
Integer
.
parseInt
(
saasDiseaseModel
.
getApneaThreshold
());
BigDecimal
apneaRate
=
new
BigDecimal
(
apneaTime
).
divide
(
new
BigDecimal
(
apneaThreshold
),
2
,
RoundingMode
.
HALF_UP
);
// 呼吸过速
int
tachypneaTime
=
Integer
.
parseInt
(
saasDiseaseModel
.
getTachypneaTime
());
int
tachypneaThreshold
=
Integer
.
parseInt
(
saasDiseaseModel
.
getTachypneaThreshold
());
BigDecimal
tachypneaRate
=
new
BigDecimal
(
tachypneaTime
).
divide
(
new
BigDecimal
(
tachypneaThreshold
),
2
,
RoundingMode
.
HALF_UP
);
// 呼吸过缓
int
bradypneaTime
=
Integer
.
parseInt
(
saasDiseaseModel
.
getBradypneaTime
());
int
bradypneaThreshold
=
Integer
.
parseInt
(
saasDiseaseModel
.
getBradypneaThreshold
());
BigDecimal
bradypneaRate
=
new
BigDecimal
(
bradypneaTime
).
divide
(
new
BigDecimal
(
bradypneaThreshold
),
2
,
RoundingMode
.
HALF_UP
);
// 心率过缓
int
bradycardiaTime
=
Integer
.
parseInt
(
saasDiseaseModel
.
getBradycardiaTime
());
int
bradycardiaThreshold
=
Integer
.
parseInt
(
saasDiseaseModel
.
getBradycardiaThreshold
());
BigDecimal
bradycardiaRate
=
new
BigDecimal
(
bradycardiaTime
).
divide
(
new
BigDecimal
(
bradycardiaThreshold
),
2
,
RoundingMode
.
HALF_UP
);
// 心率过速
int
tachycardiaTime
=
Integer
.
parseInt
(
saasDiseaseModel
.
getTachycardiaTime
());
int
tachycardiaComparison
=
Integer
.
parseInt
(
saasDiseaseModel
.
getTachycardiaThreshold
());
BigDecimal
tachycardiaRate
=
new
BigDecimal
(
tachycardiaTime
).
divide
(
new
BigDecimal
(
tachycardiaComparison
),
2
,
RoundingMode
.
HALF_UP
);
// 呼吸疾病报告
int
brStopCount
=
0
;
int
brFastCount
=
0
;
int
brSlowCount
=
0
;
int
hrFastCount
=
0
;
int
hrSlowCount
=
0
;
// 计算异常的信息,并且统计异常的次数
List
<
BreatheAbnormalVO
>
breatheAbnormalVOList
=
Lists
.
newArrayList
();
for
(
Map
.
Entry
<
String
,
AnalysisVO
>
entry
:
totalMap
.
entrySet
())
{
AnalysisVO
analysisVO
=
entry
.
getValue
();
if
(
analysisVO
.
getBrStopThreshold
()
>
0
)
{
brStopCount
+=
analysisVO
.
getBrStopThreshold
();
}
if
(
analysisVO
.
getBrSlowThreshold
()
>
0
)
{
brSlowCount
+=
analysisVO
.
getBrSlowThreshold
();
}
if
(
analysisVO
.
getBrFastThreshold
()
>
0
)
{
brFastCount
+=
analysisVO
.
getBrFastThreshold
();
}
if
(
analysisVO
.
getHrFastThreshold
()
>
0
)
{
hrFastCount
+=
analysisVO
.
getHrFastThreshold
();
}
if
(
analysisVO
.
getHrSlowThreshold
()
>
0
)
{
hrSlowCount
+=
analysisVO
.
getHrSlowThreshold
();
}
}
int
timeHourRange
=
24
;
if
(
StringUtils
.
isNotEmpty
(
reportStartTime
)
&&
StringUtils
.
isNotEmpty
(
reportEndTime
))
{
Long
durationRange
=
getDurationRange
(
reportStartTime
,
reportEndTime
);
timeHourRange
=
(
int
)
(
durationRange
/
60
);
}
// 判断是否满足配置的呼吸心率异常类型
BigDecimal
dayBrStopRate
=
brStopCount
==
0
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
timeHourRange
).
divide
(
new
BigDecimal
(
brStopCount
),
2
,
RoundingMode
.
HALF_UP
);
BigDecimal
dayBrSlowRate
=
brSlowCount
==
0
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
timeHourRange
).
divide
(
new
BigDecimal
(
brSlowCount
),
2
,
RoundingMode
.
HALF_UP
);
BigDecimal
dayBrFastRate
=
brFastCount
==
0
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
timeHourRange
).
divide
(
new
BigDecimal
(
brFastCount
),
2
,
RoundingMode
.
HALF_UP
);
BigDecimal
dayHrFastRate
=
hrFastCount
==
0
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
timeHourRange
).
divide
(
new
BigDecimal
(
hrFastCount
),
2
,
RoundingMode
.
HALF_UP
);
BigDecimal
dayHrSlowRate
=
hrSlowCount
==
0
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
timeHourRange
).
divide
(
new
BigDecimal
(
hrSlowCount
),
2
,
RoundingMode
.
HALF_UP
);
boolean
brStopFlag
=
false
;
boolean
brFastFlag
=
false
;
boolean
brSlowFlag
=
false
;
boolean
hrFastFlag
=
false
;
boolean
hrSlowFlag
=
false
;
boolean
normalFlag
;
if
(
apneaRate
.
compareTo
(
dayBrStopRate
)
>
0
)
{
brStopFlag
=
true
;
}
if
(
tachypneaRate
.
compareTo
(
dayBrFastRate
)
>
0
)
{
brFastFlag
=
true
;
}
if
(
bradypneaRate
.
compareTo
(
dayBrSlowRate
)
>
0
)
{
brSlowFlag
=
true
;
}
if
(
tachycardiaRate
.
compareTo
(
dayHrFastRate
)
>
0
)
{
hrFastFlag
=
true
;
}
if
(
bradycardiaRate
.
compareTo
(
dayHrSlowRate
)
>
0
)
{
hrSlowFlag
=
true
;
}
normalFlag
=
!(
hrFastFlag
||
brStopFlag
||
brFastFlag
||
brSlowFlag
||
hrSlowFlag
);
SaasDiseaseEvaluateReport
saasDiseaseEvaluateReport
=
saasDiseaseEvaluateReportService
.
getOne
(
new
QueryWrapper
<
SaasDiseaseEvaluateReport
>().
lambda
()
.
orderByDesc
(
BaseEntity:
:
getCreateBy
)
.
last
(
"limit 1"
));
String
resultContent
=
saasDiseaseEvaluateReport
.
getResultContent
();
List
<
DiseaseReportVO
>
evaluateReportList
=
JSON
.
parseArray
(
resultContent
,
DiseaseReportVO
.
class
);
DiseaseReportVO
finalReport
=
new
DiseaseReportVO
();
// 根据疾病标准配置的规则判断满足哪个区间范围
for
(
DiseaseReportVO
diseaseReportVO
:
evaluateReportList
)
{
List
<
DiseaseReportVO
.
Condition
>
conditionList
=
diseaseReportVO
.
getCondition
();
boolean
conditionFlag
=
true
;
for
(
DiseaseReportVO
.
Condition
condition
:
conditionList
)
{
String
resultRelational
=
condition
.
getResultRelational
();
String
resultCondition
=
condition
.
getResultCondition
();
if
(
"or"
.
equals
(
resultCondition
))
{
if
(
conditionFlag
)
{
break
;
}
}
else
{
if
(
resultRelational
.
equals
(
"normal"
))
{
conditionFlag
=
normalFlag
&&
conditionFlag
;
}
if
(
resultRelational
.
equals
(
BreatheTypeEnum
.
APNEA
.
getCode
()))
{
conditionFlag
=
brStopFlag
&&
conditionFlag
;
}
if
(
resultRelational
.
equals
(
BreatheTypeEnum
.
TACHYPNEA
.
getCode
()))
{
conditionFlag
=
brFastFlag
&&
conditionFlag
;
}
if
(
resultRelational
.
equals
(
BreatheTypeEnum
.
BRADYPNEA
.
getCode
()))
{
conditionFlag
=
brSlowFlag
&&
conditionFlag
;
}
if
(
resultRelational
.
equals
(
HeartRateTypeEnum
.
TACHYCARDIA
.
getCode
()))
{
conditionFlag
=
hrFastFlag
&&
conditionFlag
;
}
if
(
resultRelational
.
equals
(
HeartRateTypeEnum
.
BRADYCARDIA
.
getCode
()))
{
conditionFlag
=
hrSlowFlag
&&
conditionFlag
;
}
}
}
if
(
conditionFlag
)
{
finalReport
=
diseaseReportVO
;
}
}
EvaluateReportVO
diseaseReport
=
saasDiseaseReportService
.
getByScore
(
Long
.
parseLong
(
finalReport
.
getScore
()));
PlatElderBreatheAnalysis
platElderBreatheAnalysis
=
new
PlatElderBreatheAnalysis
();
platElderBreatheAnalysis
.
setElderId
(
platElder
.
getId
());
platElderBreatheAnalysis
.
setAvgBreatheRate
(
String
.
valueOf
(
elderBreatheDayStat
.
getRespiratoryRateAvg
()));
platElderBreatheAnalysis
.
setAvgHeartRate
(
String
.
valueOf
(
elderBreatheDayStat
.
getHeartRateAvg
()));
platElderBreatheAnalysis
.
setBreatheScore
(
finalReport
.
getScore
());
platElderBreatheAnalysis
.
setHappenDate
(
String
.
valueOf
(
yesDate
));
platElderBreatheAnalysis
.
setTenantId
(
platElder
.
getTenantId
());
platElderBreatheAnalysis
.
setBreatheEvaluate
(
diseaseReport
==
null
?
""
:
diseaseReport
.
getEvaluate
());
platElderBreatheAnalysisService
.
save
(
platElderBreatheAnalysis
);
}
}
public
Long
getDurationRange
(
String
startTime
,
String
endTime
)
{
LocalDateTime
target
=
LocalDateTime
.
parse
(
startTime
,
DEFAULT_FORMATTER
);
// 获取当前日期,此处为了保证后续结果固定,注掉自动获取当前日期,指定固定日期
// LocalDate today = LocalDate.now();
LocalDateTime
source
=
LocalDateTime
.
parse
(
endTime
,
DEFAULT_FORMATTER
);
return
Duration
.
between
(
target
,
source
).
toMinutes
();
}
public
static
String
formatLongTime
(
long
time
)
{
return
DEFAULT_FORMATTER
.
format
(
LocalDateTime
.
ofInstant
(
Instant
.
ofEpochMilli
(
time
),
ZoneId
.
systemDefault
()));
}
public
List
<
String
>
getLastDayHourRange
(
LocalDateTime
startDateTime
)
{
List
<
String
>
list
=
Lists
.
newArrayList
();
String
startTime
;
String
endTime
;
for
(
int
i
=
1
;
i
<=
24
;
i
++)
{
startTime
=
DateUtil
.
format
(
startDateTime
.
plusHours
(
i
-
1
),
DatePattern
.
NORM_DATETIME_PATTERN
);
endTime
=
DateUtil
.
format
(
startDateTime
.
plusHours
(
i
),
DatePattern
.
NORM_DATETIME_PATTERN
);
list
.
add
(
startTime
+
"~"
+
endTime
);
}
return
list
;
}
}
}
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderBreatheDayStatServiceImpl.java
View file @
d44d7a1f
package
com
.
makeit
.
service
.
platform
.
elder
.
impl
;
package
com
.
makeit
.
service
.
platform
.
elder
.
impl
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.makeit.entity.platform.elder.PlatElderBreatheDayStat
;
import
com.makeit.entity.platform.alarm.PlatAlarmRecord
;
import
com.makeit.entity.platform.device.PlatDevice
;
import
com.makeit.entity.platform.elder.*
;
import
com.makeit.enums.platform.alarm.PlatAlarmConfigEnum
;
import
com.makeit.enums.report.BreatheTypeEnum
;
import
com.makeit.enums.report.HeartRateTypeEnum
;
import
com.makeit.mapper.platform.elder.PlatElderBreatheDayStatMapper
;
import
com.makeit.mapper.platform.elder.PlatElderBreatheDayStatMapper
;
import
com.makeit.service.platform.elder.PlatElderBreatheDayStatService
;
import
com.makeit.module.iot.service.IotProductDeviceService
;
import
com.makeit.module.iot.vo.analysis.DiseaseReportVO
;
import
com.makeit.module.iot.vo.breathe.DeviceInfoContentBreathe
;
import
com.makeit.service.platform.alarm.PlatAlarmRecordService
;
import
com.makeit.service.platform.elder.*
;
import
com.makeit.utils.data.convert.StreamUtil
;
import
com.makeit.utils.data.validate.CollectionUtils
;
import
com.makeit.utils.data.validate.MapUtil
;
import
com.makeit.utils.time.LocalDateTimeUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
/**
/**
* <p>
* <p>
...
@@ -17,4 +41,108 @@ import org.springframework.stereotype.Service;
...
@@ -17,4 +41,108 @@ import org.springframework.stereotype.Service;
@Service
@Service
public
class
PlatElderBreatheDayStatServiceImpl
extends
ServiceImpl
<
PlatElderBreatheDayStatMapper
,
PlatElderBreatheDayStat
>
implements
PlatElderBreatheDayStatService
{
public
class
PlatElderBreatheDayStatServiceImpl
extends
ServiceImpl
<
PlatElderBreatheDayStatMapper
,
PlatElderBreatheDayStat
>
implements
PlatElderBreatheDayStatService
{
@Autowired
private
PlatAlarmRecordService
platAlarmRecordService
;
@Autowired
private
PlatElderService
platElderService
;
@Autowired
private
PlatElderSleepAnalysisService
platElderSleepAnalysisService
;
@Autowired
private
IotProductDeviceService
iotProductDeviceService
;
@Autowired
private
PlatElderRealTimeService
platElderRealTimeService
;
@Autowired
private
PlatElderReportMonthService
platElderReportMonthService
;
@Transactional
(
rollbackFor
=
Exception
.
class
)
@Override
public
void
heartRespiratoryTask
()
{
LocalDate
nowDate
=
LocalDate
.
now
();
LocalDate
yesDate
=
nowDate
.
minusDays
(
1
);
LocalDateTime
yesStart
=
LocalDateTimeUtils
.
getDayStart
(
yesDate
);
LocalDateTime
yesEnd
=
LocalDateTimeUtils
.
getDayEnd
(
yesDate
);
List
<
PlatElderBreatheDayStat
>
breatheDayStatList
=
new
ArrayList
<>(
10
);
List
<
PlatElder
>
elderList
=
platElderService
.
list
(
new
QueryWrapper
<
PlatElder
>().
lambda
()
.
isNotNull
(
PlatElder:
:
getBedId
));
DateTimeFormatter
dateTimeFormatter
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd"
);
List
<
PlatElderReportMonth
>
reportMonthList
=
new
ArrayList
<>(
10
);
List
<
PlatElderSleepAnalysis
>
sleepAnalysesList
=
platElderSleepAnalysisService
.
list
(
new
QueryWrapper
<
PlatElderSleepAnalysis
>().
lambda
()
.
in
(
PlatElderSleepAnalysis:
:
getElderId
,
StreamUtil
.
mapId
(
elderList
,
PlatElder:
:
getId
))
.
eq
(
PlatElderSleepAnalysis:
:
getHappenDate
,
dateTimeFormatter
.
format
(
yesDate
))
);
Map
<
String
,
PlatElderSleepAnalysis
>
sleepAnalysisMap
=
StreamUtil
.
toMap
(
sleepAnalysesList
,
PlatElderSleepAnalysis:
:
getElderId
);
List
<
PlatAlarmRecord
>
recordList
=
platAlarmRecordService
.
list
(
new
QueryWrapper
<
PlatAlarmRecord
>().
lambda
()
.
ge
(
PlatAlarmRecord:
:
getAlarmDate
,
yesStart
)
.
le
(
PlatAlarmRecord:
:
getAlarmDate
,
yesEnd
)
.
eq
(
PlatAlarmRecord:
:
getMisinformationFlag
,
0
)
.
in
(
PlatAlarmRecord:
:
getElderIds
,
StreamUtil
.
mapId
(
elderList
,
PlatElder:
:
getId
)));
Map
<
String
,
List
<
PlatAlarmRecord
>>
recordMap
=
StreamUtil
.
groupBy
(
recordList
,
PlatAlarmRecord:
:
getElderIds
);
for
(
PlatElder
e
:
elderList
)
{
PlatDevice
platDevice
=
platElderRealTimeService
.
getBreathDevice
(
e
.
getId
(),
null
);
if
(
platDevice
!=
null
)
{
PlatElderBreatheDayStat
platElderBreatheDayStat
=
new
PlatElderBreatheDayStat
();
platElderBreatheDayStat
.
setElderId
(
e
.
getId
());
platElderBreatheDayStat
.
setDeviceId
(
platDevice
.
getId
());
platElderBreatheDayStat
.
setOriDeviceId
(
platDevice
.
getOriDeviceId
());
platElderBreatheDayStat
.
setDay
(
yesDate
);
List
<
DeviceInfoContentBreathe
>
breatheList
=
iotProductDeviceService
.
getDeviceLogByTimeRangeBreathe
(
platDevice
.
getOriDeviceId
(),
2
*
24
*
3600
,
yesStart
,
yesEnd
);
if
(
CollectionUtils
.
isEmpty
(
breatheList
))
{
continue
;
}
long
hrAvg
=
StreamUtil
.
reduce
(
breatheList
,
i
->
(
long
)
i
.
getProperties
().
getHr
(),
0L
,
Long:
:
sum
)
/
breatheList
.
size
();
long
brAvg
=
StreamUtil
.
reduce
(
breatheList
,
i
->
(
long
)
i
.
getProperties
().
getBr
(),
0L
,
Long:
:
sum
)
/
breatheList
.
size
();
platElderBreatheDayStat
.
setHeartRateMax
(
breatheList
.
stream
().
map
(
i
->
i
.
getProperties
().
getHr
()).
max
(
Integer:
:
compareTo
).
orElse
(
null
));
platElderBreatheDayStat
.
setHeartRateMin
(
breatheList
.
stream
().
map
(
i
->
i
.
getProperties
().
getHr
()).
min
(
Integer:
:
compareTo
).
orElse
(
null
));
platElderBreatheDayStat
.
setHeartRateAvg
((
int
)
(
hrAvg
));
platElderBreatheDayStat
.
setRespiratoryRateMax
(
breatheList
.
stream
().
map
(
i
->
i
.
getProperties
().
getBr
()).
max
(
Integer:
:
compareTo
).
orElse
(
null
));
platElderBreatheDayStat
.
setRespiratoryRateMin
(
breatheList
.
stream
().
map
(
i
->
i
.
getProperties
().
getBr
()).
min
(
Integer:
:
compareTo
).
orElse
(
null
));
platElderBreatheDayStat
.
setRespiratoryRateAvg
((
int
)
(
brAvg
));
platElderBreatheDayStat
.
setTenantId
(
e
.
getTenantId
());
breatheDayStatList
.
add
(
platElderBreatheDayStat
);
PlatElderReportMonth
reportMonth
=
new
PlatElderReportMonth
();
reportMonth
.
setElderId
(
e
.
getId
());
reportMonth
.
setDay
(
yesDate
);
MapUtil
.
setIfPresent
(
sleepAnalysisMap
,
e
.
getId
(),
sa
->
{
reportMonth
.
setSleepResult
(
sa
.
getSleepResult
());
});
reportMonth
.
setBreatheDeviceId
(
platDevice
.
getId
());
reportMonth
.
setBreatheOriDeviceId
(
platDevice
.
getOriDeviceId
());
reportMonth
.
setHeartRate
((
int
)
(
hrAvg
));
reportMonth
.
setRespiratoryRate
((
int
)
(
brAvg
));
List
<
PlatAlarmRecord
>
rList
=
Optional
.
ofNullable
(
recordMap
.
get
(
e
.
getId
())).
orElse
(
new
ArrayList
<>(
10
));
reportMonth
.
setFailCount
((
int
)
StreamUtil
.
count
(
rList
,
i
->
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
FALL
.
getValue
().
equals
(
i
.
getAlarmType
())));
reportMonth
.
setHeartExceptionCount
((
int
)
StreamUtil
.
count
(
rList
,
i
->
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
HEART
.
getValue
().
equals
(
i
.
getAlarmType
())));
reportMonth
.
setRespiratoryExceptionCount
((
int
)
StreamUtil
.
count
(
rList
,
i
->
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
BREATHE
.
getValue
().
equals
(
i
.
getAlarmType
())));
reportMonth
.
setBehaviorExceptionCount
((
int
)
StreamUtil
.
count
(
rList
,
i
->
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
BEHAVIOR
.
getValue
().
equals
(
i
.
getAlarmType
())));
reportMonth
.
setTenantId
(
e
.
getTenantId
());
reportMonthList
.
add
(
reportMonth
);
}
}
platElderReportMonthService
.
saveBatch
(
reportMonthList
);
saveBatch
(
breatheDayStatList
);
}
}
}
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderDayReportWeekServiceImpl.java
View file @
d44d7a1f
...
@@ -4,13 +4,16 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
...
@@ -4,13 +4,16 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.makeit.common.entity.BaseBusEntity
;
import
com.makeit.common.entity.BaseBusEntity
;
import
com.makeit.dto.platform.elder.PlatElderReportDTO
;
import
com.makeit.dto.platform.elder.PlatElderReportDTO
;
import
com.makeit.entity.platform.alarm.PlatAlarmRecord
;
import
com.makeit.entity.platform.device.PlatDevice
;
import
com.makeit.entity.platform.device.PlatDevice
;
import
com.makeit.entity.platform.elder.*
;
import
com.makeit.entity.platform.elder.*
;
import
com.makeit.enums.platform.alarm.PlatAlarmConfigEnum
;
import
com.makeit.enums.platform.alarm.PlatAlarmConfigEnum
;
import
com.makeit.enums.report.SleepTypeEnum
;
import
com.makeit.enums.report.SleepTypeEnum
;
import
com.makeit.global.aspect.tenant.TenantIdIgnore
;
import
com.makeit.module.iot.service.IotProductDeviceService
;
import
com.makeit.module.iot.service.IotProductDeviceService
;
import
com.makeit.module.iot.vo.analysis.EvaluateReportVO
;
import
com.makeit.module.iot.vo.analysis.EvaluateReportVO
;
import
com.makeit.module.iot.vo.breathe.DeviceInfoContentBreathe
;
import
com.makeit.module.iot.vo.breathe.DeviceInfoContentBreathe
;
import
com.makeit.service.platform.alarm.PlatAlarmRecordService
;
import
com.makeit.service.platform.elder.*
;
import
com.makeit.service.platform.elder.*
;
import
com.makeit.service.saas.PlatTenantService
;
import
com.makeit.service.saas.PlatTenantService
;
import
com.makeit.service.saas.SaasDiseaseReportService
;
import
com.makeit.service.saas.SaasDiseaseReportService
;
...
@@ -19,6 +22,7 @@ import com.makeit.service.saas.SaasSleepEvaluateReportService;
...
@@ -19,6 +22,7 @@ import com.makeit.service.saas.SaasSleepEvaluateReportService;
import
com.makeit.utils.data.convert.BeanDtoVoUtils
;
import
com.makeit.utils.data.convert.BeanDtoVoUtils
;
import
com.makeit.utils.data.convert.StreamUtil
;
import
com.makeit.utils.data.convert.StreamUtil
;
import
com.makeit.utils.data.validate.CollectionUtils
;
import
com.makeit.utils.data.validate.CollectionUtils
;
import
com.makeit.utils.data.validate.MapUtil
;
import
com.makeit.utils.old.StringUtils
;
import
com.makeit.utils.old.StringUtils
;
import
com.makeit.utils.time.LocalDateTimeUtils
;
import
com.makeit.utils.time.LocalDateTimeUtils
;
import
com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO
;
import
com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO
;
...
@@ -47,20 +51,10 @@ import java.util.stream.Collectors;
...
@@ -47,20 +51,10 @@ import java.util.stream.Collectors;
public
class
PlatElderDayReportWeekServiceImpl
implements
PlatElderDayReportWeekService
{
public
class
PlatElderDayReportWeekServiceImpl
implements
PlatElderDayReportWeekService
{
@Autowired
@Autowired
private
PlatElderService
platElderService
;
@Autowired
private
PlatTenantService
platTenantService
;
@Autowired
private
PlatElderRealTimeService
platElderRealTimeService
;
private
PlatElderRealTimeService
platElderRealTimeService
;
@Autowired
@Autowired
private
PlatElderDayReportDayService
platElderDayReportDayService
;
private
PlatElderDayReportDayService
platElderDayReportDayService
;
@Autowired
private
PlatElderSleepAnalysisService
platElderSleepAnalysisService
;
@Autowired
@Autowired
private
PlatElderSleepService
platElderSleepService
;
private
PlatElderSleepService
platElderSleepService
;
...
@@ -80,7 +74,7 @@ public class PlatElderDayReportWeekServiceImpl implements PlatElderDayReportWeek
...
@@ -80,7 +74,7 @@ public class PlatElderDayReportWeekServiceImpl implements PlatElderDayReportWeek
private
PlatElderBreatheDayStatService
platElderBreatheDayStatService
;
private
PlatElderBreatheDayStatService
platElderBreatheDayStatService
;
@Autowired
@Autowired
private
IotProductDeviceService
iotProductDevice
Service
;
private
PlatElderSleepAnalysisService
platElderSleepAnalysis
Service
;
private
LocalDateTime
weekStartDateTime
(
LocalDateTime
defaultTime
)
{
private
LocalDateTime
weekStartDateTime
(
LocalDateTime
defaultTime
)
{
return
weekStartDateTime
(
LocalDate
.
now
().
minusDays
(
1
),
defaultTime
);
return
weekStartDateTime
(
LocalDate
.
now
().
minusDays
(
1
),
defaultTime
);
...
@@ -471,58 +465,4 @@ public class PlatElderDayReportWeekServiceImpl implements PlatElderDayReportWeek
...
@@ -471,58 +465,4 @@ public class PlatElderDayReportWeekServiceImpl implements PlatElderDayReportWeek
return
platElderDayReportDayService
.
behaviorDistributionInternal
(
platElderIdDTO
,
dateList
);
return
platElderDayReportDayService
.
behaviorDistributionInternal
(
platElderIdDTO
,
dateList
);
}
}
@Override
public
void
heartRespiratoryJob
()
{
LocalDate
nowDate
=
LocalDate
.
now
();
LocalDate
yesDate
=
nowDate
.
minusDays
(
1
);
LocalDateTime
yesStart
=
LocalDateTimeUtils
.
getDayStart
(
yesDate
);
LocalDateTime
yesEnd
=
LocalDateTimeUtils
.
getDayEnd
(
yesDate
);
List
<
PlatElderBreatheDayStat
>
breatheDayStatList
=
new
ArrayList
<>(
10
);
platTenantService
.
executeTenantList
(()
->
{
List
<
PlatElder
>
elderList
=
platElderService
.
list
(
new
QueryWrapper
<
PlatElder
>().
lambda
()
.
isNotNull
(
PlatElder:
:
getBedId
));
elderList
.
forEach
(
e
->
{
PlatDevice
platDevice
=
platElderRealTimeService
.
getBreathDevice
(
e
.
getId
(),
null
);
if
(
platDevice
!=
null
)
{
PlatElderBreatheDayStat
platElderBreatheDayStat
=
new
PlatElderBreatheDayStat
();
platElderBreatheDayStat
.
setElderId
(
e
.
getId
());
platElderBreatheDayStat
.
setDeviceId
(
platDevice
.
getId
());
platElderBreatheDayStat
.
setOriDeviceId
(
platDevice
.
getOriDeviceId
());
platElderBreatheDayStat
.
setDay
(
yesDate
);
List
<
DeviceInfoContentBreathe
>
breatheList
=
iotProductDeviceService
.
getDeviceLogByTimeRangeBreathe
(
platDevice
.
getOriDeviceId
(),
2
*
24
*
3600
,
yesStart
,
yesEnd
);
platElderBreatheDayStat
.
setHeartRateMax
(
breatheList
.
stream
().
map
(
i
->
i
.
getProperties
().
getHr
()).
max
(
Integer:
:
compareTo
).
orElse
(
null
));
platElderBreatheDayStat
.
setHeartRateMin
(
breatheList
.
stream
().
map
(
i
->
i
.
getProperties
().
getHr
()).
min
(
Integer:
:
compareTo
).
orElse
(
null
));
if
(
CollectionUtils
.
isNotEmpty
(
breatheList
))
{
platElderBreatheDayStat
.
setHeartRateAvg
((
int
)
(
StreamUtil
.
reduce
(
breatheList
,
i
->
(
long
)
i
.
getProperties
().
getHr
(),
0L
,
Long:
:
sum
)
/
breatheList
.
size
()));
}
platElderBreatheDayStat
.
setRespiratoryRateMax
(
breatheList
.
stream
().
map
(
i
->
i
.
getProperties
().
getBr
()).
max
(
Integer:
:
compareTo
).
orElse
(
null
));
platElderBreatheDayStat
.
setRespiratoryRateMin
(
breatheList
.
stream
().
map
(
i
->
i
.
getProperties
().
getBr
()).
min
(
Integer:
:
compareTo
).
orElse
(
null
));
if
(
CollectionUtils
.
isNotEmpty
(
breatheList
))
{
platElderBreatheDayStat
.
setRespiratoryRateAvg
((
int
)
(
StreamUtil
.
reduce
(
breatheList
,
i
->
(
long
)
i
.
getProperties
().
getBr
(),
0L
,
Long:
:
sum
)
/
breatheList
.
size
()));
}
breatheDayStatList
.
add
(
platElderBreatheDayStat
);
}
});
});
platElderBreatheDayStatService
.
saveBatch
(
breatheDayStatList
);
}
}
}
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderReportMonthServiceImpl.java
View file @
d44d7a1f
...
@@ -3,23 +3,13 @@ package com.makeit.service.platform.elder.impl;
...
@@ -3,23 +3,13 @@ package com.makeit.service.platform.elder.impl;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl
;
import
com.makeit.dto.platform.elder.PlatElderReportDTO
;
import
com.makeit.dto.platform.elder.PlatElderReportDTO
;
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.elder.PlatElderReportMonth
;
import
com.makeit.entity.platform.elder.PlatElderReportMonth
;
import
com.makeit.entity.platform.elder.PlatElderSleepAnalysis
;
import
com.makeit.enums.platform.alarm.PlatAlarmConfigEnum
;
import
com.makeit.global.aspect.tenant.TenantIdIgnore
;
import
com.makeit.mapper.platform.elder.PlatElderReportMonthMapper
;
import
com.makeit.mapper.platform.elder.PlatElderReportMonthMapper
;
import
com.makeit.module.iot.service.IotProductDeviceService
;
import
com.makeit.module.iot.service.IotProductDeviceService
;
import
com.makeit.module.iot.vo.breathe.DeviceInfoContentBreathe
;
import
com.makeit.service.platform.alarm.PlatAlarmRecordService
;
import
com.makeit.service.platform.alarm.PlatAlarmRecordService
;
import
com.makeit.service.platform.elder.*
;
import
com.makeit.service.platform.elder.*
;
import
com.makeit.service.saas.PlatTenantService
;
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.StreamUtil
;
import
com.makeit.utils.data.validate.CollectionUtils
;
import
com.makeit.utils.data.validate.MapUtil
;
import
com.makeit.utils.old.StringUtils
;
import
com.makeit.utils.old.StringUtils
;
import
com.makeit.utils.time.LocalDateTimeUtils
;
import
com.makeit.utils.time.LocalDateTimeUtils
;
import
com.makeit.vo.platform.elder.report.day.PlatElderHeartRespiratoryEvaluationVO
;
import
com.makeit.vo.platform.elder.report.day.PlatElderHeartRespiratoryEvaluationVO
;
...
@@ -30,12 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -30,12 +20,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.time.LocalDate
;
import
java.time.LocalDate
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Optional
;
/**
/**
* <p>
* <p>
...
@@ -140,72 +125,4 @@ public class PlatElderReportMonthServiceImpl extends ServiceImpl<PlatElderReport
...
@@ -140,72 +125,4 @@ public class PlatElderReportMonthServiceImpl extends ServiceImpl<PlatElderReport
return
voList
;
return
voList
;
}
}
@Override
@TenantIdIgnore
public
void
reportMonthJob
()
{
LocalDate
nowDate
=
LocalDate
.
now
();
LocalDate
yesDate
=
nowDate
.
minusDays
(
1
);
LocalDateTime
yesStart
=
LocalDateTimeUtils
.
getDayStart
(
yesDate
);
LocalDateTime
yesEnd
=
LocalDateTimeUtils
.
getDayEnd
(
yesDate
);
DateTimeFormatter
dateTimeFormatter
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd"
);
List
<
PlatElderReportMonth
>
reportMonthList
=
new
ArrayList
<>(
10
);
List
<
PlatElder
>
elderList
=
platElderService
.
list
(
new
QueryWrapper
<
PlatElder
>().
lambda
()
.
isNotNull
(
PlatElder:
:
getBedId
));
List
<
PlatElderSleepAnalysis
>
sleepAnalysesList
=
platElderSleepAnalysisService
.
list
(
new
QueryWrapper
<
PlatElderSleepAnalysis
>().
lambda
()
.
in
(
PlatElderSleepAnalysis:
:
getElderId
,
StreamUtil
.
mapId
(
elderList
,
PlatElder:
:
getId
))
.
eq
(
PlatElderSleepAnalysis:
:
getHappenDate
,
dateTimeFormatter
.
format
(
yesDate
))
);
Map
<
String
,
PlatElderSleepAnalysis
>
sleepAnalysisMap
=
StreamUtil
.
toMap
(
sleepAnalysesList
,
PlatElderSleepAnalysis:
:
getElderId
);
List
<
PlatAlarmRecord
>
recordList
=
platAlarmRecordService
.
list
(
new
QueryWrapper
<
PlatAlarmRecord
>().
lambda
()
.
ge
(
PlatAlarmRecord:
:
getAlarmDate
,
yesStart
)
.
le
(
PlatAlarmRecord:
:
getAlarmDate
,
yesEnd
)
.
eq
(
PlatAlarmRecord:
:
getMisinformationFlag
,
0
)
.
in
(
PlatAlarmRecord:
:
getElderIds
,
StreamUtil
.
mapId
(
elderList
,
PlatElder:
:
getId
)));
Map
<
String
,
List
<
PlatAlarmRecord
>>
recordMap
=
StreamUtil
.
groupBy
(
recordList
,
PlatAlarmRecord:
:
getElderIds
);
for
(
PlatElder
e
:
elderList
)
{
PlatElderReportMonth
reportMonth
=
new
PlatElderReportMonth
();
reportMonth
.
setElderId
(
e
.
getId
());
reportMonth
.
setDay
(
yesDate
);
MapUtil
.
setIfPresent
(
sleepAnalysisMap
,
e
.
getId
(),
sa
->
{
reportMonth
.
setSleepResult
(
sa
.
getSleepResult
());
});
PlatDevice
platDevice
=
platElderRealTimeService
.
getBreathDevice
(
e
.
getId
(),
null
);
if
(
platDevice
==
null
)
{
continue
;
}
List
<
DeviceInfoContentBreathe
>
breatheList
=
iotProductDeviceService
.
getDeviceLogByTimeRangeBreathe
(
platDevice
.
getOriDeviceId
(),
2
*
24
*
3600
,
yesStart
,
yesEnd
);
if
(
CollectionUtils
.
isNotEmpty
(
breatheList
))
{
reportMonth
.
setBreatheDeviceId
(
platDevice
.
getId
());
reportMonth
.
setBreatheOriDeviceId
(
platDevice
.
getOriDeviceId
());
reportMonth
.
setHeartRate
((
int
)
(
StreamUtil
.
reduce
(
breatheList
,
i
->
(
long
)
i
.
getProperties
().
getHr
(),
0L
,
Long:
:
sum
)
/
breatheList
.
size
()));
reportMonth
.
setRespiratoryRate
((
int
)
(
StreamUtil
.
reduce
(
breatheList
,
i
->
(
long
)
i
.
getProperties
().
getBr
(),
0L
,
Long:
:
sum
)
/
breatheList
.
size
()));
}
List
<
PlatAlarmRecord
>
rList
=
Optional
.
ofNullable
(
recordMap
.
get
(
e
.
getId
())).
orElse
(
new
ArrayList
<>(
10
));
reportMonth
.
setFailCount
((
int
)
StreamUtil
.
count
(
rList
,
i
->
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
FALL
.
getValue
().
equals
(
i
.
getAlarmType
())));
reportMonth
.
setHeartExceptionCount
((
int
)
StreamUtil
.
count
(
rList
,
i
->
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
HEART
.
getValue
().
equals
(
i
.
getAlarmType
())));
reportMonth
.
setRespiratoryExceptionCount
((
int
)
StreamUtil
.
count
(
rList
,
i
->
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
BREATHE
.
getValue
().
equals
(
i
.
getAlarmType
())));
reportMonth
.
setBehaviorExceptionCount
((
int
)
StreamUtil
.
count
(
rList
,
i
->
PlatAlarmConfigEnum
.
AlarmTypeEnum
.
BEHAVIOR
.
getValue
().
equals
(
i
.
getAlarmType
())));
reportMonth
.
setTenantId
(
e
.
getTenantId
());
reportMonthList
.
add
(
reportMonth
);
}
saveBatch
(
reportMonthList
);
}
}
}
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderSleepServiceImpl.java
View file @
d44d7a1f
...
@@ -11,10 +11,9 @@ import com.makeit.common.entity.BaseEntity;
...
@@ -11,10 +11,9 @@ import com.makeit.common.entity.BaseEntity;
import
com.makeit.entity.platform.device.PlatDevice
;
import
com.makeit.entity.platform.device.PlatDevice
;
import
com.makeit.entity.platform.elder.*
;
import
com.makeit.entity.platform.elder.*
;
import
com.makeit.entity.platform.space.PlatRoomBedDevice
;
import
com.makeit.entity.platform.space.PlatRoomBedDevice
;
import
com.makeit.entity.saas.analysis.
*
;
import
com.makeit.entity.saas.analysis.
SaasSleepAnalysisModel
;
import
com.makeit.en
ums.report.BreatheTypeEnum
;
import
com.makeit.en
tity.saas.analysis.SaasSleepEvaluateStandardReport
;
import
com.makeit.enums.report.ElderSleepType
;
import
com.makeit.enums.report.ElderSleepType
;
import
com.makeit.enums.report.HeartRateTypeEnum
;
import
com.makeit.enums.report.SleepTypeEnum
;
import
com.makeit.enums.report.SleepTypeEnum
;
import
com.makeit.mapper.platform.elder.PlatElderSleepMapper
;
import
com.makeit.mapper.platform.elder.PlatElderSleepMapper
;
import
com.makeit.module.iot.service.IotProductDeviceService
;
import
com.makeit.module.iot.service.IotProductDeviceService
;
...
@@ -36,8 +35,6 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -36,8 +35,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
org.springframework.transaction.annotation.Transactional
;
import
org.springframework.transaction.annotation.Transactional
;
import
java.math.BigDecimal
;
import
java.math.RoundingMode
;
import
java.time.*
;
import
java.time.*
;
import
java.time.format.DateTimeFormatter
;
import
java.time.format.DateTimeFormatter
;
import
java.util.*
;
import
java.util.*
;
...
@@ -56,7 +53,6 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -56,7 +53,6 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
private
static
final
DateTimeFormatter
DEFAULT_FORMATTER
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm"
);
private
static
final
DateTimeFormatter
DEFAULT_FORMATTER
=
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm"
);
public
static
final
String
DATE_FORMATTER
=
"yyyy-MM-dd HH:mm"
;
@Autowired
@Autowired
private
SaasSleepAnalysisModelService
saasSleepAnalysisModelService
;
private
SaasSleepAnalysisModelService
saasSleepAnalysisModelService
;
@Autowired
@Autowired
...
@@ -68,10 +64,6 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -68,10 +64,6 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
@Autowired
@Autowired
private
SaasDiseaseModelService
saasDiseaseModelService
;
private
SaasDiseaseModelService
saasDiseaseModelService
;
@Autowired
@Autowired
private
SaasDiseaseEvaluateReportService
saasDiseaseEvaluateReportService
;
@Autowired
private
SaasDiseaseReportService
saasDiseaseReportService
;
@Autowired
private
IotProductDeviceService
productDeviceService
;
private
IotProductDeviceService
productDeviceService
;
@Autowired
@Autowired
private
PlatRoomBedDeviceService
roomBedDeviceService
;
private
PlatRoomBedDeviceService
roomBedDeviceService
;
...
@@ -87,10 +79,6 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -87,10 +79,6 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
private
PlatElderSleepService
platElderSleepService
;
private
PlatElderSleepService
platElderSleepService
;
@Autowired
@Autowired
private
PlatElderBreatheAbnormalService
platElderBreatheAbnormalService
;
@Autowired
private
PlatElderBreatheAnalysisService
platElderBreatheAnalysisService
;
@Autowired
private
PlatElderReportMonthService
platElderReportMonthService
;
private
PlatElderReportMonthService
platElderReportMonthService
;
@Override
@Override
...
@@ -111,9 +99,6 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -111,9 +99,6 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
List
<
PlatRoomBedDevice
>
platRoomBedDeviceList
=
roomBedDeviceService
.
list
(
new
QueryWrapper
<
PlatRoomBedDevice
>()
List
<
PlatRoomBedDevice
>
platRoomBedDeviceList
=
roomBedDeviceService
.
list
(
new
QueryWrapper
<
PlatRoomBedDevice
>()
.
lambda
().
isNotNull
(
PlatRoomBedDevice:
:
getBedId
));
.
lambda
().
isNotNull
(
PlatRoomBedDevice:
:
getBedId
));
SaasDiseaseModel
saasDiseaseModel
=
saasDiseaseModelService
.
getOne
(
new
QueryWrapper
<
SaasDiseaseModel
>().
lambda
()
.
orderByDesc
(
BaseEntity:
:
getCreateBy
)
.
last
(
"limit 1"
));
Integer
actionThreshold
=
Integer
.
valueOf
(
analysisModel
.
getActionThreshold
());
Integer
actionThreshold
=
Integer
.
valueOf
(
analysisModel
.
getActionThreshold
());
int
turnedThreshold
=
Integer
.
parseInt
(
analysisModel
.
getTurnedThreshold
());
int
turnedThreshold
=
Integer
.
parseInt
(
analysisModel
.
getTurnedThreshold
());
...
@@ -133,15 +118,6 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -133,15 +118,6 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
int
sleepDeepBreatheMin
=
Integer
.
parseInt
(
analysisModel
.
getSleepDeepBreatheMin
());
int
sleepDeepBreatheMin
=
Integer
.
parseInt
(
analysisModel
.
getSleepDeepBreatheMin
());
int
sleepDeepBreatheMax
=
Integer
.
parseInt
(
analysisModel
.
getSleepDeepBreatheMax
());
int
sleepDeepBreatheMax
=
Integer
.
parseInt
(
analysisModel
.
getSleepDeepBreatheMax
());
// 呼吸率
int
breatheThresholdMin
=
Integer
.
parseInt
(
analysisModel
.
getBreatheThresholdMin
());
int
breatheThresholdMax
=
Integer
.
parseInt
(
analysisModel
.
getBreatheThresholdMax
());
int
breatheDuration
=
Integer
.
parseInt
(
analysisModel
.
getBreatheDuration
());
// 心率
int
heartThresholdMin
=
Integer
.
parseInt
(
analysisModel
.
getHeartThresholdMin
());
int
heartThresholdMax
=
Integer
.
parseInt
(
analysisModel
.
getHeartThresholdMax
());
int
heartDuration
=
Integer
.
parseInt
(
analysisModel
.
getHeartDuration
());
int
sleepModerateActionThreshold
=
Integer
.
parseInt
(
analysisModel
.
getSleepModerateActionThreshold
());
int
sleepModerateActionThreshold
=
Integer
.
parseInt
(
analysisModel
.
getSleepModerateActionThreshold
());
int
sleepModerateActionTimeBegin
=
Integer
.
parseInt
(
analysisModel
.
getSleepModerateActionTimeBegin
());
int
sleepModerateActionTimeBegin
=
Integer
.
parseInt
(
analysisModel
.
getSleepModerateActionTimeBegin
());
...
@@ -161,8 +137,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -161,8 +137,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
continue
;
continue
;
}
}
String
tenantId
=
elder
.
getTenantId
();
String
tenantId
=
elder
.
getTenantId
();
String
reportStartTime
=
""
;
String
reportEndTime
=
""
;
for
(
String
hourRange
:
dayHourRangeList
)
{
for
(
String
hourRange
:
dayHourRangeList
)
{
String
[]
hourRangeArray
=
hourRange
.
split
(
"~"
);
String
[]
hourRangeArray
=
hourRange
.
split
(
"~"
);
List
<
DeviceOperationLogEntity
>
deviceOperationLogEntities
=
productDeviceService
.
getDeviceLogByTimeRange
(
platDevice
.
getOriDeviceId
(),
"reportProperty"
,
5000
,
hourRangeArray
[
0
],
hourRangeArray
[
1
]);
List
<
DeviceOperationLogEntity
>
deviceOperationLogEntities
=
productDeviceService
.
getDeviceLogByTimeRange
(
platDevice
.
getOriDeviceId
(),
"reportProperty"
,
5000
,
hourRangeArray
[
0
],
hourRangeArray
[
1
]);
...
@@ -184,54 +159,20 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -184,54 +159,20 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
Map
<
String
,
AnalysisVO
>
statisticsMap
=
Maps
.
newHashMap
();
Map
<
String
,
AnalysisVO
>
statisticsMap
=
Maps
.
newHashMap
();
List
<
DeviceInfoContentBreathe
>
deviceInfoContentBreathes
;
List
<
DeviceInfoContentBreathe
>
deviceInfoContentBreathes
;
for
(
Map
.
Entry
<
String
,
List
<
DeviceInfoContentBreathe
>>
entry
:
minuteMap
.
entrySet
())
{
for
(
Map
.
Entry
<
String
,
List
<
DeviceInfoContentBreathe
>>
entry
:
minuteMap
.
entrySet
())
{
if
(
StringUtils
.
isEmpty
(
reportStartTime
))
{
reportStartTime
=
entry
.
getKey
();
}
reportEndTime
=
entry
.
getKey
();
deviceInfoContentBreathes
=
entry
.
getValue
();
deviceInfoContentBreathes
=
entry
.
getValue
();
DeviceInfoContentBreathe
.
Properties
breatheProperties
;
DeviceInfoContentBreathe
.
Properties
breatheProperties
;
Integer
bodymove
;
Integer
bodymove
;
// 记录总呼吸率和总心率
// 记录总呼吸率和总心率
int
totalBr
=
0
;
int
maxBr
=
0
;
int
maxBr
=
0
;
int
minBr
=
0
;
int
minBr
=
0
;
int
maxHr
=
0
;
int
maxHr
=
0
;
int
minHr
=
0
;
int
minHr
=
0
;
int
totalHr
=
0
;
int
hrBrCount
=
0
;
// 呼吸率心率统计次数
int
hrBrCount
=
0
;
// 呼吸率心率统计次数
int
totalBr
=
0
;
// 呼吸暂停
int
totalHr
=
0
;
int
brStopCount
=
0
;
int
brStopSecond
=
0
;
String
brStopTime
=
""
;
// 呼吸过速
int
brFastCount
=
0
;
int
brFastSecond
=
0
;
int
brFast
=
0
;
String
brFastTime
=
""
;
// 呼吸过缓
int
brSlowCount
=
0
;
int
brSlowSecond
=
0
;
int
brSlow
=
0
;
String
brSlowTime
=
""
;
// 心率过速
int
hrFastCount
=
0
;
int
hrFast
=
0
;
int
hrFastSecond
=
0
;
String
hrFastTime
=
""
;
// 心率过缓
int
hrSlowCount
=
0
;
int
hrSlowSecond
=
0
;
int
hrSlow
=
0
;
String
hrSlowTime
=
""
;
Integer
bodymoveCount
=
0
;
// 体动次数
Integer
bodymoveCount
=
0
;
// 体动次数
Integer
turnoverCount
=
0
;
// 翻身次数
Integer
turnoverCount
=
0
;
// 翻身次数
...
@@ -273,83 +214,6 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -273,83 +214,6 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
isMoveBed
=
false
;
isMoveBed
=
false
;
}
}
// 判断呼吸暂停
if
(
br
==
0
)
{
brStopSecond
++;
brStopTime
=
entry
.
getKey
();
if
(
brStopSecond
==
breatheDuration
)
{
brStopCount
++;
brStopSecond
=
0
;
}
}
else
{
brStopSecond
=
0
;
}
// 判断呼吸率阈值,记录发生时间和当前呼吸率
if
(
breatheThresholdMax
<
br
)
{
if
(
StringUtils
.
isEmpty
(
brFastTime
))
{
brFastTime
=
entry
.
getKey
();
}
if
(
brFast
==
0
)
{
brFast
=
br
;
}
brFastSecond
++;
if
(
brFastSecond
==
breatheDuration
)
{
brFastCount
++;
brFastSecond
=
0
;
}
}
else
{
brFastSecond
=
0
;
}
if
(
br
<
breatheThresholdMin
)
{
if
(
StringUtils
.
isEmpty
(
brSlowTime
))
{
brSlowTime
=
entry
.
getKey
();
}
if
(
brSlow
==
0
)
{
brSlow
=
br
;
}
brSlowSecond
++;
if
(
brSlowSecond
==
breatheDuration
)
{
brSlowCount
++;
brSlowSecond
=
0
;
}
}
else
{
brSlowSecond
=
0
;
}
if
(
heartThresholdMax
<
hr
)
{
if
(
StringUtils
.
isEmpty
(
hrFastTime
))
{
hrFastTime
=
entry
.
getKey
();
}
if
(
hrFast
==
0
)
{
hrFast
=
br
;
}
hrFastSecond
++;
if
(
hrFastSecond
==
heartDuration
)
{
hrFastCount
++;
hrFastSecond
=
0
;
}
}
else
{
hrFastSecond
=
0
;
}
if
(
heartThresholdMin
>
hr
)
{
if
(
StringUtils
.
isEmpty
(
hrSlowTime
))
{
hrSlowTime
=
entry
.
getKey
();
}
if
(
hrSlow
==
0
)
{
hrSlow
=
br
;
}
hrSlowSecond
++;
if
(
hrSlowSecond
==
heartDuration
)
{
hrSlowCount
++;
hrSlowSecond
=
0
;
}
}
else
{
hrSlowSecond
=
0
;
}
if
(
br
>
maxBr
)
{
if
(
br
>
maxBr
)
{
maxBr
=
br
;
maxBr
=
br
;
...
@@ -364,48 +228,23 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -364,48 +228,23 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
if
(
hr
<
minHr
)
{
if
(
hr
<
minHr
)
{
minHr
=
hr
;
minHr
=
hr
;
}
}
if
(
breatheProperties
.
getPerson
()
==
1
)
{
if
(
breatheProperties
.
getPerson
()
==
1
)
{
totalBr
+=
br
;
totalBr
+=
br
;
totalHr
+=
hr
;
totalHr
+=
hr
;
hrBrCount
++;
hrBrCount
++;
}
}
}
}
/* int brStopThreshold = brStopCount / breatheDuration;
int brFastThreshold = brFastCount / breatheDuration;
int brSlowThreshold = brSlowCount / breatheDuration;
int hrFastThreshold = hrFastCount / heartDuration;
int hrSlowThreshold = hrSlowCount / heartDuration;
*/
analysisVO
.
setBrStopThreshold
(
brStopCount
);
analysisVO
.
setBrFastThreshold
(
brFastCount
);
analysisVO
.
setBrSlowThreshold
(
brSlowCount
);
analysisVO
.
setHrFastThreshold
(
hrFastCount
);
analysisVO
.
setHrSlowThreshold
(
hrSlowCount
);
analysisVO
.
setBrStopTime
(
brStopTime
);
analysisVO
.
setBrFastTime
(
brFastTime
);
analysisVO
.
setBrSlowTime
(
brSlowTime
);
analysisVO
.
setHrFastTime
(
hrFastTime
);
analysisVO
.
setHrSlowTime
(
hrSlowTime
);
analysisVO
.
setBrSlow
(
brSlow
);
analysisVO
.
setBrFast
(
brFast
);
analysisVO
.
setHrFast
(
hrFast
);
analysisVO
.
setHrSlow
(
hrSlow
);
analysisVO
.
setTotalBr
(
totalBr
);
analysisVO
.
setTotalBr
(
totalBr
);
analysisVO
.
setAvgBr
(
totalBr
/
60
);
analysisVO
.
setAvgBr
(
totalBr
/
60
);
analysisVO
.
setMaxBr
(
maxBr
);
analysisVO
.
setMinBr
(
minBr
);
analysisVO
.
setTotalHr
(
totalHr
);
analysisVO
.
setTotalHr
(
totalHr
);
analysisVO
.
setAvgHr
(
totalHr
/
60
);
analysisVO
.
setAvgHr
(
totalHr
/
60
);
analysisVO
.
setMaxBr
(
maxBr
);
analysisVO
.
setMinBr
(
minBr
);
analysisVO
.
setMaxHr
(
maxHr
);
analysisVO
.
setMaxHr
(
maxHr
);
analysisVO
.
setMinHr
(
minHr
);
analysisVO
.
setMinHr
(
minHr
);
analysisVO
.
setHrBrCount
(
hrBrCount
);
analysisVO
.
setActionCount
(
bodymoveCount
);
analysisVO
.
setActionCount
(
bodymoveCount
);
analysisVO
.
setTurnedCount
(
turnoverCount
);
analysisVO
.
setTurnedCount
(
turnoverCount
);
...
@@ -425,203 +264,6 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -425,203 +264,6 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
continue
;
continue
;
}
}
// 呼吸暂停
int
apneaTime
=
Integer
.
parseInt
(
saasDiseaseModel
.
getApneaTime
());
int
apneaThreshold
=
Integer
.
parseInt
(
saasDiseaseModel
.
getApneaThreshold
());
BigDecimal
apneaRate
=
new
BigDecimal
(
apneaTime
).
divide
(
new
BigDecimal
(
apneaThreshold
),
2
,
RoundingMode
.
HALF_UP
);
// 呼吸过速
int
tachypneaTime
=
Integer
.
parseInt
(
saasDiseaseModel
.
getTachypneaTime
());
int
tachypneaThreshold
=
Integer
.
parseInt
(
saasDiseaseModel
.
getTachypneaThreshold
());
BigDecimal
tachypneaRate
=
new
BigDecimal
(
tachypneaTime
).
divide
(
new
BigDecimal
(
tachypneaThreshold
),
2
,
RoundingMode
.
HALF_UP
);
// 呼吸过缓
int
bradypneaTime
=
Integer
.
parseInt
(
saasDiseaseModel
.
getBradypneaTime
());
int
bradypneaThreshold
=
Integer
.
parseInt
(
saasDiseaseModel
.
getBradypneaThreshold
());
BigDecimal
bradypneaRate
=
new
BigDecimal
(
bradypneaTime
).
divide
(
new
BigDecimal
(
bradypneaThreshold
),
2
,
RoundingMode
.
HALF_UP
);
// 心率过缓
int
bradycardiaTime
=
Integer
.
parseInt
(
saasDiseaseModel
.
getBradycardiaTime
());
int
bradycardiaThreshold
=
Integer
.
parseInt
(
saasDiseaseModel
.
getBradycardiaThreshold
());
BigDecimal
bradycardiaRate
=
new
BigDecimal
(
bradycardiaTime
).
divide
(
new
BigDecimal
(
bradycardiaThreshold
),
2
,
RoundingMode
.
HALF_UP
);
// 心率过速
int
tachycardiaTime
=
Integer
.
parseInt
(
saasDiseaseModel
.
getTachycardiaTime
());
int
tachycardiaComparison
=
Integer
.
parseInt
(
saasDiseaseModel
.
getTachycardiaThreshold
());
BigDecimal
tachycardiaRate
=
new
BigDecimal
(
tachycardiaTime
).
divide
(
new
BigDecimal
(
tachycardiaComparison
),
2
,
RoundingMode
.
HALF_UP
);
// 呼吸疾病报告
int
brStopCount
=
0
;
int
brFastCount
=
0
;
int
brSlowCount
=
0
;
int
hrFastCount
=
0
;
int
hrSlowCount
=
0
;
int
dayTotalHr
=
0
;
int
dayTotalBr
=
0
;
int
dayBrHrCount
=
0
;
// 计算异常的信息,并且统计异常的次数
List
<
BreatheAbnormalVO
>
breatheAbnormalVOList
=
Lists
.
newArrayList
();
for
(
Map
.
Entry
<
String
,
AnalysisVO
>
entry
:
totalMap
.
entrySet
())
{
BreatheAbnormalVO
breatheAbnormalVO
=
new
BreatheAbnormalVO
();
AnalysisVO
analysisVO
=
entry
.
getValue
();
if
(
analysisVO
.
getBrStopThreshold
()
>
0
)
{
brStopCount
+=
analysisVO
.
getBrStopThreshold
();
breatheAbnormalVO
.
setType
(
BreatheTypeEnum
.
APNEA
.
getCode
());
breatheAbnormalVO
.
setHappenTime
(
LocalDateTime
.
parse
(
analysisVO
.
getBrStopTime
(),
DEFAULT_FORMATTER
));
breatheAbnormalVO
.
setValue
(
"0"
);
breatheAbnormalVOList
.
add
(
breatheAbnormalVO
);
}
if
(
analysisVO
.
getBrSlowThreshold
()
>
0
)
{
brSlowCount
+=
analysisVO
.
getBrSlowThreshold
();
breatheAbnormalVO
.
setType
(
BreatheTypeEnum
.
BRADYPNEA
.
getCode
());
breatheAbnormalVO
.
setHappenTime
(
LocalDateTime
.
parse
(
analysisVO
.
getBrSlowTime
(),
DEFAULT_FORMATTER
));
breatheAbnormalVO
.
setValue
(
String
.
valueOf
(
analysisVO
.
getBrSlow
()));
breatheAbnormalVOList
.
add
(
breatheAbnormalVO
);
}
if
(
analysisVO
.
getBrFastThreshold
()
>
0
)
{
brFastCount
+=
analysisVO
.
getBrFastThreshold
();
breatheAbnormalVO
.
setType
(
BreatheTypeEnum
.
TACHYPNEA
.
getCode
());
breatheAbnormalVO
.
setHappenTime
(
LocalDateTime
.
parse
(
analysisVO
.
getBrFastTime
(),
DEFAULT_FORMATTER
));
breatheAbnormalVO
.
setValue
(
String
.
valueOf
(
analysisVO
.
getBrFast
()));
breatheAbnormalVOList
.
add
(
breatheAbnormalVO
);
}
if
(
analysisVO
.
getHrFastThreshold
()
>
0
)
{
hrFastCount
+=
analysisVO
.
getHrFastThreshold
();
breatheAbnormalVO
.
setType
(
HeartRateTypeEnum
.
TACHYCARDIA
.
getCode
());
breatheAbnormalVO
.
setHappenTime
(
LocalDateTime
.
parse
(
analysisVO
.
getHrFastTime
(),
DEFAULT_FORMATTER
));
breatheAbnormalVO
.
setValue
(
String
.
valueOf
(
analysisVO
.
getHrFast
()));
breatheAbnormalVOList
.
add
(
breatheAbnormalVO
);
}
if
(
analysisVO
.
getHrSlowThreshold
()
>
0
)
{
hrSlowCount
+=
analysisVO
.
getHrSlowThreshold
();
breatheAbnormalVO
.
setType
(
HeartRateTypeEnum
.
BRADYCARDIA
.
getCode
());
breatheAbnormalVO
.
setHappenTime
(
LocalDateTime
.
parse
(
analysisVO
.
getHrSlowTime
(),
DEFAULT_FORMATTER
));
breatheAbnormalVO
.
setValue
(
String
.
valueOf
(
analysisVO
.
getHrSlow
()));
breatheAbnormalVOList
.
add
(
breatheAbnormalVO
);
}
dayTotalHr
+=
analysisVO
.
getTotalHr
();
dayTotalBr
+=
analysisVO
.
getTotalBr
();
dayBrHrCount
+=
analysisVO
.
getHrBrCount
();
}
int
timeHourRange
=
24
;
if
(
StringUtils
.
isNotEmpty
(
reportStartTime
)
&&
StringUtils
.
isNotEmpty
(
reportEndTime
))
{
Long
durationRange
=
getDurationRange
(
reportStartTime
,
reportEndTime
);
timeHourRange
=
(
int
)
(
durationRange
/
60
);
}
// 判断是否满足配置的呼吸心率异常类型
BigDecimal
dayBrStopRate
=
brStopCount
==
0
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
timeHourRange
).
divide
(
new
BigDecimal
(
brStopCount
),
2
,
RoundingMode
.
HALF_UP
);
BigDecimal
dayBrSlowRate
=
brSlowCount
==
0
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
timeHourRange
).
divide
(
new
BigDecimal
(
brSlowCount
),
2
,
RoundingMode
.
HALF_UP
);
BigDecimal
dayBrFastRate
=
brFastCount
==
0
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
timeHourRange
).
divide
(
new
BigDecimal
(
brFastCount
),
2
,
RoundingMode
.
HALF_UP
);
BigDecimal
dayHrFastRate
=
hrFastCount
==
0
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
timeHourRange
).
divide
(
new
BigDecimal
(
hrFastCount
),
2
,
RoundingMode
.
HALF_UP
);
BigDecimal
dayHrSlowRate
=
hrSlowCount
==
0
?
BigDecimal
.
ZERO
:
new
BigDecimal
(
timeHourRange
).
divide
(
new
BigDecimal
(
hrSlowCount
),
2
,
RoundingMode
.
HALF_UP
);
boolean
brStopFlag
=
false
;
boolean
brFastFlag
=
false
;
boolean
brSlowFlag
=
false
;
boolean
hrFastFlag
=
false
;
boolean
hrSlowFlag
=
false
;
boolean
normalFlag
;
if
(
apneaRate
.
compareTo
(
dayBrStopRate
)
>
0
)
{
brStopFlag
=
true
;
}
if
(
tachypneaRate
.
compareTo
(
dayBrFastRate
)
>
0
)
{
brFastFlag
=
true
;
}
if
(
bradypneaRate
.
compareTo
(
dayBrSlowRate
)
>
0
)
{
brSlowFlag
=
true
;
}
if
(
tachycardiaRate
.
compareTo
(
dayHrFastRate
)
>
0
)
{
hrFastFlag
=
true
;
}
if
(
bradycardiaRate
.
compareTo
(
dayHrSlowRate
)
>
0
)
{
hrSlowFlag
=
true
;
}
normalFlag
=
!(
hrFastFlag
||
brStopFlag
||
brFastFlag
||
brSlowFlag
||
hrSlowFlag
);
SaasDiseaseEvaluateReport
saasDiseaseEvaluateReport
=
saasDiseaseEvaluateReportService
.
getOne
(
new
QueryWrapper
<
SaasDiseaseEvaluateReport
>().
lambda
()
.
orderByDesc
(
BaseEntity:
:
getCreateBy
)
.
last
(
"limit 1"
));
String
resultContent
=
saasDiseaseEvaluateReport
.
getResultContent
();
List
<
DiseaseReportVO
>
evaluateReportList
=
JSON
.
parseArray
(
resultContent
,
DiseaseReportVO
.
class
);
DiseaseReportVO
finalReport
=
new
DiseaseReportVO
();
// 根据疾病标准配置的规则判断满足哪个区间范围
for
(
DiseaseReportVO
diseaseReportVO
:
evaluateReportList
)
{
List
<
DiseaseReportVO
.
Condition
>
conditionList
=
diseaseReportVO
.
getCondition
();
boolean
conditionFlag
=
true
;
for
(
DiseaseReportVO
.
Condition
condition
:
conditionList
)
{
String
resultRelational
=
condition
.
getResultRelational
();
String
resultCondition
=
condition
.
getResultCondition
();
if
(
"or"
.
equals
(
resultCondition
))
{
if
(
conditionFlag
)
{
break
;
}
}
else
{
if
(
resultRelational
.
equals
(
"normal"
))
{
conditionFlag
=
normalFlag
&&
conditionFlag
;
}
if
(
resultRelational
.
equals
(
BreatheTypeEnum
.
APNEA
.
getCode
()))
{
conditionFlag
=
brStopFlag
&&
conditionFlag
;
}
if
(
resultRelational
.
equals
(
BreatheTypeEnum
.
TACHYPNEA
.
getCode
()))
{
conditionFlag
=
brFastFlag
&&
conditionFlag
;
}
if
(
resultRelational
.
equals
(
BreatheTypeEnum
.
BRADYPNEA
.
getCode
()))
{
conditionFlag
=
brSlowFlag
&&
conditionFlag
;
}
if
(
resultRelational
.
equals
(
HeartRateTypeEnum
.
TACHYCARDIA
.
getCode
()))
{
conditionFlag
=
hrFastFlag
&&
conditionFlag
;
}
if
(
resultRelational
.
equals
(
HeartRateTypeEnum
.
BRADYCARDIA
.
getCode
()))
{
conditionFlag
=
hrSlowFlag
&&
conditionFlag
;
}
}
}
if
(
conditionFlag
)
{
finalReport
=
diseaseReportVO
;
}
}
EvaluateReportVO
diseaseReport
=
saasDiseaseReportService
.
getByScore
(
Long
.
parseLong
(
finalReport
.
getScore
()));
// 插入呼吸分析表
PlatElderBreatheAnalysis
platElderBreatheAnalysis
=
new
PlatElderBreatheAnalysis
();
platElderBreatheAnalysis
.
setElderId
(
elder
.
getId
());
platElderBreatheAnalysis
.
setAvgBreatheRate
(
String
.
valueOf
(
dayTotalBr
/
(
timeHourRange
*
dayBrHrCount
)));
platElderBreatheAnalysis
.
setAvgHeartRate
(
String
.
valueOf
(
dayTotalHr
/
(
timeHourRange
*
dayBrHrCount
)));
platElderBreatheAnalysis
.
setBreatheScore
(
finalReport
.
getScore
());
platElderBreatheAnalysis
.
setHappenDate
(
currentDate
);
platElderBreatheAnalysis
.
setTenantId
(
tenantId
);
platElderBreatheAnalysis
.
setBreatheEvaluate
(
diseaseReport
==
null
?
""
:
diseaseReport
.
getEvaluate
());
platElderBreatheAnalysisService
.
save
(
platElderBreatheAnalysis
);
// 记录长者呼吸心率的异常事件
List
<
PlatElderBreatheAbnormal
>
platElderBreatheAbnormalList
=
Lists
.
newArrayList
();
PlatElderBreatheAbnormal
platElderBreatheAbnormal
;
for
(
BreatheAbnormalVO
breatheAbnormalVO
:
breatheAbnormalVOList
)
{
platElderBreatheAbnormal
=
new
PlatElderBreatheAbnormal
();
platElderBreatheAbnormal
.
setElderId
(
elder
.
getId
());
platElderBreatheAbnormal
.
setBreatheAnalysisId
(
platElderBreatheAnalysis
.
getId
());
platElderBreatheAbnormal
.
setType
(
breatheAbnormalVO
.
getType
());
platElderBreatheAbnormal
.
setHappenTime
(
breatheAbnormalVO
.
getHappenTime
());
platElderBreatheAbnormal
.
setValue
(
breatheAbnormalVO
.
getValue
());
platElderBreatheAbnormal
.
setTenantId
(
tenantId
);
platElderBreatheAbnormalList
.
add
(
platElderBreatheAbnormal
);
}
platElderBreatheAbnormalService
.
saveBatch
(
platElderBreatheAbnormalList
);
int
totalActionCount
=
0
;
int
totalActionCount
=
0
;
int
totalTurnedCount
=
0
;
int
totalTurnedCount
=
0
;
...
@@ -663,16 +305,16 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -663,16 +305,16 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
for
(
Map
.
Entry
<
String
,
AnalysisVO
>
entry
:
totalMap
.
entrySet
())
{
for
(
Map
.
Entry
<
String
,
AnalysisVO
>
entry
:
totalMap
.
entrySet
())
{
if
(
entry
.
getKey
().
equals
(
timeAnalysisVO
.
getStartTime
()))
{
if
(
entry
.
getKey
().
equals
(
timeAnalysisVO
.
getStartTime
()))
{
startTimeFlag
=
true
;
startTimeFlag
=
true
;
sleepTotalMap
.
put
(
entry
.
getKey
(),
entry
.
getValue
());
sleepTotalMap
.
put
(
entry
.
getKey
(),
entry
.
getValue
());
}
}
if
(
entry
.
getKey
().
equals
(
timeAnalysisVO
.
getEndTime
()))
{
if
(
entry
.
getKey
().
equals
(
timeAnalysisVO
.
getEndTime
()))
{
sleepTotalMap
.
put
(
entry
.
getKey
(),
entry
.
getValue
());
sleepTotalMap
.
put
(
entry
.
getKey
(),
entry
.
getValue
());
startTimeFlag
=
false
;
startTimeFlag
=
false
;
}
}
if
(
startTimeFlag
)
{
if
(
startTimeFlag
)
{
sleepTotalMap
.
put
(
entry
.
getKey
(),
entry
.
getValue
());
sleepTotalMap
.
put
(
entry
.
getKey
(),
entry
.
getValue
());
}
}
sleepTypeMap
.
put
(
timeAnalysisVO
.
getType
(),
sleepTotalMap
);
sleepTypeMap
.
put
(
timeAnalysisVO
.
getType
(),
sleepTotalMap
);
}
}
}
}
...
@@ -740,7 +382,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -740,7 +382,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
if
(
analysisVO
.
getActionCount
()
==
sleepDeepActionThreshold
&&
analysisVO
.
getTurnedCount
()
==
sleepDeepActionThreshold
if
(
analysisVO
.
getActionCount
()
==
sleepDeepActionThreshold
&&
analysisVO
.
getTurnedCount
()
==
sleepDeepActionThreshold
&&
sleepDeepBreatheMin
<=
analysisVO
.
getAvgBr
()
&&
sleepDeepBreatheMax
>=
analysisVO
.
getAvgBr
())
{
&&
sleepDeepBreatheMin
<=
analysisVO
.
getAvgBr
()
&&
sleepDeepBreatheMax
>=
analysisVO
.
getAvgBr
())
{
if
(
StringUtils
.
isEmpty
(
startSleepDeepTime
))
{
if
(
StringUtils
.
isEmpty
(
startSleepDeepTime
))
{
startSleepDeepTime
=
e
ntry
.
getKey
();
startSleepDeepTime
=
voE
ntry
.
getKey
();
}
}
sleepDeepMinute
++;
sleepDeepMinute
++;
continue
;
continue
;
...
@@ -751,7 +393,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -751,7 +393,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
if
(
sleepDeepMinute
>
sleepDeepActionTimeBegin
)
{
if
(
sleepDeepMinute
>
sleepDeepActionTimeBegin
)
{
sleepTimeAnalysisVO
=
new
SleepTimeAnalysisVO
();
sleepTimeAnalysisVO
=
new
SleepTimeAnalysisVO
();
sleepTimeAnalysisVO
.
setStartTime
(
startSleepDeepTime
);
sleepTimeAnalysisVO
.
setStartTime
(
startSleepDeepTime
);
sleepTimeAnalysisVO
.
setEndTime
(
e
ntry
.
getKey
());
sleepTimeAnalysisVO
.
setEndTime
(
voE
ntry
.
getKey
());
sleepTimeAnalysisVO
.
setType
(
SleepTypeEnum
.
SLEEP_DEEP
.
getCode
());
sleepTimeAnalysisVO
.
setType
(
SleepTypeEnum
.
SLEEP_DEEP
.
getCode
());
sleepTimeAnalysisVOList
.
add
(
sleepTimeAnalysisVO
);
sleepTimeAnalysisVOList
.
add
(
sleepTimeAnalysisVO
);
}
}
...
@@ -771,7 +413,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -771,7 +413,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
AnalysisVO
analysisVO
=
voEntry
.
getValue
();
AnalysisVO
analysisVO
=
voEntry
.
getValue
();
if
(
analysisVO
.
getActionCount
()
<
sleepModerateActionThreshold
&&
analysisVO
.
getTurnedCount
()
<
sleepModerateActionThreshold
)
{
if
(
analysisVO
.
getActionCount
()
<
sleepModerateActionThreshold
&&
analysisVO
.
getTurnedCount
()
<
sleepModerateActionThreshold
)
{
if
(
StringUtils
.
isEmpty
(
startSleepMidTime
))
{
if
(
StringUtils
.
isEmpty
(
startSleepMidTime
))
{
startSleepMidTime
=
e
ntry
.
getKey
();
startSleepMidTime
=
voE
ntry
.
getKey
();
}
}
sleepMidMinute
++;
sleepMidMinute
++;
continue
;
continue
;
...
@@ -782,7 +424,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -782,7 +424,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
if
(
sleepMidMinute
>
sleepModerateActionTimeBegin
)
{
if
(
sleepMidMinute
>
sleepModerateActionTimeBegin
)
{
sleepTimeAnalysisVO
=
new
SleepTimeAnalysisVO
();
sleepTimeAnalysisVO
=
new
SleepTimeAnalysisVO
();
sleepTimeAnalysisVO
.
setStartTime
(
startSleepMidTime
);
sleepTimeAnalysisVO
.
setStartTime
(
startSleepMidTime
);
sleepTimeAnalysisVO
.
setEndTime
(
e
ntry
.
getKey
());
sleepTimeAnalysisVO
.
setEndTime
(
voE
ntry
.
getKey
());
sleepTimeAnalysisVO
.
setType
(
SleepTypeEnum
.
SLEEP_MODERATE
.
getCode
());
sleepTimeAnalysisVO
.
setType
(
SleepTypeEnum
.
SLEEP_MODERATE
.
getCode
());
sleepTimeAnalysisVOList
.
add
(
sleepTimeAnalysisVO
);
sleepTimeAnalysisVOList
.
add
(
sleepTimeAnalysisVO
);
}
}
...
@@ -800,7 +442,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -800,7 +442,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
AnalysisVO
analysisVO
=
voEntry
.
getValue
();
AnalysisVO
analysisVO
=
voEntry
.
getValue
();
if
(
analysisVO
.
getAwakeMinuteActionFlag
())
{
if
(
analysisVO
.
getAwakeMinuteActionFlag
())
{
if
(
StringUtils
.
isEmpty
(
startAwakeTime
))
{
if
(
StringUtils
.
isEmpty
(
startAwakeTime
))
{
startAwakeTime
=
e
ntry
.
getKey
();
startAwakeTime
=
voE
ntry
.
getKey
();
}
}
awakeMinute
++;
awakeMinute
++;
continue
;
continue
;
...
@@ -810,7 +452,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -810,7 +452,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
}
}
sleepTimeAnalysisVO
=
new
SleepTimeAnalysisVO
();
sleepTimeAnalysisVO
=
new
SleepTimeAnalysisVO
();
sleepTimeAnalysisVO
.
setStartTime
(
startAwakeTime
);
sleepTimeAnalysisVO
.
setStartTime
(
startAwakeTime
);
sleepTimeAnalysisVO
.
setEndTime
(
e
ntry
.
getKey
());
sleepTimeAnalysisVO
.
setEndTime
(
voE
ntry
.
getKey
());
sleepTimeAnalysisVO
.
setType
(
SleepTypeEnum
.
SOBER
.
getCode
());
sleepTimeAnalysisVO
.
setType
(
SleepTypeEnum
.
SOBER
.
getCode
());
sleepTimeAnalysisVOList
.
add
(
sleepTimeAnalysisVO
);
sleepTimeAnalysisVOList
.
add
(
sleepTimeAnalysisVO
);
startAwakeTime
=
null
;
startAwakeTime
=
null
;
...
@@ -827,8 +469,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -827,8 +469,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
List
<
SleepTimeAnalysisVO
>
finalSleepTimeAnalysisList
=
Lists
.
newArrayList
();
// 记录多端睡眠记录
List
<
SleepTimeAnalysisVO
>
finalSleepTimeAnalysisList
=
Lists
.
newArrayList
();
// 记录多端睡眠记录
SleepTimeAnalysisVO
sleepTimeAnalysis
;
SleepTimeAnalysisVO
sleepTimeAnalysis
;
String
elderSleepTime
=
""
;
// 长者睡觉时间
String
elderGetupTime
=
""
;
// 长者起床时间
for
(
int
i
=
0
;
i
<
sleepList
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
sleepList
.
size
();
i
++)
{
sleepTimeAnalysis
=
new
SleepTimeAnalysisVO
();
sleepTimeAnalysis
=
new
SleepTimeAnalysisVO
();
List
<
SleepTimeAnalysisVO
>
deepList
=
Lists
.
newArrayList
();
List
<
SleepTimeAnalysisVO
>
deepList
=
Lists
.
newArrayList
();
...
@@ -836,18 +477,13 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -836,18 +477,13 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
List
<
SleepTimeAnalysisVO
>
lightList
=
Lists
.
newArrayList
();
List
<
SleepTimeAnalysisVO
>
lightList
=
Lists
.
newArrayList
();
List
<
SleepTimeAnalysisVO
>
soberList
=
Lists
.
newArrayList
();
List
<
SleepTimeAnalysisVO
>
soberList
=
Lists
.
newArrayList
();
SleepTimeAnalysisVO
timeAnalysisVO
=
sleepList
.
get
(
i
);
SleepTimeAnalysisVO
timeAnalysisVO
=
sleepList
.
get
(
i
);
if
(
i
==
0
)
{
elderSleepTime
=
timeAnalysisVO
.
getStartTime
();
BeanUtils
.
copyProperties
(
timeAnalysisVO
,
sleepTimeAnalysis
);
}
if
(
i
==
sleepList
.
size
()
-
1
)
{
elderGetupTime
=
timeAnalysisVO
.
getEndTime
();
}
BeanUtils
.
copyProperties
(
timeAnalysisVO
,
sleepTimeAnalysis
);
String
startTime
=
timeAnalysisVO
.
getStartTime
();
String
startTime
=
timeAnalysisVO
.
getStartTime
();
String
endTime
=
timeAnalysisVO
.
getEndTime
();
String
endTime
=
timeAnalysisVO
.
getEndTime
();
Long
durationRange
=
getDurationRange
(
timeAnalysisVO
.
getStartTime
(),
timeAnalysisVO
.
getEndTime
());
Long
durationRange
=
getDurationRange
(
timeAnalysisVO
.
getStartTime
(),
timeAnalysisVO
.
getEndTime
());
timeAnalysisVO
.
setInterval
(
durationRange
);
timeAnalysisVO
.
setInterval
(
durationRange
);
LocalDateTime
startDateTime
=
LocalDateTime
.
parse
(
startTime
,
DEFAULT_FORMATTER
);
LocalDateTime
startDateTime
=
LocalDateTime
.
parse
(
startTime
,
DEFAULT_FORMATTER
);
LocalDateTime
endDateTime
=
LocalDateTime
.
parse
(
endTime
,
DEFAULT_FORMATTER
);
LocalDateTime
endDateTime
=
LocalDateTime
.
parse
(
endTime
,
DEFAULT_FORMATTER
);
boolean
lightSleepFlag
=
true
;
// 如果不满足下面条件,就默认都是浅睡
boolean
lightSleepFlag
=
true
;
// 如果不满足下面条件,就默认都是浅睡
for
(
SleepTimeAnalysisVO
otherSleepTime
:
sleepTimeAnalysisVOList
)
{
for
(
SleepTimeAnalysisVO
otherSleepTime
:
sleepTimeAnalysisVOList
)
{
...
@@ -983,7 +619,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -983,7 +619,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
long
hour
=
deepTime
/
60
;
long
hour
=
deepTime
/
60
;
SleepConfigVO
sleepConfigVO
=
sleepDeepConfigList
.
get
(
i
);
SleepConfigVO
sleepConfigVO
=
sleepDeepConfigList
.
get
(
i
);
long
configHour
=
Long
.
parseLong
(
sleepConfigVO
.
getHour
());
long
configHour
=
Long
.
parseLong
(
sleepConfigVO
.
getHour
());
if
(
i
==
0
&&
Objects
.
equals
(
hour
,
configHour
))
{
if
(
i
==
0
&&
Objects
.
equals
(
hour
,
configHour
))
{
deepScore
=
Long
.
parseLong
(
sleepConfigVO
.
getScore
());
deepScore
=
Long
.
parseLong
(
sleepConfigVO
.
getScore
());
}
}
if
(
i
>
0
&&
hour
>
configHour
)
{
if
(
i
>
0
&&
hour
>
configHour
)
{
...
@@ -1018,7 +654,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -1018,7 +654,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
long
hour
=
sleepTime
/
60
;
long
hour
=
sleepTime
/
60
;
SleepConfigVO
sleepConfigVO
=
sleepTimeConfigList
.
get
(
i
);
SleepConfigVO
sleepConfigVO
=
sleepTimeConfigList
.
get
(
i
);
long
configHour
=
Long
.
parseLong
(
sleepConfigVO
.
getHour
());
long
configHour
=
Long
.
parseLong
(
sleepConfigVO
.
getHour
());
if
(
i
==
0
&&
Objects
.
equals
(
hour
,
configHour
))
{
if
(
i
==
0
&&
Objects
.
equals
(
hour
,
configHour
))
{
sleepScore
=
Long
.
parseLong
(
sleepConfigVO
.
getScore
());
sleepScore
=
Long
.
parseLong
(
sleepConfigVO
.
getScore
());
}
}
if
(
i
>
0
&&
hour
>
configHour
)
{
if
(
i
>
0
&&
hour
>
configHour
)
{
...
@@ -1071,10 +707,10 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -1071,10 +707,10 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
public
Long
getDurationRange
(
String
startTime
,
String
endTime
)
{
public
Long
getDurationRange
(
String
startTime
,
String
endTime
)
{
LocalDateTime
target
=
LocalDateTime
.
parse
(
startTime
,
DEFAULT_FORMATTER
);
LocalDateTime
target
=
LocalDateTime
.
parse
(
startTime
,
DEFAULT_FORMATTER
);
// 获取当前日期,此处为了保证后续结果固定,注掉自动获取当前日期,指定固定日期
// 获取当前日期,此处为了保证后续结果固定,注掉自动获取当前日期,指定固定日期
// LocalDate today = LocalDate.now();
// LocalDate today = LocalDate.now();
LocalDateTime
source
=
LocalDateTime
.
parse
(
endTime
,
DEFAULT_FORMATTER
);
LocalDateTime
source
=
LocalDateTime
.
parse
(
endTime
,
DEFAULT_FORMATTER
);
return
Duration
.
between
(
target
,
source
).
toMinutes
();
return
Duration
.
between
(
target
,
source
).
toMinutes
();
}
}
...
@@ -1141,8 +777,8 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -1141,8 +777,8 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
String
end
=
""
;
String
end
=
""
;
for
(
int
i1
=
0
;
i1
<
sleepNumber
;
i1
++)
{
for
(
int
i1
=
0
;
i1
<
sleepNumber
;
i1
++)
{
PlatSleepRangeVO
rangeVO
=
new
PlatSleepRangeVO
();
PlatSleepRangeVO
rangeVO
=
new
PlatSleepRangeVO
();
int
random
=
RandomUtils
.
nextInt
(
0
,
4
);
int
random
=
RandomUtils
.
nextInt
(
0
,
4
);
long
randomLong
=
RandomUtils
.
nextLong
(
1
,
3
);
long
randomLong
=
RandomUtils
.
nextLong
(
1
,
3
);
SleepTypeEnum
sleepTypeEnum
=
values
[
random
];
SleepTypeEnum
sleepTypeEnum
=
values
[
random
];
rangeVO
.
setSleepType
(
sleepTypeEnum
.
getCode
());
rangeVO
.
setSleepType
(
sleepTypeEnum
.
getCode
());
start
=
startTime
.
format
(
DEFAULT_FORMATTER
);
start
=
startTime
.
format
(
DEFAULT_FORMATTER
);
...
@@ -1209,12 +845,8 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -1209,12 +845,8 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
//platElderBreatheAnalysisService.save(platElderBreatheAnalysis);
//platElderBreatheAnalysisService.save(platElderBreatheAnalysis);
}
}
}
}
}
}
server-service/src/main/java/com/makeit/task/HeartRespiratoryTask.java
deleted
100644 → 0
View file @
93f00def
package
com
.
makeit
.
task
;
import
com.makeit.service.platform.elder.PlatElderDayReportWeekService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
@Component
public
class
HeartRespiratoryTask
{
@Autowired
private
PlatElderDayReportWeekService
platElderDayReportWeekService
;
@Scheduled
(
cron
=
"0 0 2 * * ? "
)
public
void
job
(){
platElderDayReportWeekService
.
heartRespiratoryJob
();
}
}
server-service/src/main/java/com/makeit/task/IotSyncTask.java
View file @
d44d7a1f
package
com
.
makeit
.
task
;
package
com
.
makeit
.
task
;
import
com.makeit.global.aspect.tenant.TenantIdIgnore
;
import
com.makeit.service.platform.device.PlatDeviceService
;
import
com.makeit.service.platform.device.PlatDeviceService
;
import
com.makeit.service.platform.elder.PlatElderSleepService
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.scheduling.annotation.Scheduled
;
...
@@ -15,9 +13,6 @@ public class IotSyncTask {
...
@@ -15,9 +13,6 @@ public class IotSyncTask {
@Autowired
@Autowired
private
PlatDeviceService
platDeviceService
;
private
PlatDeviceService
platDeviceService
;
@Autowired
private
PlatElderSleepService
platElderSleepService
;
/**
/**
* 一小时同步一次
* 一小时同步一次
...
@@ -30,30 +25,4 @@ public class IotSyncTask {
...
@@ -30,30 +25,4 @@ public class IotSyncTask {
}
}
/**
* 床位id 绑定的所有设备
* 房间id 绑定的所有设备
*
*/
/**
* 长者睡眠分析
*/
@Scheduled
(
cron
=
"0 0 1 * * ?"
)
@TenantIdIgnore
public
void
elderSleepSleepAnalysisTask
()
{
log
.
info
(
"开始定时分析长者睡眠质量"
);
platElderSleepService
.
elderSleepSleepAnalysisTask
();
log
.
info
(
"定时分析长者睡眠质量结束"
);
}
/* @Scheduled(cron = "0 0 1 * * ?")
@TenantIdIgnore
public void elderCoordinateListAnalysisTask() {
log.info("开始定时分析24小时热力图");
platElderDayReportDayService.elderCoordinateListAnalysisTask();
log.info("定时分析长者24小时热力图");
}*/
}
}
server-service/src/main/java/com/makeit/task/PlatElderReportTask.java
0 → 100644
View file @
d44d7a1f
package
com
.
makeit
.
task
;
import
com.makeit.global.aspect.tenant.TenantIdIgnore
;
import
com.makeit.service.platform.elder.PlatElderBreatheAnalysisService
;
import
com.makeit.service.platform.elder.PlatElderBreatheDayStatService
;
import
com.makeit.service.platform.elder.PlatElderSleepService
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
@Component
@Slf4j
public
class
PlatElderReportTask
{
@Autowired
private
PlatElderSleepService
platElderSleepService
;
@Autowired
private
PlatElderBreatheDayStatService
platElderBreatheDayStatService
;
@Autowired
private
PlatElderBreatheAnalysisService
platElderBreatheAnalysisService
;
@Scheduled
(
cron
=
"0 0 1 * * ?"
)
@TenantIdIgnore
public
void
heartRespiratoryTask
()
{
log
.
info
(
"开始生成长者每日呼吸,异常情况"
);
platElderBreatheDayStatService
.
heartRespiratoryTask
();
log
.
info
(
"生成长者每日呼吸,异常情况结束"
);
}
/**
* 长者呼吸心率分析
*/
@Scheduled
(
cron
=
"0 0 2 * * ?"
)
@TenantIdIgnore
public
void
elderHeartRespiratoryAnalysisTask
()
{
log
.
info
(
"开始定时分析长者呼吸心率"
);
platElderBreatheAnalysisService
.
elderHeartRespiratoryAnalysisTask
();
log
.
info
(
"定时分析长者呼吸心率结束"
);
}
/**
* 长者睡眠分析
*/
@Scheduled
(
cron
=
"0 0 3 * * ?"
)
@TenantIdIgnore
public
void
elderSleepSleepAnalysisTask
()
{
log
.
info
(
"开始定时分析长者睡眠质量"
);
platElderSleepService
.
elderSleepSleepAnalysisTask
();
log
.
info
(
"定时分析长者睡眠质量结束"
);
}
}
server-service/src/main/java/com/makeit/task/ReportMonthTask.java
deleted
100644 → 0
View file @
93f00def
package
com
.
makeit
.
task
;
import
com.makeit.service.platform.elder.PlatElderReportMonthService
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
@Component
public
class
ReportMonthTask
{
@Autowired
private
PlatElderReportMonthService
platElderReportMonthService
;
@Scheduled
(
cron
=
"0 0 2 * * ? "
)
public
void
job
(){
platElderReportMonthService
.
reportMonthJob
();
}
}
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