Commit 4f347e2e by 汪志阳

fix:bug修改

parent 279886ca
...@@ -18,11 +18,6 @@ public class SleepTimeAnalysisVO { ...@@ -18,11 +18,6 @@ public class SleepTimeAnalysisVO {
private String endTime; private String endTime;
/** /**
* 起床时间
*/
private String newEndTime;
/**
* 间隔时间(分钟) * 间隔时间(分钟)
*/ */
private Long interval; private Long interval;
......
...@@ -41,10 +41,7 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -41,10 +41,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.time.*; import java.time.*;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors; import java.util.stream.Collectors;
...@@ -218,8 +215,6 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper, ...@@ -218,8 +215,6 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
List<SleepTimeAnalysisVO> sleepTimeAnalysisVOList) { List<SleepTimeAnalysisVO> sleepTimeAnalysisVOList) {
String startSleepTime = null; String startSleepTime = null;
int sleepMinute = 0; int sleepMinute = 0;
boolean isSleep = false;
for (Map.Entry<String, AnalysisVO> entry : totalMap.entrySet()) { for (Map.Entry<String, AnalysisVO> entry : totalMap.entrySet()) {
AnalysisVO analysisVO = entry.getValue(); AnalysisVO analysisVO = entry.getValue();
// 非离床且体动值<20 // 非离床且体动值<20
...@@ -239,7 +234,6 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper, ...@@ -239,7 +234,6 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
sleepTimeAnalysisVO.setEndTime(entry.getKey()); sleepTimeAnalysisVO.setEndTime(entry.getKey());
sleepTimeAnalysisVO.setType(SleepTypeEnum.DAY_SLEEP.getCode()); sleepTimeAnalysisVO.setType(SleepTypeEnum.DAY_SLEEP.getCode());
sleepTimeAnalysisVOList.add(sleepTimeAnalysisVO); sleepTimeAnalysisVOList.add(sleepTimeAnalysisVO);
isSleep = true;
} }
startSleepTime = null; startSleepTime = null;
sleepMinute = 0; sleepMinute = 0;
...@@ -249,19 +243,24 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper, ...@@ -249,19 +243,24 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
return sleepTypeMap; return sleepTypeMap;
} }
for (SleepTimeAnalysisVO timeAnalysisVO : sleepTimeAnalysisVOList) { for (SleepTimeAnalysisVO timeAnalysisVO : sleepTimeAnalysisVOList) {
if (!timeAnalysisVO.getType().equals(SleepTypeEnum.DAY_SLEEP.getCode())) {
continue;
}
boolean startTimeFlag = false; boolean startTimeFlag = false;
TreeMap<String, AnalysisVO> sleepTotalMap = new TreeMap<>(); TreeMap<String, AnalysisVO> sleepTotalMap = new TreeMap<>();
for (Map.Entry<String, AnalysisVO> entry : totalMap.entrySet()) { 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; startTimeFlag = true;
sleepTotalMap.put(entry.getKey(), entry.getValue()); sleepTotalMap.put(reportTime, analysisVO);
} }
if (entry.getKey().equals(timeAnalysisVO.getEndTime())) { if (reportTime.equals(timeAnalysisVO.getEndTime())) {
sleepTotalMap.put(entry.getKey(), entry.getValue()); sleepTotalMap.put(reportTime, analysisVO);
startTimeFlag = false; startTimeFlag = false;
} }
if (startTimeFlag) { if (startTimeFlag) {
sleepTotalMap.put(entry.getKey(), entry.getValue()); sleepTotalMap.put(reportTime, analysisVO);
} }
sleepTypeMap.put(timeAnalysisVO.getStartTime(), sleepTotalMap); sleepTypeMap.put(timeAnalysisVO.getStartTime(), sleepTotalMap);
} }
...@@ -279,12 +278,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper, ...@@ -279,12 +278,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
*/ */
private void getUp(TreeMap<String, AnalysisVO> totalMap, double riseLeaveThreshold, int riseActionDuration, private void getUp(TreeMap<String, AnalysisVO> totalMap, double riseLeaveThreshold, int riseActionDuration,
double repeatSleepThreshold, List<SleepTimeAnalysisVO> sleepTimeAnalysisVOList, double repeatSleepThreshold, List<SleepTimeAnalysisVO> sleepTimeAnalysisVOList,
SleepCountDTO sleepCountDTO,TreeMap<String, TreeMap<String, AnalysisVO>> sleepTypeMap) { SleepCountDTO sleepCountDTO) {
List<SleepTimeAnalysisVO> sleepList = sleepTimeAnalysisVOList.stream()
.filter(f -> SleepTypeEnum.SLEEP.getCode().equals(f.getType())).collect(Collectors.toList());
if (CollUtil.isEmpty(sleepList)) {
return;
}
Integer actionCount = 0; Integer actionCount = 0;
Integer turnedCount = 0; Integer turnedCount = 0;
String startGetupTime = null; String startGetupTime = null;
...@@ -315,7 +309,13 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper, ...@@ -315,7 +309,13 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
} }
sleepCountDTO.setTotalActionCount(actionCount); sleepCountDTO.setTotalActionCount(actionCount);
sleepCountDTO.setTotalTurnedCount(turnedCount); 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; String startGetupTime2 = null;
int getupMinute2 = 0; int getupMinute2 = 0;
for (Map.Entry<String, AnalysisVO> entry : totalMap.entrySet()) { for (Map.Entry<String, AnalysisVO> entry : totalMap.entrySet()) {
...@@ -331,12 +331,9 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper, ...@@ -331,12 +331,9 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
continue; continue;
} }
if (getupMinute2 > riseActionDuration && startGetupTime2 != null) { if (getupMinute2 > riseActionDuration && startGetupTime2 != null) {
LocalDateTime startDateTime = LocalDateTime.parse(startGetupTime2, DEFAULT_FORMATTER); String finalStartGetupTime = startGetupTime2;
SleepTimeAnalysisVO repeatSleep = sleepList.stream().filter(f -> Duration.between(startDateTime, boolean exist = getUpList.stream().anyMatch(f -> f.getStartTime().equals(finalStartGetupTime));
LocalDateTime.parse(f.getStartTime(), DEFAULT_FORMATTER)).toMinutes() < repeatSleepThreshold * 60) if (!exist) {
.findFirst().orElse(null);
// 两小时内不在有入睡
if (repeatSleep == null) {
SleepTimeAnalysisVO sleepTimeAnalysisVO = new SleepTimeAnalysisVO(); SleepTimeAnalysisVO sleepTimeAnalysisVO = new SleepTimeAnalysisVO();
sleepTimeAnalysisVO.setStartTime(startGetupTime2); sleepTimeAnalysisVO.setStartTime(startGetupTime2);
sleepTimeAnalysisVO.setEndTime(entry.getKey()); sleepTimeAnalysisVO.setEndTime(entry.getKey());
...@@ -347,6 +344,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper, ...@@ -347,6 +344,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
startGetupTime2 = null; startGetupTime2 = null;
getupMinute2 = 0; getupMinute2 = 0;
} }
setWakeUpTime(sleepTimeAnalysisVOList);
} }
/** /**
...@@ -426,9 +424,9 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper, ...@@ -426,9 +424,9 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
} }
LocalDateTime startTime = LocalDateTime.parse(startSleepDeepTime, DEFAULT_FORMATTER); 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小时内无再次入睡 // 小憩:深度睡眠和浅度睡眠<=3小时,且2小时内无再次入睡
if (sleepMinute <= napThreshold * 60 && repeatSleepTime == null) { if (sleepMinute <= napThreshold * 60) {
SleepTimeAnalysisVO sleepTimeAnalysisVO = new SleepTimeAnalysisVO(); SleepTimeAnalysisVO sleepTimeAnalysisVO = new SleepTimeAnalysisVO();
sleepTimeAnalysisVO.setStartTime(startSleepDeepTime); sleepTimeAnalysisVO.setStartTime(startSleepDeepTime);
sleepTimeAnalysisVO.setEndTime(lastEntry.getKey()); sleepTimeAnalysisVO.setEndTime(lastEntry.getKey());
...@@ -517,6 +515,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper, ...@@ -517,6 +515,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
awakeMinute = 0; awakeMinute = 0;
} }
} }
setRestTime(sleepTimeAnalysisVOList);
} }
private SleepTimeDTO groupSleepData(List<SleepTimeAnalysisVO> sleepTimeAnalysisVOList) { private SleepTimeDTO groupSleepData(List<SleepTimeAnalysisVO> sleepTimeAnalysisVOList) {
...@@ -553,7 +552,14 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper, ...@@ -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)) { if (CollUtil.isEmpty(sleepList) || CollUtil.isEmpty(getUpList)) {
return; return;
} }
...@@ -568,7 +574,42 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper, ...@@ -568,7 +574,42 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
LocalDateTime.parse(w.getStartTime(), DEFAULT_FORMATTER)).toMinutes(); LocalDateTime.parse(w.getStartTime(), DEFAULT_FORMATTER)).toMinutes();
if (between < minute[0]) { if (between < minute[0]) {
minute[0] = between; 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, ...@@ -615,128 +656,92 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
List<SleepTimeAnalysisVO> soberList = sleepTimeDTO.getSoberList(); List<SleepTimeAnalysisVO> soberList = sleepTimeDTO.getSoberList();
List<SleepTimeAnalysisVO> sleepList = sleepTimeDTO.getSleepList(); List<SleepTimeAnalysisVO> sleepList = sleepTimeDTO.getSleepList();
List<SleepTimeAnalysisVO> restList = sleepTimeDTO.getRestList(); List<SleepTimeAnalysisVO> restList = sleepTimeDTO.getRestList();
if (CollUtil.isNotEmpty(sleepList)) { List<PlatSleepRangeVO> sleepRangeList = new ArrayList<>();
for (SleepTimeAnalysisVO analysisVO : sleepList) { if (CollUtil.isNotEmpty(deepList)) {
for (SleepTimeAnalysisVO analysisVO : deepList) {
PlatSleepRangeVO sleepRangeVO = new PlatSleepRangeVO(); PlatSleepRangeVO sleepRangeVO = new PlatSleepRangeVO();
sleepRangeVO.setStartTime(analysisVO.getStartTime()); sleepRangeVO.setStartTime(analysisVO.getStartTime());
sleepRangeVO.setEndTime(analysisVO.getEndTime()); sleepRangeVO.setEndTime(analysisVO.getEndTime());
sleepRangeVO.setSleepType(analysisVO.getType()); sleepRangeVO.setSleepType(SleepTypeEnum.SLEEP_DEEP.getCode());
PlatElderSleep platElderSleep = new PlatElderSleep(); sleepRangeList.add(sleepRangeVO);
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);
} }
} }
if (CollUtil.isNotEmpty(restList)) { if (CollUtil.isNotEmpty(moderateList)) {
for (SleepTimeAnalysisVO analysisVO : restList) { for (SleepTimeAnalysisVO analysisVO : sleepTimeDTO.getMidList()) {
PlatSleepRangeVO sleepRangeVO = new PlatSleepRangeVO(); PlatSleepRangeVO sleepRangeVO = new PlatSleepRangeVO();
sleepRangeVO.setStartTime(analysisVO.getStartTime()); sleepRangeVO.setStartTime(analysisVO.getStartTime());
sleepRangeVO.setEndTime(analysisVO.getEndTime()); sleepRangeVO.setEndTime(analysisVO.getEndTime());
sleepRangeVO.setSleepType(analysisVO.getType()); sleepRangeVO.setSleepType(SleepTypeEnum.SLEEP_MODERATE.getCode());
PlatElderSleep platElderSleep = new PlatElderSleep(); sleepRangeList.add(sleepRangeVO);
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);
} }
} }
if (CollUtil.isNotEmpty(deepList)) { if (CollUtil.isNotEmpty(lightList)) {
for (SleepTimeAnalysisVO analysisVO : deepList) { for (SleepTimeAnalysisVO analysisVO : lightList) {
PlatSleepRangeVO sleepRangeVO = new PlatSleepRangeVO(); PlatSleepRangeVO sleepRangeVO = new PlatSleepRangeVO();
sleepRangeVO.setStartTime(analysisVO.getStartTime()); sleepRangeVO.setStartTime(analysisVO.getStartTime());
sleepRangeVO.setEndTime(analysisVO.getEndTime()); sleepRangeVO.setEndTime(analysisVO.getEndTime());
sleepRangeVO.setSleepType(analysisVO.getType()); sleepRangeVO.setSleepType(SleepTypeEnum.SLEEP_LIGHTNESS.getCode());
PlatElderSleep platElderSleep = new PlatElderSleep(); sleepRangeList.add(sleepRangeVO);
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);
} }
} }
if (CollUtil.isNotEmpty(moderateList)) { if (CollUtil.isNotEmpty(soberList)) {
for (SleepTimeAnalysisVO analysisVO : sleepTimeDTO.getMidList()) { for (SleepTimeAnalysisVO analysisVO : soberList) {
PlatSleepRangeVO sleepRangeVO = new PlatSleepRangeVO(); PlatSleepRangeVO sleepRangeVO = new PlatSleepRangeVO();
sleepRangeVO.setStartTime(analysisVO.getStartTime()); sleepRangeVO.setStartTime(analysisVO.getStartTime());
sleepRangeVO.setEndTime(analysisVO.getEndTime()); sleepRangeVO.setEndTime(analysisVO.getEndTime());
sleepRangeVO.setSleepType(analysisVO.getType()); sleepRangeVO.setSleepType(SleepTypeEnum.SOBER.getCode());
sleepRangeList.add(sleepRangeVO);
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);
} }
} }
if (CollUtil.isNotEmpty(lightList)) { List<SleepTimeAnalysisVO> getUpList = sleepTimeDTO.getGetUpList();
for (SleepTimeAnalysisVO analysisVO : lightList) { if (CollUtil.isNotEmpty(getUpList)) {
for (SleepTimeAnalysisVO analysisVO : getUpList) {
PlatSleepRangeVO sleepRangeVO = new PlatSleepRangeVO(); PlatSleepRangeVO sleepRangeVO = new PlatSleepRangeVO();
sleepRangeVO.setStartTime(analysisVO.getStartTime()); sleepRangeVO.setStartTime(analysisVO.getStartTime());
sleepRangeVO.setEndTime(analysisVO.getEndTime()); sleepRangeVO.setEndTime(analysisVO.getEndTime());
sleepRangeVO.setSleepType(analysisVO.getType()); sleepRangeVO.setSleepType(SleepTypeEnum.GETUP.getCode());
sleepRangeList.add(sleepRangeVO);
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);
} }
} }
if (CollUtil.isNotEmpty(soberList)) { List<String> sleepTypes = Lists.newArrayList(SleepTypeEnum.SLEEP_DEEP.getCode(),
for (SleepTimeAnalysisVO analysisVO : soberList) { SleepTypeEnum.SLEEP_MODERATE.getCode(), SleepTypeEnum.SLEEP_LIGHTNESS.getCode(), SleepTypeEnum.GETUP.getCode());
if (CollUtil.isNotEmpty(sleepList)) {
for (SleepTimeAnalysisVO analysisVO : sleepList) {
PlatSleepRangeVO sleepRangeVO = new PlatSleepRangeVO(); PlatSleepRangeVO sleepRangeVO = new PlatSleepRangeVO();
sleepRangeVO.setStartTime(analysisVO.getStartTime()); sleepRangeVO.setStartTime(analysisVO.getStartTime());
sleepRangeVO.setEndTime(analysisVO.getEndTime()); sleepRangeVO.setEndTime(analysisVO.getEndTime());
sleepRangeVO.setSleepType(analysisVO.getType()); 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 platElderSleep = new PlatElderSleep();
platElderSleep.setStartSleep(LocalDateTime.parse(analysisVO.getStartTime(), DEFAULT_FORMATTER)); platElderSleep.setStartSleep(LocalDateTime.parse(analysisVO.getStartTime(), DEFAULT_FORMATTER));
platElderSleep.setEndSleep(LocalDateTime.parse(analysisVO.getEndTime(), DEFAULT_FORMATTER)); platElderSleep.setEndSleep(LocalDateTime.parse(analysisVO.getEndTime(), DEFAULT_FORMATTER));
platElderSleep.setElderId(platElderId); platElderSleep.setElderId(platElderId);
platElderSleep.setElderSleepType(SleepTypeEnum.SOBER.getType()); platElderSleep.setElderSleepType(SleepTypeEnum.SLEEP.getType());
platElderSleep.setSleepRecord(Lists.newArrayList(sleepRangeVO)); platElderSleep.setSleepRecord(rangeList);
platElderSleep.setInterval(analysisVO.getInterval()); platElderSleep.setInterval(analysisVO.getInterval());
platElderSleep.setHappenDate(currentDate); platElderSleep.setHappenDate(currentDate);
elderSleepList.add(platElderSleep); elderSleepList.add(platElderSleep);
} }
} }
List<SleepTimeAnalysisVO> getUpList = sleepTimeDTO.getGetUpList(); if (CollUtil.isNotEmpty(restList)) {
if (CollUtil.isNotEmpty(getUpList)) { for (SleepTimeAnalysisVO analysisVO : restList) {
for (SleepTimeAnalysisVO analysisVO : getUpList) {
PlatSleepRangeVO sleepRangeVO = new PlatSleepRangeVO(); PlatSleepRangeVO sleepRangeVO = new PlatSleepRangeVO();
sleepRangeVO.setStartTime(analysisVO.getStartTime()); sleepRangeVO.setStartTime(analysisVO.getStartTime());
sleepRangeVO.setEndTime(analysisVO.getEndTime()); sleepRangeVO.setEndTime(analysisVO.getEndTime());
sleepRangeVO.setSleepType(analysisVO.getType()); sleepRangeVO.setSleepType(analysisVO.getType());
PlatElderSleep platElderSleep = new PlatElderSleep(); 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.setStartSleep(LocalDateTime.parse(analysisVO.getStartTime(), DEFAULT_FORMATTER));
platElderSleep.setEndSleep(LocalDateTime.parse(analysisVO.getEndTime(), DEFAULT_FORMATTER)); platElderSleep.setEndSleep(LocalDateTime.parse(analysisVO.getEndTime(), DEFAULT_FORMATTER));
platElderSleep.setElderId(platElderId); platElderSleep.setElderId(platElderId);
platElderSleep.setElderSleepType(SleepTypeEnum.GETUP.getType()); platElderSleep.setElderSleepType(SleepTypeEnum.RESTING.getType());
platElderSleep.setSleepRecord(Lists.newArrayList(sleepRangeVO)); platElderSleep.setSleepRecord(rangeList);
platElderSleep.setInterval(analysisVO.getInterval()); platElderSleep.setInterval(analysisVO.getInterval());
platElderSleep.setHappenDate(currentDate); platElderSleep.setHappenDate(currentDate);
elderSleepList.add(platElderSleep); elderSleepList.add(platElderSleep);
...@@ -834,7 +839,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper, ...@@ -834,7 +839,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
// 清醒 // 清醒
sober(sleepTypeMap, sleepTimeAnalysisVOList); sober(sleepTypeMap, sleepTimeAnalysisVOList);
// 起床 // 起床
getUp(totalMap, riseLeaveThreshold, riseActionDuration, repeatSleepThreshold, sleepTimeAnalysisVOList, sleepCountDTO,sleepTypeMap); getUp(totalMap, riseLeaveThreshold, riseActionDuration, repeatSleepThreshold, sleepTimeAnalysisVOList, sleepCountDTO);
//浅睡 //浅睡
SleepTimeDTO sleepTimeDTO = groupSleepData(sleepTimeAnalysisVOList); SleepTimeDTO sleepTimeDTO = groupSleepData(sleepTimeAnalysisVOList);
List<PlatElderSleep> platElderSleeps = saveElderSleep(sleepTimeDTO, elder.getId(), currentDate); List<PlatElderSleep> platElderSleeps = saveElderSleep(sleepTimeDTO, elder.getId(), currentDate);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment