Commit 0bdc070c by 杨伟程

老人报表更新

parent 7705fbfc
......@@ -9,6 +9,7 @@ import com.makeit.entity.platform.elder.PlatElderBreatheDayStat;
import com.makeit.entity.platform.elder.PlatElderSleep;
import com.makeit.entity.platform.elder.PlatElderSleepAnalysis;
import com.makeit.enums.platform.alarm.PlatAlarmConfigEnum;
import com.makeit.enums.report.SleepTypeEnum;
import com.makeit.module.iot.vo.analysis.EvaluateReportVO;
import com.makeit.service.platform.elder.*;
import com.makeit.service.saas.SaasDiseaseReportService;
......@@ -29,6 +30,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.DayOfWeek;
import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
......@@ -36,6 +38,7 @@ import java.time.temporal.TemporalAdjusters;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
@Service
......@@ -207,6 +210,13 @@ public class PlatElderDayReportWeekServiceImpl implements PlatElderDayReportWeek
}
private long duration(DateTimeFormatter dateTimeFormatter, String start, String end) {//分钟
LocalDateTime s = LocalDateTime.parse(start, dateTimeFormatter);
LocalDateTime e = LocalDateTime.parse(end, dateTimeFormatter);
return Duration.between(s, e).toMinutes();
}
@Override
public PlatElderSleepDiagramWeekVO sleepDiagram(PlatElderReportDTO platElderIdDTO) {
......@@ -233,16 +243,20 @@ public class PlatElderDayReportWeekServiceImpl implements PlatElderDayReportWeek
List<LocalDate> dateList = LocalDateTimeUtils.getDateSeries(weekStartDate, weekEndDate);
DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
List<PlatElderSleepDiagramWeekContentVO> sleep = StreamUtil.map(dateList, e -> {
PlatElderSleepDiagramWeekContentVO vo = new PlatElderSleepDiagramWeekContentVO();
vo.setDay(e);
// List<PlatElderSleep> list =
//
// vo.setSleepDeepDuration();
// vo.setSleepModerateDuration();
// vo.setSleepLightnessDuration();
// vo.setSoberDuration();
List<PlatElderSleep> list = Optional.ofNullable(sleepMap.get(1)).map(i -> i.get(dateTimeFormatter.format(e))).orElse(new ArrayList<>(10));
List<PlatSleepRangeVO> sleepRecord = list.stream().flatMap(i -> i.getSleepRecord().stream()).collect(Collectors.toList());
vo.setSleepDeepDuration(sleepRecord.stream().filter(i -> SleepTypeEnum.SLEEP_DEEP.getCode().equals(i.getSleepType())).map(i -> duration(timeFormatter, i.getStartTime(), i.getEndTime())).reduce(0L, Long::sum).intValue());
vo.setSleepModerateDuration(sleepRecord.stream().filter(i -> SleepTypeEnum.SLEEP_MODERATE.getCode().equals(i.getSleepType())).map(i -> duration(timeFormatter, i.getStartTime(), i.getEndTime())).reduce(0L, Long::sum).intValue());
vo.setSleepLightnessDuration(sleepRecord.stream().filter(i -> SleepTypeEnum.SLEEP_LIGHTNESS.getCode().equals(i.getSleepType())).map(i -> duration(timeFormatter, i.getStartTime(), i.getEndTime())).reduce(0L, Long::sum).intValue());
vo.setSoberDuration(sleepRecord.stream().filter(i -> SleepTypeEnum.SOBER.getCode().equals(i.getSleepType())).map(i -> duration(timeFormatter, i.getStartTime(), i.getEndTime())).reduce(0L, Long::sum).intValue());
PlatElderSleepAnalysis platElderSleepAnalysis = sleepAnalysisMap.get(dateTimeFormatter.format(e));
......
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