Commit 02be4f91 by 汪志阳

modify:bug 修改

parent daaa1594
...@@ -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-01-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-02-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]);
......
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