Commit a8ef199e by lzy

Merge branch 'dev' of git.xmmakeit.com:huangjiay/iot-platform-server into dev

parents ec5db324 635e7a96
......@@ -161,6 +161,9 @@ public class BehaviorAlarm implements IAlarm {
platElderList = platAlarmCheckDTO.getPlatElderList();
}
for (PlatElder platElder : platElderList) {
if(StringUtils.isBlank(platElder.getRegionName())){
continue;
}
PlatDayDurationRecord durationRecord = new PlatDayDurationRecord();
durationRecord.setElderIds(platElder.getId());
durationRecord.setRegionName(platElder.getRegionName());
......
......@@ -20,6 +20,7 @@ import com.makeit.service.platform.elder.*;
import com.makeit.utils.LongTimestampUtil;
import com.makeit.utils.data.convert.StreamUtil;
import com.makeit.utils.data.validate.CollectionUtils;
import com.makeit.utils.old.StringUtils;
import com.makeit.utils.time.LocalDateTimeUtils;
import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO;
......@@ -100,6 +101,9 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
platElderSleepEvaluationVO.setSleepDuration(Integer.valueOf(platElderSleepAnalysis.getSleepTime() + ""));
platElderSleepEvaluationVO.setRestDuration(Integer.valueOf(platElderSleepAnalysis.getRestTime() + ""));
platElderSleepEvaluationVO.setSleepDurationHour(new BigDecimal(platElderSleepEvaluationVO.getSleepDuration()).divide(new BigDecimal(60), 2, BigDecimal.ROUND_HALF_UP));
platElderSleepEvaluationVO.setRestDurationHour(new BigDecimal(platElderSleepEvaluationVO.getRestDuration()).divide(new BigDecimal(60), 2, BigDecimal.ROUND_HALF_UP));
return platElderSleepEvaluationVO;
}
......@@ -425,6 +429,11 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
});
voList.forEach(e -> {
if (StringUtils.isBlank(e.getAreaName())) {
e.setAreaName("");
}
});
Map<String, List<PlatElderBehaviorDistributionVO>> map = StreamUtil.groupBy(voList, PlatElderBehaviorDistributionVO::getAreaName);
List<PlatElderBehaviorDistributionVO> newVoList = new ArrayList<>(10);
......
......@@ -29,6 +29,7 @@ import com.makeit.vo.platform.elder.report.week.PlatElderSleepDiagramWeekVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.time.DayOfWeek;
import java.time.Duration;
import java.time.LocalDate;
......@@ -262,20 +263,7 @@ public class PlatElderDayReportWeekServiceImpl implements PlatElderDayReportWeek
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));
if (platElderSleepAnalysis != null) {
vo.setTurnedCount(platElderSleepAnalysis.getTurnedCount());
vo.setBodyMoveCount(platElderSleepAnalysis.getActionCount());
vo.setScore(Integer.valueOf(platElderSleepAnalysis.getSleepScore() + ""));
}
return vo;
return getPlatElderSleepDiagramWeekContentVO(dateTimeFormatter, sleepAnalysisMap, timeFormatter, e, vo, sleepRecord);
});
......@@ -287,20 +275,7 @@ public class PlatElderDayReportWeekServiceImpl implements PlatElderDayReportWeek
List<PlatSleepRangeVO> sleepRecord = list.stream().flatMap(i -> Optional.ofNullable(i.getSleepRecord()).orElse(new ArrayList<>(10)).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));
if (platElderSleepAnalysis != null) {
vo.setTurnedCount(platElderSleepAnalysis.getTurnedCount());
vo.setBodyMoveCount(platElderSleepAnalysis.getActionCount());
vo.setScore(Integer.valueOf(platElderSleepAnalysis.getSleepScore() + ""));
}
return vo;
return getPlatElderSleepDiagramWeekContentVO(dateTimeFormatter, sleepAnalysisMap, timeFormatter, e, vo, sleepRecord);
});
......@@ -311,6 +286,28 @@ public class PlatElderDayReportWeekServiceImpl implements PlatElderDayReportWeek
return vo;
}
private PlatElderSleepDiagramWeekContentVO getPlatElderSleepDiagramWeekContentVO(DateTimeFormatter dateTimeFormatter, Map<String, PlatElderSleepAnalysis> sleepAnalysisMap, DateTimeFormatter timeFormatter, LocalDate e, PlatElderSleepDiagramWeekContentVO vo, List<PlatSleepRangeVO> sleepRecord) {
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());
vo.setSleepDeepDurationHour(new BigDecimal(vo.getSleepDeepDuration()).divide(new BigDecimal(60), 2, BigDecimal.ROUND_HALF_UP));
vo.setSleepModerateDurationHour(new BigDecimal(vo.getSleepModerateDuration()).divide(new BigDecimal(60), 2, BigDecimal.ROUND_HALF_UP));
vo.setSleepLightnessDurationHour(new BigDecimal(vo.getSleepLightnessDuration()).divide(new BigDecimal(60), 2, BigDecimal.ROUND_HALF_UP));
vo.setSoberDurationHour(new BigDecimal(vo.getSoberDuration()).divide(new BigDecimal(60), 2, BigDecimal.ROUND_HALF_UP));
PlatElderSleepAnalysis platElderSleepAnalysis = sleepAnalysisMap.get(dateTimeFormatter.format(e));
if (platElderSleepAnalysis != null) {
vo.setTurnedCount(platElderSleepAnalysis.getTurnedCount());
vo.setBodyMoveCount(platElderSleepAnalysis.getActionCount());
vo.setScore(Integer.valueOf(platElderSleepAnalysis.getSleepScore() + ""));
}
return vo;
}
@Override
public PlatElderHeartRespiratoryEvaluationVO heartRespiratoryEvaluationInternal(PlatElderReportDTO platElderIdDTO, LocalDate weekStartDate, LocalDate weekEndDate) {
......
......@@ -459,6 +459,7 @@ public class PlatSpaceServiceImpl extends ServiceImpl<PlatSpaceMapper, PlatSpace
spacePath = firstId;
} else {
firstId = firstSpaceNameMap.get(item.getCommunity());
spacePath = firstId;
}
//第二层级
......
......@@ -3,6 +3,8 @@ package com.makeit.vo.platform.elder.report.day;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class PlatElderSleepEvaluationVO {
......@@ -22,4 +24,12 @@ public class PlatElderSleepEvaluationVO {
private Integer restDuration;
@ApiModelProperty(value = "睡眠时长")
private BigDecimal sleepDurationHour;
@ApiModelProperty(value = "休息时长")
private BigDecimal restDurationHour;
}
......@@ -3,6 +3,7 @@ package com.makeit.vo.platform.elder.report.week;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
@Data
......@@ -23,6 +24,7 @@ public class PlatElderSleepDiagramWeekContentVO {
@ApiModelProperty(value = "清醒时长")
private Integer soberDuration;
@ApiModelProperty(value = "翻身次数")
private Integer turnedCount;
......@@ -33,5 +35,17 @@ public class PlatElderSleepDiagramWeekContentVO {
private Integer score;
@ApiModelProperty(value = "深度睡眠时长")
private BigDecimal sleepDeepDurationHour;
@ApiModelProperty(value = "中度睡眠时长")
private BigDecimal sleepModerateDurationHour;
@ApiModelProperty(value = "浅度睡眠时长")
private BigDecimal sleepLightnessDurationHour;
@ApiModelProperty(value = "清醒时长")
private BigDecimal soberDurationHour;
}
......@@ -21,6 +21,9 @@ public class PlatBedPanoramaVO extends BaseIdDTO {
@ApiModelProperty("全路径名称")
private String spacePathName;
@ApiModelProperty("房间id")
private String roomId;
@ApiModelProperty("房间名称")
private String roomName;
......
......@@ -4,7 +4,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.makeit.mapper.platform.space.PlatBedMapper">
<select id="selectBySpaceIdAndStatus" resultType="com.makeit.vo.platform.space.PlatBedPanoramaVO">
SELECT pb.id,pb.`status`,pb.name bedName ,pm.`name` roomName,pm.space_path,pe.name as elderName,pe.id as elderId
SELECT pb.id,pb.`status`,pb.name bedName ,pm.`name` roomName,pm.space_path,pe.name as elderName,pe.id as elderId,pm.id as roomId
FROM `plat_bed` pb
LEFT JOIN plat_room pm on pb.room_id = pm.id
LEFT JOIN plat_elder pe on pe.bed_id = pb.id
......@@ -20,7 +20,7 @@
</select>
<select id="selectByRoomIdAndStatus" resultType="com.makeit.vo.platform.space.PlatBedPanoramaVO">
SELECT pb.id,pb.`status`,pb.name bedName ,pm.`name` roomName,pm.space_path,pe.name as elderName,pe.id as elderId
SELECT pb.id,pb.`status`,pb.name bedName ,pm.`name` roomName,pm.space_path,pe.name as elderName,pe.id as elderId,pm.id as roomId
FROM `plat_bed` pb
LEFT JOIN plat_room pm on pb.room_id = pm.id
LEFT JOIN plat_elder pe on pe.bed_id = pb.id and pe.del_flag = 0
......
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