Commit 279886ca by 汪志阳

fix:bug 修改

parent ba73f159
......@@ -7,11 +7,22 @@ import java.util.List;
@Data
public class SleepTimeAnalysisVO {
/**
* 满足入睡条件开始时间
*/
private String startTime;
/**
* 不满足入睡条件的时间
*/
private String endTime;
/**
* 起床时间
*/
private String newEndTime;
/**
* 间隔时间(分钟)
*/
private Long interval;
......
......@@ -4,6 +4,8 @@ package com.makeit.module.controller.elder;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.elder.PlatElderReportDTO;
import com.makeit.global.annotation.AuthIgnore;
import com.makeit.global.aspect.tenant.TenantIdIgnore;
import com.makeit.service.platform.elder.PlatElderDayReportDayService;
import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO;
......@@ -42,6 +44,8 @@ public class PlatElderReportDayController {
@ApiOperation("睡眠图表")
@PostMapping("sleepDiagram")
@AuthIgnore
@TenantIdIgnore
public ApiResponseEntity<List<PlatElderSleepDiagramVO>> sleepDiagram(@RequestBody PlatElderReportDTO platElderIdDTO) {
return ApiResponseUtils.success(platElderDayReportDayService.sleepDiagram(platElderIdDTO));
}
......
......@@ -243,7 +243,7 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
}
List<PlatElderSleep> wakeUpList = sleepList.stream().filter(f -> f.getElderSleepType().equals(SleepTypeEnum.GETUP.getType())).collect(Collectors.toList());
sleeps.forEach(s -> {
List<PlatElderSleep> wakeList = wakeUpList.stream().filter(f -> s.getStartSleep().isAfter(s.getEndSleep())).collect(Collectors.toList());
List<PlatElderSleep> wakeList = wakeUpList.stream().filter(f -> f.getStartSleep().isAfter(s.getEndSleep())).collect(Collectors.toList());
if (CollUtil.isNotEmpty(wakeList)) {
final long[] minute = {24 * 60};
wakeList.forEach(w -> {
......
......@@ -66,12 +66,8 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
@Autowired
private SaasSleepEvaluateReportService saasSleepEvaluateReportService;
@Autowired
private SaasElderReportConfigService saasElderReportConfigService;
@Autowired
private SaasSleepEvaluateStandardReportService saasSleepEvaluateStandardReportService;
@Autowired
private SaasDiseaseModelService saasDiseaseModelService;
@Autowired
private IotProductDeviceService productDeviceService;
@Autowired
private PlatRoomBedDeviceService roomBedDeviceService;
......@@ -82,13 +78,8 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
@Autowired
private PlatElderSleepAnalysisService platElderSleepAnalysisService;
@Autowired
private PlatElderBreatheDayStatService platElderBreatheDayStatService;
@Autowired
private PlatElderSleepService platElderSleepService;
@Autowired
private PlatElderReportMonthService platElderReportMonthService;
private TreeMap<String, AnalysisVO> getPerMinuteData(Map<String, List<DeviceInfoContentBreathe>> minuteMap, SaasSleepAnalysisModel analysisModel) {
int turnedThreshold = Integer.parseInt(analysisModel.getTurnedThreshold());
......@@ -225,12 +216,13 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
*/
private TreeMap<String, TreeMap<String, AnalysisVO>> getFallAsleepData(TreeMap<String, AnalysisVO> totalMap, double sleepTimeActionDuration,
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
if (!analysisVO.getIsAction() && !analysisVO.getIsMoveBed()) {
if (StrUtil.isBlank(startSleepTime)) {
startSleepTime = entry.getKey();
......@@ -247,6 +239,7 @@ 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;
......@@ -286,10 +279,14 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
*/
private void getUp(TreeMap<String, AnalysisVO> totalMap, double riseLeaveThreshold, int riseActionDuration,
double repeatSleepThreshold, List<SleepTimeAnalysisVO> sleepTimeAnalysisVOList,
SleepCountDTO sleepCountDTO) {
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;
}
Integer actionCount = 0;
Integer turnedCount = 0;
// 起床时间
String startGetupTime = null;
int getupMinute = 0;
for (Map.Entry<String, AnalysisVO> entry : totalMap.entrySet()) {
......@@ -318,8 +315,6 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
}
sleepCountDTO.setTotalActionCount(actionCount);
sleepCountDTO.setTotalTurnedCount(turnedCount);
List<SleepTimeAnalysisVO> sleepList = sleepTimeAnalysisVOList.stream().
filter(f -> SleepTypeEnum.SLEEP.getCode().equals(f.getType())).collect(Collectors.toList());
String startGetupTime2 = null;
int getupMinute2 = 0;
......@@ -557,6 +552,30 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
return sleepTimeDTO;
}
private void setWakeUp(List<SleepTimeAnalysisVO> sleepList, List<SleepTimeAnalysisVO> getUpList) {
if (CollUtil.isEmpty(sleepList) || CollUtil.isEmpty(getUpList)) {
return;
}
sleepList.forEach(s -> {
List<SleepTimeAnalysisVO> wakeList = getUpList.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.setNewEndTime(w.getStartTime());
}
});
}
});
}
private PlatElderSleepAnalysis savePlatElderSleepAnalysis(SleepTimeDTO sleepTimeDTO,
SaasSleepEvaluateStandardReport evaluateStandardReport,
String elderId, String currentDate, SleepCountDTO sleepCountDTO,
......@@ -584,7 +603,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
elderSleepAnalysis.setTenantId(tenantId);
elderSleepAnalysis.setSleepEvaluate(sleepReport.getEvaluate());
elderSleepAnalysis.setOriDeviceId(oriDeviceId);
platElderSleepAnalysisService.save(elderSleepAnalysis);
// platElderSleepAnalysisService.save(elderSleepAnalysis);
return elderSleepAnalysis;
}
......@@ -723,7 +742,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
elderSleepList.add(platElderSleep);
}
}
platElderSleepService.saveBatch(elderSleepList);
// platElderSleepService.saveBatch(elderSleepList);
return elderSleepList;
}
......@@ -815,7 +834,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
// 清醒
sober(sleepTypeMap, sleepTimeAnalysisVOList);
// 起床
getUp(totalMap, riseLeaveThreshold, riseActionDuration, repeatSleepThreshold, sleepTimeAnalysisVOList, sleepCountDTO);
getUp(totalMap, riseLeaveThreshold, riseActionDuration, repeatSleepThreshold, sleepTimeAnalysisVOList, sleepCountDTO,sleepTypeMap);
//浅睡
SleepTimeDTO sleepTimeDTO = groupSleepData(sleepTimeAnalysisVOList);
List<PlatElderSleep> platElderSleeps = saveElderSleep(sleepTimeDTO, elder.getId(), currentDate);
......@@ -866,6 +885,9 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
lightScore = Integer.parseInt(lightnessConfig.getScore()) * multiplier;
}
Integer totalScore = sleepScore.get() + deepScore.get() + lightScore - soberScore.get();
if (totalScore < 0) {
totalScore = 0;
}
return String.valueOf(totalScore);
}
......
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