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
02be4f91
authored
Feb 23, 2024
by
汪志阳
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
modify:bug 修改
parent
daaa1594
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
82 additions
and
21 deletions
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderSleepServiceImpl.java
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderSleepServiceImpl.java
View file @
02be4f91
...
@@ -119,6 +119,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -119,6 +119,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
boolean
awakeMinuteActionFlag
=
false
;
boolean
awakeMinuteActionFlag
=
false
;
int
noPersonCount
=
0
;
// 无人跳过计数
int
noPersonCount
=
0
;
// 无人跳过计数
boolean
isLive
=
false
;
boolean
isLive
=
false
;
int
awakeCount
=
0
;
for
(
DeviceInfoContentBreathe
infoContentBreathe
:
deviceInfoContentBreathes
)
{
for
(
DeviceInfoContentBreathe
infoContentBreathe
:
deviceInfoContentBreathes
)
{
// 体动指数
// 体动指数
breatheProperties
=
infoContentBreathe
.
getProperties
();
breatheProperties
=
infoContentBreathe
.
getProperties
();
...
@@ -164,7 +165,8 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -164,7 +165,8 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
}
}
// 清醒
// 清醒
if
(
bodyMove
>
awakeThreshold
)
{
if
(
bodyMove
>
awakeThreshold
)
{
awakeMinuteActionFlag
=
true
;
awakeCount
++;
// awakeMinuteActionFlag = true;
}
}
if
(
br
>
maxBr
)
{
if
(
br
>
maxBr
)
{
maxBr
=
br
;
maxBr
=
br
;
...
@@ -184,6 +186,9 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -184,6 +186,9 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
}
}
}
}
if
(
reportSize
==
awakeCount
)
{
awakeMinuteActionFlag
=
true
;
}
// if (reportSize == noPersonCount) {
// if (reportSize == noPersonCount) {
// // continue;
// // continue;
// }
// }
...
@@ -428,7 +433,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -428,7 +433,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
}
}
if
(
sleepDeepMinute
>
sleepDeepActionTimeBegin
&&
!
isDeepSleep
)
{
if
(
sleepDeepMinute
>
sleepDeepActionTimeBegin
&&
!
isDeepSleep
)
{
sleepTimeAnalysisVO
.
setStartTime
(
startSleepDeepTime
);
sleepTimeAnalysisVO
.
setStartTime
(
getLastMinute
(
startSleepDeepTime
)
);
sleepTimeAnalysisVO
.
setEndTime
(
getLastMinute
(
voEntry
.
getKey
()));
sleepTimeAnalysisVO
.
setEndTime
(
getLastMinute
(
voEntry
.
getKey
()));
sleepTimeAnalysisVO
.
setType
(
SleepTypeEnum
.
SLEEP_DEEP
.
getCode
());
sleepTimeAnalysisVO
.
setType
(
SleepTypeEnum
.
SLEEP_DEEP
.
getCode
());
sleepTimeAnalysisVO
.
setBelongToSleepTime
(
key
);
sleepTimeAnalysisVO
.
setBelongToSleepTime
(
key
);
...
@@ -555,9 +560,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -555,9 +560,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
sleepTimeAnalysisVO
.
setEndTime
(
key1
);
sleepTimeAnalysisVO
.
setEndTime
(
key1
);
sleepTimeAnalysisVO
.
setType
(
SleepTypeEnum
.
SLEEP_MODERATE
.
getCode
());
sleepTimeAnalysisVO
.
setType
(
SleepTypeEnum
.
SLEEP_MODERATE
.
getCode
());
sleepTimeAnalysisVO
.
setBelongToSleepTime
(
key
);
sleepTimeAnalysisVO
.
setBelongToSleepTime
(
key
);
if
(!
isContain
(
deepList
,
startSleepMidTime
,
key1
))
{
isContain
(
deepList
,
sleepTimeAnalysisVO
,
sleepTimeAnalysisVOList
);
sleepTimeAnalysisVOList
.
add
(
sleepTimeAnalysisVO
);
}
startSleepMidTime
=
null
;
startSleepMidTime
=
null
;
sleepMidMinute
=
0
;
sleepMidMinute
=
0
;
}
}
...
@@ -565,27 +568,85 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -565,27 +568,85 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
}
}
}
}
private
boolean
isContain
(
List
<
SleepTimeAnalysisVO
>
deepList
,
String
startSleepMidTime
,
String
endMidTime
)
{
private
void
isContain
(
List
<
SleepTimeAnalysisVO
>
deepList
,
SleepTimeAnalysisVO
sleepTimeAnalysisVO
,
List
<
SleepTimeAnalysisVO
>
result
)
{
boolean
isContain
=
false
;
String
startSleepMidTime
=
sleepTimeAnalysisVO
.
getStartTime
();
String
endMidTime
=
sleepTimeAnalysisVO
.
getEndTime
();
if
(
CollUtil
.
isEmpty
(
deepList
))
{
if
(
CollUtil
.
isEmpty
(
deepList
))
{
return
false
;
result
.
add
(
sleepTimeAnalysisVO
);
return
;
}
}
LocalDateTime
startSleepTime
=
LocalDateTime
.
parse
(
startSleepMidTime
,
DEFAULT_FORMATTER
);
LocalDateTime
midStartTime
=
LocalDateTime
.
parse
(
startSleepMidTime
,
DEFAULT_FORMATTER
);
LocalDateTime
endSleepTime
=
LocalDateTime
.
parse
(
endMidTime
,
DEFAULT_FORMATTER
);
LocalDateTime
midEndTime
=
LocalDateTime
.
parse
(
endMidTime
,
DEFAULT_FORMATTER
);
LocalDateTime
finalMidStartTime
=
midStartTime
;
SleepTimeAnalysisVO
isIn
=
deepList
.
stream
().
filter
(
vo
->
{
LocalDateTime
deepStartTime
=
LocalDateTime
.
parse
(
vo
.
getStartTime
(),
DEFAULT_FORMATTER
);
LocalDateTime
deepEndTime
=
LocalDateTime
.
parse
(
vo
.
getEndTime
(),
DEFAULT_FORMATTER
);
return
Duration
.
between
(
finalMidStartTime
,
deepStartTime
).
toMinutes
()
<=
0
&&
Duration
.
between
(
finalMidStartTime
,
deepEndTime
).
toMinutes
()
>=
0
;
}).
findFirst
().
orElse
(
null
);
for
(
SleepTimeAnalysisVO
vo
:
deepList
)
{
for
(
SleepTimeAnalysisVO
vo
:
deepList
)
{
LocalDateTime
startTime
=
LocalDateTime
.
parse
(
vo
.
getStartTime
(),
DEFAULT_FORMATTER
);
LocalDateTime
deepStartTime
=
LocalDateTime
.
parse
(
vo
.
getStartTime
(),
DEFAULT_FORMATTER
);
LocalDateTime
endTime
=
LocalDateTime
.
parse
(
vo
.
getEndTime
(),
DEFAULT_FORMATTER
);
LocalDateTime
deepEndTime
=
LocalDateTime
.
parse
(
vo
.
getEndTime
(),
DEFAULT_FORMATTER
);
boolean
startFlag
=
startSleepTime
.
isAfter
(
startTime
)
&&
startSleepTime
.
isBefore
(
endTime
);
if
(
isIn
!=
null
)
{
boolean
endFlag
=
endSleepTime
.
isAfter
(
startTime
)
&&
endSleepTime
.
isBefore
(
endTime
);
midStartTime
=
LocalDateTime
.
parse
(
isIn
.
getEndTime
(),
DEFAULT_FORMATTER
);
if
(
startFlag
||
endFlag
)
{
startSleepMidTime
=
isIn
.
getEndTime
();
isContain
=
true
;
}
}
boolean
afterFlag
=
startSleepTime
.
isBefore
(
startTime
)
&&
endSleepTime
.
isAfter
(
endTime
);
// 中度包含在深度内 eg: 13点19到13点55分 为中度睡眠 13点05分到14点02为深度度睡眠
if
(
afterFlag
)
{
boolean
startFlag
=
midStartTime
.
isAfter
(
deepStartTime
)
&&
midStartTime
.
isBefore
(
deepEndTime
);
isContain
=
true
;
boolean
endFlag
=
midEndTime
.
isAfter
(
deepStartTime
)
&&
midEndTime
.
isBefore
(
deepEndTime
);
if
(
startFlag
&&
endFlag
)
{
continue
;
}
}
// 深度包含在中度内 13点19到13点55分 深度睡眠 13点05分到14点30 为中度睡眠
boolean
midContainDeep
=
midStartTime
.
isBefore
(
deepStartTime
)
&&
midEndTime
.
isAfter
(
deepEndTime
);
if
(
midContainDeep
)
{
SleepTimeAnalysisVO
add
=
BeanUtil
.
toBean
(
sleepTimeAnalysisVO
,
SleepTimeAnalysisVO
.
class
);
add
.
setStartTime
(
startSleepMidTime
);
add
.
setEndTime
(
vo
.
getStartTime
());
result
.
add
(
add
);
SleepTimeAnalysisVO
add2
=
BeanUtil
.
toBean
(
sleepTimeAnalysisVO
,
SleepTimeAnalysisVO
.
class
);
add2
.
setStartTime
(
vo
.
getEndTime
());
add2
.
setEndTime
(
endMidTime
);
result
.
add
(
add2
);
}
// 13点19到13点55分 深度睡眠 13点05分到13点30 为中度睡眠
boolean
flag
=
midStartTime
.
isBefore
(
deepStartTime
)
&&
endFlag
;
if
(
flag
)
{
SleepTimeAnalysisVO
add3
=
BeanUtil
.
toBean
(
sleepTimeAnalysisVO
,
SleepTimeAnalysisVO
.
class
);
add3
.
setStartTime
(
startSleepMidTime
);
add3
.
setEndTime
(
vo
.
getStartTime
());
result
.
add
(
add3
);
}
// 13点19到13点55分 深度睡眠 13点25分到14点30 为中度睡眠
boolean
flag2
=
startFlag
&&
midEndTime
.
isAfter
(
deepEndTime
);
if
(
flag2
)
{
SleepTimeAnalysisVO
add4
=
BeanUtil
.
toBean
(
sleepTimeAnalysisVO
,
SleepTimeAnalysisVO
.
class
);
add4
.
setStartTime
(
vo
.
getEndTime
());
add4
.
setEndTime
(
endMidTime
);
result
.
add
(
add4
);
}
}
}
return
isContain
;
}
public
static
void
main
(
String
[]
args
)
{
List
<
SleepTimeAnalysisVO
>
deepList
=
new
ArrayList
<>();
SleepTimeAnalysisVO
vo1
=
new
SleepTimeAnalysisVO
();
vo1
.
setStartTime
(
"2024-02-19 12:24"
);
vo1
.
setEndTime
(
"2024-02-19 13:04"
);
SleepTimeAnalysisVO
vo2
=
new
SleepTimeAnalysisVO
();
vo2
.
setStartTime
(
"2024-02-19 13:18"
);
vo2
.
setEndTime
(
"2024-02-19 13:55"
);
deepList
.
add
(
vo1
);
deepList
.
add
(
vo2
);
LocalDateTime
finalMidStartTime
=
LocalDateTime
.
of
(
2024
,
02
,
19
,
12
,
24
);
SleepTimeAnalysisVO
isIn
=
deepList
.
stream
().
filter
(
vo
->
{
LocalDateTime
deepStartTime
=
LocalDateTime
.
parse
(
vo
.
getStartTime
(),
DEFAULT_FORMATTER
);
LocalDateTime
deepEndTime
=
LocalDateTime
.
parse
(
vo
.
getEndTime
(),
DEFAULT_FORMATTER
);
return
Duration
.
between
(
finalMidStartTime
,
deepStartTime
).
toMinutes
()
<=
0
&&
Duration
.
between
(
finalMidStartTime
,
deepEndTime
).
toMinutes
()
>=
0
;
}).
findFirst
().
orElse
(
null
);
System
.
out
.
println
(
isIn
);
}
}
/**
/**
...
@@ -935,7 +996,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
...
@@ -935,7 +996,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
}
}
String
tenantId
=
elder
.
getTenantId
();
String
tenantId
=
elder
.
getTenantId
();
// dayHourRangeList = Lists.newArrayList("2024-0
1-30 23:00:00~2024-01-31 00:32:00","2024-01-31 00:32:00~2024-01-31 01:32:00","2024-01-31 01:32:00~2024-01-31 02:40
:00");
// dayHourRangeList = Lists.newArrayList("2024-0
2-19 13:00:00~2024-02-19 14:05
:00");
for
(
String
hourRange
:
dayHourRangeList
)
{
for
(
String
hourRange
:
dayHourRangeList
)
{
String
[]
hourRangeArray
=
hourRange
.
split
(
"~"
);
String
[]
hourRangeArray
=
hourRange
.
split
(
"~"
);
List
<
DeviceOperationLogEntity
>
deviceOperationLogEntities
=
productDeviceService
.
getDeviceLogByTimeRange
(
platDevice
.
getOriDeviceId
(),
"reportProperty"
,
10000
,
hourRangeArray
[
0
],
hourRangeArray
[
1
]);
List
<
DeviceOperationLogEntity
>
deviceOperationLogEntities
=
productDeviceService
.
getDeviceLogByTimeRange
(
platDevice
.
getOriDeviceId
(),
"reportProperty"
,
10000
,
hourRangeArray
[
0
],
hourRangeArray
[
1
]);
...
...
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