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
4f347e2e
authored
Jan 08, 2024
by
汪志阳
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
fix:bug修改
parent
279886ca
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
110 additions
and
110 deletions
server-common/src/main/java/com/makeit/module/iot/vo/analysis/SleepTimeAnalysisVO.java
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderSleepServiceImpl.java
server-common/src/main/java/com/makeit/module/iot/vo/analysis/SleepTimeAnalysisVO.java
View file @
4f347e2e
...
...
@@ -18,11 +18,6 @@ public class SleepTimeAnalysisVO {
private
String
endTime
;
/**
* 起床时间
*/
private
String
newEndTime
;
/**
* 间隔时间(分钟)
*/
private
Long
interval
;
...
...
server-service/src/main/java/com/makeit/service/platform/elder/impl/PlatElderSleepServiceImpl.java
View file @
4f347e2e
...
...
@@ -41,10 +41,7 @@ import org.springframework.transaction.annotation.Transactional;
import
java.time.*
;
import
java.time.format.DateTimeFormatter
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.TreeMap
;
import
java.util.*
;
import
java.util.concurrent.atomic.AtomicReference
;
import
java.util.stream.Collectors
;
...
...
@@ -218,8 +215,6 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
List
<
SleepTimeAnalysisVO
>
sleepTimeAnalysisVOList
)
{
String
startSleepTime
=
null
;
int
sleepMinute
=
0
;
boolean
isSleep
=
false
;
for
(
Map
.
Entry
<
String
,
AnalysisVO
>
entry
:
totalMap
.
entrySet
())
{
AnalysisVO
analysisVO
=
entry
.
getValue
();
// 非离床且体动值<20
...
...
@@ -239,7 +234,6 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
sleepTimeAnalysisVO
.
setEndTime
(
entry
.
getKey
());
sleepTimeAnalysisVO
.
setType
(
SleepTypeEnum
.
DAY_SLEEP
.
getCode
());
sleepTimeAnalysisVOList
.
add
(
sleepTimeAnalysisVO
);
isSleep
=
true
;
}
startSleepTime
=
null
;
sleepMinute
=
0
;
...
...
@@ -249,19 +243,24 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
return
sleepTypeMap
;
}
for
(
SleepTimeAnalysisVO
timeAnalysisVO
:
sleepTimeAnalysisVOList
)
{
if
(!
timeAnalysisVO
.
getType
().
equals
(
SleepTypeEnum
.
DAY_SLEEP
.
getCode
()))
{
continue
;
}
boolean
startTimeFlag
=
false
;
TreeMap
<
String
,
AnalysisVO
>
sleepTotalMap
=
new
TreeMap
<>();
for
(
Map
.
Entry
<
String
,
AnalysisVO
>
entry
:
totalMap
.
entrySet
())
{
if
(
entry
.
getKey
().
equals
(
timeAnalysisVO
.
getStartTime
()))
{
String
reportTime
=
entry
.
getKey
();
AnalysisVO
analysisVO
=
entry
.
getValue
();
if
(
reportTime
.
equals
(
timeAnalysisVO
.
getStartTime
()))
{
startTimeFlag
=
true
;
sleepTotalMap
.
put
(
entry
.
getKey
(),
entry
.
getValue
()
);
sleepTotalMap
.
put
(
reportTime
,
analysisVO
);
}
if
(
entry
.
getKey
()
.
equals
(
timeAnalysisVO
.
getEndTime
()))
{
sleepTotalMap
.
put
(
entry
.
getKey
(),
entry
.
getValue
()
);
if
(
reportTime
.
equals
(
timeAnalysisVO
.
getEndTime
()))
{
sleepTotalMap
.
put
(
reportTime
,
analysisVO
);
startTimeFlag
=
false
;
}
if
(
startTimeFlag
)
{
sleepTotalMap
.
put
(
entry
.
getKey
(),
entry
.
getValue
()
);
sleepTotalMap
.
put
(
reportTime
,
analysisVO
);
}
sleepTypeMap
.
put
(
timeAnalysisVO
.
getStartTime
(),
sleepTotalMap
);
}
...
...
@@ -279,12 +278,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
*/
private
void
getUp
(
TreeMap
<
String
,
AnalysisVO
>
totalMap
,
double
riseLeaveThreshold
,
int
riseActionDuration
,
double
repeatSleepThreshold
,
List
<
SleepTimeAnalysisVO
>
sleepTimeAnalysisVOList
,
SleepCountDTO
sleepCountDTO
,
TreeMap
<
String
,
TreeMap
<
String
,
AnalysisVO
>>
sleepTypeMap
)
{
List
<
SleepTimeAnalysisVO
>
sleepList
=
sleepTimeAnalysisVOList
.
stream
()
.
filter
(
f
->
SleepTypeEnum
.
SLEEP
.
getCode
().
equals
(
f
.
getType
())).
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isEmpty
(
sleepList
))
{
return
;
}
SleepCountDTO
sleepCountDTO
)
{
Integer
actionCount
=
0
;
Integer
turnedCount
=
0
;
String
startGetupTime
=
null
;
...
...
@@ -315,7 +309,13 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
}
sleepCountDTO
.
setTotalActionCount
(
actionCount
);
sleepCountDTO
.
setTotalTurnedCount
(
turnedCount
);
List
<
SleepTimeAnalysisVO
>
getUpList
=
sleepTimeAnalysisVOList
.
stream
()
.
filter
(
f
->
SleepTypeEnum
.
GETUP
.
getCode
().
equals
(
f
.
getType
())).
collect
(
Collectors
.
toList
());
List
<
SleepTimeAnalysisVO
>
sleepList
=
sleepTimeAnalysisVOList
.
stream
()
.
filter
(
f
->
SleepTypeEnum
.
SLEEP
.
getCode
().
equals
(
f
.
getType
())).
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isEmpty
(
sleepList
))
{
return
;
}
String
startGetupTime2
=
null
;
int
getupMinute2
=
0
;
for
(
Map
.
Entry
<
String
,
AnalysisVO
>
entry
:
totalMap
.
entrySet
())
{
...
...
@@ -331,12 +331,9 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
continue
;
}
if
(
getupMinute2
>
riseActionDuration
&&
startGetupTime2
!=
null
)
{
LocalDateTime
startDateTime
=
LocalDateTime
.
parse
(
startGetupTime2
,
DEFAULT_FORMATTER
);
SleepTimeAnalysisVO
repeatSleep
=
sleepList
.
stream
().
filter
(
f
->
Duration
.
between
(
startDateTime
,
LocalDateTime
.
parse
(
f
.
getStartTime
(),
DEFAULT_FORMATTER
)).
toMinutes
()
<
repeatSleepThreshold
*
60
)
.
findFirst
().
orElse
(
null
);
// 两小时内不在有入睡
if
(
repeatSleep
==
null
)
{
String
finalStartGetupTime
=
startGetupTime2
;
boolean
exist
=
getUpList
.
stream
().
anyMatch
(
f
->
f
.
getStartTime
().
equals
(
finalStartGetupTime
));
if
(!
exist
)
{
SleepTimeAnalysisVO
sleepTimeAnalysisVO
=
new
SleepTimeAnalysisVO
();
sleepTimeAnalysisVO
.
setStartTime
(
startGetupTime2
);
sleepTimeAnalysisVO
.
setEndTime
(
entry
.
getKey
());
...
...
@@ -347,6 +344,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
startGetupTime2
=
null
;
getupMinute2
=
0
;
}
setWakeUpTime
(
sleepTimeAnalysisVOList
);
}
/**
...
...
@@ -426,9 +424,9 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
}
LocalDateTime
startTime
=
LocalDateTime
.
parse
(
startSleepDeepTime
,
DEFAULT_FORMATTER
);
LocalDateTime
repeatSleepTime
=
timeList
.
stream
().
filter
(
f
->
Duration
.
between
(
startTime
,
f
).
toMinutes
()
<=
napDuration
*
60L
).
findFirst
().
orElse
(
null
);
//
LocalDateTime repeatSleepTime = timeList.stream().filter(f -> Duration.between(startTime, f).toMinutes() <= napDuration * 60L).findFirst().orElse(null);
// 小憩:深度睡眠和浅度睡眠<=3小时,且2小时内无再次入睡
if
(
sleepMinute
<=
napThreshold
*
60
&&
repeatSleepTime
==
null
)
{
if
(
sleepMinute
<=
napThreshold
*
60
)
{
SleepTimeAnalysisVO
sleepTimeAnalysisVO
=
new
SleepTimeAnalysisVO
();
sleepTimeAnalysisVO
.
setStartTime
(
startSleepDeepTime
);
sleepTimeAnalysisVO
.
setEndTime
(
lastEntry
.
getKey
());
...
...
@@ -517,6 +515,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
awakeMinute
=
0
;
}
}
setRestTime
(
sleepTimeAnalysisVOList
);
}
private
SleepTimeDTO
groupSleepData
(
List
<
SleepTimeAnalysisVO
>
sleepTimeAnalysisVOList
)
{
...
...
@@ -553,7 +552,14 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
}
private
void
setWakeUp
(
List
<
SleepTimeAnalysisVO
>
sleepList
,
List
<
SleepTimeAnalysisVO
>
getUpList
)
{
private
void
setWakeUpTime
(
List
<
SleepTimeAnalysisVO
>
list
)
{
if
(
CollUtil
.
isEmpty
(
list
))
{
return
;
}
List
<
SleepTimeAnalysisVO
>
getUpList
=
list
.
stream
()
.
filter
(
f
->
SleepTypeEnum
.
GETUP
.
getCode
().
equals
(
f
.
getType
())).
collect
(
Collectors
.
toList
());
List
<
SleepTimeAnalysisVO
>
sleepList
=
list
.
stream
()
.
filter
(
f
->
SleepTypeEnum
.
SLEEP
.
getCode
().
equals
(
f
.
getType
())).
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isEmpty
(
sleepList
)
||
CollUtil
.
isEmpty
(
getUpList
))
{
return
;
}
...
...
@@ -568,7 +574,42 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
LocalDateTime
.
parse
(
w
.
getStartTime
(),
DEFAULT_FORMATTER
)).
toMinutes
();
if
(
between
<
minute
[
0
])
{
minute
[
0
]
=
between
;
s
.
setNewEndTime
(
w
.
getStartTime
());
s
.
setEndTime
(
w
.
getStartTime
());
}
});
}
});
}
/**
* 小憩结束时间为清醒时间
* @param list
*/
private
void
setRestTime
(
List
<
SleepTimeAnalysisVO
>
list
)
{
if
(
CollUtil
.
isEmpty
(
list
))
{
return
;
}
List
<
SleepTimeAnalysisVO
>
soberList
=
list
.
stream
()
.
filter
(
f
->
SleepTypeEnum
.
SOBER
.
getCode
().
equals
(
f
.
getType
())).
collect
(
Collectors
.
toList
());
List
<
SleepTimeAnalysisVO
>
restList
=
list
.
stream
()
.
filter
(
f
->
SleepTypeEnum
.
RESTING
.
getCode
().
equals
(
f
.
getType
())).
collect
(
Collectors
.
toList
());
if
(
CollUtil
.
isEmpty
(
restList
)
||
CollUtil
.
isEmpty
(
soberList
))
{
return
;
}
restList
.
forEach
(
s
->
{
List
<
SleepTimeAnalysisVO
>
wakeList
=
soberList
.
stream
().
filter
(
f
->
LocalDateTime
.
parse
(
f
.
getStartTime
(),
DEFAULT_FORMATTER
)
.
isAfter
(
LocalDateTime
.
parse
(
s
.
getStartTime
(),
DEFAULT_FORMATTER
))).
collect
(
Collectors
.
toList
());
// 查询最近的清醒时间,设置
if
(
CollUtil
.
isNotEmpty
(
wakeList
))
{
final
long
[]
minute
=
{
24
*
60
};
wakeList
.
forEach
(
w
->
{
long
between
=
Duration
.
between
(
LocalDateTime
.
parse
(
s
.
getStartTime
(),
DEFAULT_FORMATTER
),
LocalDateTime
.
parse
(
w
.
getStartTime
(),
DEFAULT_FORMATTER
)).
toMinutes
();
if
(
between
<
minute
[
0
])
{
minute
[
0
]
=
between
;
s
.
setEndTime
(
w
.
getStartTime
());
}
});
}
...
...
@@ -615,128 +656,92 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
List
<
SleepTimeAnalysisVO
>
soberList
=
sleepTimeDTO
.
getSoberList
();
List
<
SleepTimeAnalysisVO
>
sleepList
=
sleepTimeDTO
.
getSleepList
();
List
<
SleepTimeAnalysisVO
>
restList
=
sleepTimeDTO
.
getRestList
();
if
(
CollUtil
.
isNotEmpty
(
sleepList
))
{
for
(
SleepTimeAnalysisVO
analysisVO
:
sleepList
)
{
List
<
PlatSleepRangeVO
>
sleepRangeList
=
new
ArrayList
<>();
if
(
CollUtil
.
isNotEmpty
(
deepList
))
{
for
(
SleepTimeAnalysisVO
analysisVO
:
deepList
)
{
PlatSleepRangeVO
sleepRangeVO
=
new
PlatSleepRangeVO
();
sleepRangeVO
.
setStartTime
(
analysisVO
.
getStartTime
());
sleepRangeVO
.
setEndTime
(
analysisVO
.
getEndTime
());
sleepRangeVO
.
setSleepType
(
analysisVO
.
getType
());
PlatElderSleep
platElderSleep
=
new
PlatElderSleep
();
platElderSleep
.
setStartSleep
(
LocalDateTime
.
parse
(
analysisVO
.
getStartTime
(),
DEFAULT_FORMATTER
));
platElderSleep
.
setEndSleep
(
LocalDateTime
.
parse
(
analysisVO
.
getEndTime
(),
DEFAULT_FORMATTER
));
platElderSleep
.
setElderId
(
platElderId
);
platElderSleep
.
setElderSleepType
(
SleepTypeEnum
.
SLEEP
.
getType
());
platElderSleep
.
setSleepRecord
(
Lists
.
newArrayList
(
sleepRangeVO
));
platElderSleep
.
setInterval
(
analysisVO
.
getInterval
());
platElderSleep
.
setHappenDate
(
currentDate
);
elderSleepList
.
add
(
platElderSleep
);
sleepRangeVO
.
setSleepType
(
SleepTypeEnum
.
SLEEP_DEEP
.
getCode
());
sleepRangeList
.
add
(
sleepRangeVO
);
}
}
if
(
CollUtil
.
isNotEmpty
(
rest
List
))
{
for
(
SleepTimeAnalysisVO
analysisVO
:
restList
)
{
if
(
CollUtil
.
isNotEmpty
(
moderate
List
))
{
for
(
SleepTimeAnalysisVO
analysisVO
:
sleepTimeDTO
.
getMidList
()
)
{
PlatSleepRangeVO
sleepRangeVO
=
new
PlatSleepRangeVO
();
sleepRangeVO
.
setStartTime
(
analysisVO
.
getStartTime
());
sleepRangeVO
.
setEndTime
(
analysisVO
.
getEndTime
());
sleepRangeVO
.
setSleepType
(
analysisVO
.
getType
());
PlatElderSleep
platElderSleep
=
new
PlatElderSleep
();
platElderSleep
.
setStartSleep
(
LocalDateTime
.
parse
(
analysisVO
.
getStartTime
(),
DEFAULT_FORMATTER
));
platElderSleep
.
setEndSleep
(
LocalDateTime
.
parse
(
analysisVO
.
getEndTime
(),
DEFAULT_FORMATTER
));
platElderSleep
.
setElderId
(
platElderId
);
platElderSleep
.
setElderSleepType
(
SleepTypeEnum
.
RESTING
.
getType
());
platElderSleep
.
setSleepRecord
(
Lists
.
newArrayList
(
sleepRangeVO
));
platElderSleep
.
setInterval
(
analysisVO
.
getInterval
());
platElderSleep
.
setHappenDate
(
currentDate
);
elderSleepList
.
add
(
platElderSleep
);
sleepRangeVO
.
setSleepType
(
SleepTypeEnum
.
SLEEP_MODERATE
.
getCode
());
sleepRangeList
.
add
(
sleepRangeVO
);
}
}
if
(
CollUtil
.
isNotEmpty
(
deep
List
))
{
for
(
SleepTimeAnalysisVO
analysisVO
:
deep
List
)
{
if
(
CollUtil
.
isNotEmpty
(
light
List
))
{
for
(
SleepTimeAnalysisVO
analysisVO
:
light
List
)
{
PlatSleepRangeVO
sleepRangeVO
=
new
PlatSleepRangeVO
();
sleepRangeVO
.
setStartTime
(
analysisVO
.
getStartTime
());
sleepRangeVO
.
setEndTime
(
analysisVO
.
getEndTime
());
sleepRangeVO
.
setSleepType
(
analysisVO
.
getType
());
PlatElderSleep
platElderSleep
=
new
PlatElderSleep
();
platElderSleep
.
setStartSleep
(
LocalDateTime
.
parse
(
analysisVO
.
getStartTime
(),
DEFAULT_FORMATTER
));
platElderSleep
.
setEndSleep
(
LocalDateTime
.
parse
(
analysisVO
.
getEndTime
(),
DEFAULT_FORMATTER
));
platElderSleep
.
setElderId
(
platElderId
);
platElderSleep
.
setElderSleepType
(
SleepTypeEnum
.
SLEEP_DEEP
.
getType
());
platElderSleep
.
setSleepRecord
(
Lists
.
newArrayList
(
sleepRangeVO
));
platElderSleep
.
setInterval
(
analysisVO
.
getInterval
());
platElderSleep
.
setHappenDate
(
currentDate
);
elderSleepList
.
add
(
platElderSleep
);
sleepRangeVO
.
setSleepType
(
SleepTypeEnum
.
SLEEP_LIGHTNESS
.
getCode
());
sleepRangeList
.
add
(
sleepRangeVO
);
}
}
if
(
CollUtil
.
isNotEmpty
(
moderate
List
))
{
for
(
SleepTimeAnalysisVO
analysisVO
:
s
leepTimeDTO
.
getMidList
()
)
{
if
(
CollUtil
.
isNotEmpty
(
sober
List
))
{
for
(
SleepTimeAnalysisVO
analysisVO
:
s
oberList
)
{
PlatSleepRangeVO
sleepRangeVO
=
new
PlatSleepRangeVO
();
sleepRangeVO
.
setStartTime
(
analysisVO
.
getStartTime
());
sleepRangeVO
.
setEndTime
(
analysisVO
.
getEndTime
());
sleepRangeVO
.
setSleepType
(
analysisVO
.
getType
());
PlatElderSleep
platElderSleep
=
new
PlatElderSleep
();
platElderSleep
.
setStartSleep
(
LocalDateTime
.
parse
(
analysisVO
.
getStartTime
(),
DEFAULT_FORMATTER
));
platElderSleep
.
setEndSleep
(
LocalDateTime
.
parse
(
analysisVO
.
getEndTime
(),
DEFAULT_FORMATTER
));
platElderSleep
.
setElderId
(
platElderId
);
platElderSleep
.
setElderSleepType
(
SleepTypeEnum
.
SLEEP_MODERATE
.
getType
());
platElderSleep
.
setSleepRecord
(
Lists
.
newArrayList
(
sleepRangeVO
));
platElderSleep
.
setInterval
(
analysisVO
.
getInterval
());
platElderSleep
.
setHappenDate
(
currentDate
);
elderSleepList
.
add
(
platElderSleep
);
sleepRangeVO
.
setSleepType
(
SleepTypeEnum
.
SOBER
.
getCode
());
sleepRangeList
.
add
(
sleepRangeVO
);
}
}
if
(
CollUtil
.
isNotEmpty
(
lightList
))
{
for
(
SleepTimeAnalysisVO
analysisVO
:
lightList
)
{
List
<
SleepTimeAnalysisVO
>
getUpList
=
sleepTimeDTO
.
getGetUpList
();
if
(
CollUtil
.
isNotEmpty
(
getUpList
))
{
for
(
SleepTimeAnalysisVO
analysisVO
:
getUpList
)
{
PlatSleepRangeVO
sleepRangeVO
=
new
PlatSleepRangeVO
();
sleepRangeVO
.
setStartTime
(
analysisVO
.
getStartTime
());
sleepRangeVO
.
setEndTime
(
analysisVO
.
getEndTime
());
sleepRangeVO
.
setSleepType
(
analysisVO
.
getType
());
PlatElderSleep
platElderSleep
=
new
PlatElderSleep
();
platElderSleep
.
setStartSleep
(
LocalDateTime
.
parse
(
analysisVO
.
getStartTime
(),
DEFAULT_FORMATTER
));
platElderSleep
.
setEndSleep
(
LocalDateTime
.
parse
(
analysisVO
.
getEndTime
(),
DEFAULT_FORMATTER
));
platElderSleep
.
setElderId
(
platElderId
);
platElderSleep
.
setElderSleepType
(
SleepTypeEnum
.
SLEEP_LIGHTNESS
.
getType
());
platElderSleep
.
setSleepRecord
(
Lists
.
newArrayList
(
sleepRangeVO
));
platElderSleep
.
setInterval
(
analysisVO
.
getInterval
());
platElderSleep
.
setHappenDate
(
currentDate
);
elderSleepList
.
add
(
platElderSleep
);
sleepRangeVO
.
setSleepType
(
SleepTypeEnum
.
GETUP
.
getCode
());
sleepRangeList
.
add
(
sleepRangeVO
);
}
}
if
(
CollUtil
.
isNotEmpty
(
soberList
))
{
for
(
SleepTimeAnalysisVO
analysisVO
:
soberList
)
{
List
<
String
>
sleepTypes
=
Lists
.
newArrayList
(
SleepTypeEnum
.
SLEEP_DEEP
.
getCode
(),
SleepTypeEnum
.
SLEEP_MODERATE
.
getCode
(),
SleepTypeEnum
.
SLEEP_LIGHTNESS
.
getCode
(),
SleepTypeEnum
.
GETUP
.
getCode
());
if
(
CollUtil
.
isNotEmpty
(
sleepList
))
{
for
(
SleepTimeAnalysisVO
analysisVO
:
sleepList
)
{
PlatSleepRangeVO
sleepRangeVO
=
new
PlatSleepRangeVO
();
sleepRangeVO
.
setStartTime
(
analysisVO
.
getStartTime
());
sleepRangeVO
.
setEndTime
(
analysisVO
.
getEndTime
());
sleepRangeVO
.
setSleepType
(
analysisVO
.
getType
());
List
<
PlatSleepRangeVO
>
rangeList
=
sleepRangeList
.
stream
().
filter
(
f
->
sleepTypes
.
contains
(
f
.
getSleepType
())).
collect
(
Collectors
.
toList
());
rangeList
.
add
(
sleepRangeVO
);
rangeList
=
rangeList
.
stream
().
sorted
(
Comparator
.
comparing
(
l
->
LocalDateTime
.
parse
(
l
.
getStartTime
(),
DEFAULT_FORMATTER
))).
collect
(
Collectors
.
toList
());
PlatElderSleep
platElderSleep
=
new
PlatElderSleep
();
platElderSleep
.
setStartSleep
(
LocalDateTime
.
parse
(
analysisVO
.
getStartTime
(),
DEFAULT_FORMATTER
));
platElderSleep
.
setEndSleep
(
LocalDateTime
.
parse
(
analysisVO
.
getEndTime
(),
DEFAULT_FORMATTER
));
platElderSleep
.
setElderId
(
platElderId
);
platElderSleep
.
setElderSleepType
(
SleepTypeEnum
.
S
OBER
.
getType
());
platElderSleep
.
setSleepRecord
(
Lists
.
newArrayList
(
sleepRangeVO
)
);
platElderSleep
.
setElderSleepType
(
SleepTypeEnum
.
S
LEEP
.
getType
());
platElderSleep
.
setSleepRecord
(
rangeList
);
platElderSleep
.
setInterval
(
analysisVO
.
getInterval
());
platElderSleep
.
setHappenDate
(
currentDate
);
elderSleepList
.
add
(
platElderSleep
);
}
}
List
<
SleepTimeAnalysisVO
>
getUpList
=
sleepTimeDTO
.
getGetUpList
();
if
(
CollUtil
.
isNotEmpty
(
getUpList
))
{
for
(
SleepTimeAnalysisVO
analysisVO
:
getUpList
)
{
if
(
CollUtil
.
isNotEmpty
(
restList
))
{
for
(
SleepTimeAnalysisVO
analysisVO
:
restList
)
{
PlatSleepRangeVO
sleepRangeVO
=
new
PlatSleepRangeVO
();
sleepRangeVO
.
setStartTime
(
analysisVO
.
getStartTime
());
sleepRangeVO
.
setEndTime
(
analysisVO
.
getEndTime
());
sleepRangeVO
.
setSleepType
(
analysisVO
.
getType
());
PlatElderSleep
platElderSleep
=
new
PlatElderSleep
();
List
<
PlatSleepRangeVO
>
rangeList
=
sleepRangeList
.
stream
().
filter
(
f
->
SleepTypeEnum
.
SOBER
.
getCode
().
equals
(
f
.
getSleepType
())).
collect
(
Collectors
.
toList
());
rangeList
.
add
(
sleepRangeVO
);
rangeList
=
rangeList
.
stream
().
sorted
(
Comparator
.
comparing
(
l
->
LocalDateTime
.
parse
(
l
.
getStartTime
(),
DEFAULT_FORMATTER
))).
collect
(
Collectors
.
toList
());
platElderSleep
.
setStartSleep
(
LocalDateTime
.
parse
(
analysisVO
.
getStartTime
(),
DEFAULT_FORMATTER
));
platElderSleep
.
setEndSleep
(
LocalDateTime
.
parse
(
analysisVO
.
getEndTime
(),
DEFAULT_FORMATTER
));
platElderSleep
.
setElderId
(
platElderId
);
platElderSleep
.
setElderSleepType
(
SleepTypeEnum
.
GETUP
.
getType
());
platElderSleep
.
setSleepRecord
(
Lists
.
newArrayList
(
sleepRangeVO
)
);
platElderSleep
.
setElderSleepType
(
SleepTypeEnum
.
RESTING
.
getType
());
platElderSleep
.
setSleepRecord
(
rangeList
);
platElderSleep
.
setInterval
(
analysisVO
.
getInterval
());
platElderSleep
.
setHappenDate
(
currentDate
);
elderSleepList
.
add
(
platElderSleep
);
...
...
@@ -834,7 +839,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
// 清醒
sober
(
sleepTypeMap
,
sleepTimeAnalysisVOList
);
// 起床
getUp
(
totalMap
,
riseLeaveThreshold
,
riseActionDuration
,
repeatSleepThreshold
,
sleepTimeAnalysisVOList
,
sleepCountDTO
,
sleepTypeMap
);
getUp
(
totalMap
,
riseLeaveThreshold
,
riseActionDuration
,
repeatSleepThreshold
,
sleepTimeAnalysisVOList
,
sleepCountDTO
);
//浅睡
SleepTimeDTO
sleepTimeDTO
=
groupSleepData
(
sleepTimeAnalysisVOList
);
List
<
PlatElderSleep
>
platElderSleeps
=
saveElderSleep
(
sleepTimeDTO
,
elder
.
getId
(),
currentDate
);
...
...
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