Commit 70f55b67 by 杨伟程

老人报告

parent 78e4757d
...@@ -350,3 +350,26 @@ CREATE TABLE `plat_elder_report_month` ...@@ -350,3 +350,26 @@ CREATE TABLE `plat_elder_report_month`
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE = InnoDB ) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='长者月报'; DEFAULT CHARSET = utf8mb4 COMMENT ='长者月报';
CREATE TABLE `plat_elder_breathe_day_stat`
(
`id` varchar(64) NOT NULL COMMENT 'id',
`elder_id` VARCHAR(64) NULL COMMENT '长者id',
device_id varchar(64) NULL COMMENT '设备id',
ori_device_id varchar(64) NULL COMMENT '原始设备id',
day date NOT NULL COMMENT '日期',
heart_rate_max int NULL COMMENT '心率最大值',
heart_rate_min int NULL COMMENT '心率最小值',
heart_rate_avg int NULL COMMENT '心率平均值',
respiratory_rate_max int NULL COMMENT '呼吸率最大值',
respiratory_rate_min int NULL COMMENT '呼吸率最小值',
respiratory_rate_avg int NULL COMMENT '呼吸率平均值',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建者',
`create_date` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新者',
`update_date` datetime DEFAULT NULL COMMENT '更新时间',
del_flag char(1) not null comment ' 删除标志 0否 1是 ',
`tenant_id` varchar(64) DEFAULT NULL COMMENT ' 租户id ',
PRIMARY KEY (`id`)
) ENGINE = InnoDB
DEFAULT CHARSET = utf8mb4 COMMENT ='长者呼吸心率日统计';
...@@ -106,7 +106,7 @@ public class CodeGenerator { ...@@ -106,7 +106,7 @@ public class CodeGenerator {
// 使用重点 下列字段填写表名 运行方法 // 使用重点 下列字段填写表名 运行方法
// strategy.setInclude("edu_teacher","..."); // 多表-逆向工程 // strategy.setInclude("edu_teacher","..."); // 多表-逆向工程
strategy.setInclude("plat_elder_report_month"); strategy.setInclude("plat_elder_breathe_day_stat");
strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略 strategy.setNaming(NamingStrategy.underline_to_camel);//数据库表映射到实体的命名策略
strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体属性时去掉表"_"前缀并且第一个字母大写 如:gmt_create -> gmtCreate strategy.setTablePrefix(pc.getModuleName() + "_"); //生成实体属性时去掉表"_"前缀并且第一个字母大写 如:gmt_create -> gmtCreate
......
...@@ -73,13 +73,13 @@ public class PlatElderReportDayController { ...@@ -73,13 +73,13 @@ public class PlatElderReportDayController {
@ApiOperation("行为异常记录") @ApiOperation("行为异常记录")
@PostMapping("behaviorExceptionRecordList") @PostMapping("behaviorExceptionRecordList")
public ApiResponseEntity<List<PlatElderBehaviorExceptionRecordVO>> behaviorExceptionRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) { public ApiResponseEntity<List<PlatElderBehaviorExceptionRecordVO>> behaviorExceptionRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null; return ApiResponseUtils.success(platElderDayReportDayService.behaviorExceptionRecordList(platElderIdDTO));
} }
@ApiOperation("跌倒记录") @ApiOperation("跌倒记录")
@PostMapping("failRecordList") @PostMapping("failRecordList")
public ApiResponseEntity<List<String>> failRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) { public ApiResponseEntity<List<String>> failRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null; return ApiResponseUtils.success(platElderDayReportDayService.failRecordList(platElderIdDTO));
} }
@ApiOperation("坐标记录") @ApiOperation("坐标记录")
...@@ -91,7 +91,7 @@ public class PlatElderReportDayController { ...@@ -91,7 +91,7 @@ public class PlatElderReportDayController {
@ApiOperation("行为辐射") @ApiOperation("行为辐射")
@PostMapping("behaviorDistribution") @PostMapping("behaviorDistribution")
public ApiResponseEntity<List<PlatElderBehaviorDistributionVO>> behaviorDistribution(@RequestBody PlatElderReportDTO platElderIdDTO) { public ApiResponseEntity<List<PlatElderBehaviorDistributionVO>> behaviorDistribution(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null; return ApiResponseUtils.success(platElderDayReportDayService.behaviorDistribution(platElderIdDTO));
} }
} }
......
...@@ -39,13 +39,13 @@ public class PlatElderReportWeekController { ...@@ -39,13 +39,13 @@ public class PlatElderReportWeekController {
@ApiOperation("综合评价") @ApiOperation("综合评价")
@PostMapping("comprehensiveEvaluation") @PostMapping("comprehensiveEvaluation")
public ApiResponseEntity<PlatElderComprehensiveEvaluationVO> comprehensiveEvaluation(@RequestBody PlatElderReportDTO platElderIdDTO) { public ApiResponseEntity<PlatElderComprehensiveEvaluationVO> comprehensiveEvaluation(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null; return ApiResponseUtils.success(platElderDayReportWeekService.comprehensiveEvaluation(platElderIdDTO));
} }
@ApiOperation("睡眠评价") @ApiOperation("睡眠评价")
@PostMapping("sleepEvaluation") @PostMapping("sleepEvaluation")
public ApiResponseEntity<PlatElderSleepEvaluationVO> sleepEvaluation(@RequestBody PlatElderReportDTO platElderIdDTO) { public ApiResponseEntity<PlatElderSleepEvaluationVO> sleepEvaluation(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null; return ApiResponseUtils.success(platElderDayReportWeekService.sleepEvaluation(platElderIdDTO));
} }
@ApiOperation("睡眠图表") @ApiOperation("睡眠图表")
...@@ -57,37 +57,37 @@ public class PlatElderReportWeekController { ...@@ -57,37 +57,37 @@ public class PlatElderReportWeekController {
@ApiOperation("心率呼吸评价") @ApiOperation("心率呼吸评价")
@PostMapping("heartRespiratoryEvaluation") @PostMapping("heartRespiratoryEvaluation")
public ApiResponseEntity<PlatElderHeartRespiratoryEvaluationVO> heartRespiratoryEvaluation(@RequestBody PlatElderReportDTO platElderIdDTO) { public ApiResponseEntity<PlatElderHeartRespiratoryEvaluationVO> heartRespiratoryEvaluation(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null; return ApiResponseUtils.success(platElderDayReportWeekService.heartRespiratoryEvaluation(platElderIdDTO));
} }
@ApiOperation("心率异常记录") @ApiOperation("心率异常记录")
@PostMapping("heartExceptionRecordList") @PostMapping("heartExceptionRecordList")
public ApiResponseEntity<List<PlatElderHeartRespiratoryEvaluationRecordVO>> heartExceptionRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) { public ApiResponseEntity<List<PlatElderHeartRespiratoryEvaluationRecordVO>> heartExceptionRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null; return ApiResponseUtils.success(platElderDayReportWeekService.heartExceptionRecordList(platElderIdDTO));
} }
@ApiOperation("呼吸率异常记录") @ApiOperation("呼吸率异常记录")
@PostMapping("respiratoryExceptionRecordList") @PostMapping("respiratoryExceptionRecordList")
public ApiResponseEntity<List<PlatElderHeartRespiratoryEvaluationRecordVO>> respiratoryExceptionRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) { public ApiResponseEntity<List<PlatElderHeartRespiratoryEvaluationRecordVO>> respiratoryExceptionRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null; return ApiResponseUtils.success(platElderDayReportWeekService.respiratoryExceptionRecordList(platElderIdDTO));
} }
@ApiOperation("心率呼吸率") @ApiOperation("心率呼吸率")
@PostMapping("heartRespiratory") @PostMapping("heartRespiratory")
public ApiResponseEntity<PlatElderRealTimeHeartRespiratoryWeekVO> heartRespiratory(@RequestBody PlatElderReportDTO platElderIdDTO) { public ApiResponseEntity<List<PlatElderRealTimeHeartRespiratoryWeekVO>> heartRespiratory(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null; return ApiResponseUtils.success(platElderDayReportWeekService.heartRespiratory(platElderIdDTO));
} }
@ApiOperation("行为异常记录") @ApiOperation("行为异常记录")
@PostMapping("behaviorExceptionRecordList") @PostMapping("behaviorExceptionRecordList")
public ApiResponseEntity<List<PlatElderBehaviorExceptionRecordVO>> behaviorExceptionRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) { public ApiResponseEntity<List<PlatElderBehaviorExceptionRecordVO>> behaviorExceptionRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null; return ApiResponseUtils.success(platElderDayReportWeekService.behaviorExceptionRecordList(platElderIdDTO));
} }
@ApiOperation("跌倒记录") @ApiOperation("跌倒记录")
@PostMapping("failRecordList") @PostMapping("failRecordList")
public ApiResponseEntity<List<String>> failRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) { public ApiResponseEntity<List<String>> failRecordList(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null; return ApiResponseUtils.success(platElderDayReportWeekService.failRecordList(platElderIdDTO));
} }
@ApiOperation("坐标记录") @ApiOperation("坐标记录")
...@@ -99,7 +99,7 @@ public class PlatElderReportWeekController { ...@@ -99,7 +99,7 @@ public class PlatElderReportWeekController {
@ApiOperation("行为辐射") @ApiOperation("行为辐射")
@PostMapping("behaviorDistribution") @PostMapping("behaviorDistribution")
public ApiResponseEntity<List<PlatElderBehaviorDistributionVO>> behaviorDistribution(@RequestBody PlatElderReportDTO platElderIdDTO) { public ApiResponseEntity<List<PlatElderBehaviorDistributionVO>> behaviorDistribution(@RequestBody PlatElderReportDTO platElderIdDTO) {
return null; return ApiResponseUtils.success(platElderDayReportWeekService.behaviorDistribution(platElderIdDTO));
} }
} }
......
package com.makeit.entity.platform.elder;
import com.baomidou.mybatisplus.annotation.IdType;
import java.time.LocalDate;
import com.baomidou.mybatisplus.annotation.TableId;
import com.makeit.common.entity.BaseBusEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* <p>
* 长者呼吸心率日统计
* </p>
*
* @author eugene young
* @since 2023-09-19
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="PlatElderBreatheDayStat对象", description="长者呼吸心率日统计")
public class PlatElderBreatheDayStat extends BaseBusEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "长者id")
private String elderId;
@ApiModelProperty(value = "设备id")
private String deviceId;
@ApiModelProperty(value = "原始设备id")
private String oriDeviceId;
@ApiModelProperty(value = "日期")
private LocalDate day;
@ApiModelProperty(value = "心率最大值")
private Integer heartRateMax;
@ApiModelProperty(value = "心率最小值")
private Integer heartRateMin;
@ApiModelProperty(value = "心率平均值")
private Integer heartRateAvg;
@ApiModelProperty(value = "呼吸率最大值")
private Integer respiratoryRateMax;
@ApiModelProperty(value = "呼吸率最小值")
private Integer respiratoryRateMin;
@ApiModelProperty(value = "呼吸率平均值")
private Integer respiratoryRateAvg;
}
package com.makeit.mapper.platform.elder;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.makeit.entity.platform.elder.PlatElderBreatheDayStat;
/**
* <p>
* 长者呼吸心率日统计 Mapper 接口
* </p>
*
* @author eugene young
* @since 2023-09-19
*/
public interface PlatElderBreatheDayStatMapper extends BaseMapper<PlatElderBreatheDayStat> {
}
package com.makeit.service.platform.elder;
import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.entity.platform.elder.PlatElderBreatheDayStat;
/**
* <p>
* 长者呼吸心率日统计 服务类
* </p>
*
* @author eugene young
* @since 2023-09-19
*/
public interface PlatElderBreatheDayStatService extends IService<PlatElderBreatheDayStat> {
}
...@@ -5,6 +5,7 @@ import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO; ...@@ -5,6 +5,7 @@ import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO; import com.makeit.vo.platform.elder.realtime.PlatElderRealTimeHeartRespiratoryVO;
import com.makeit.vo.platform.elder.report.day.*; import com.makeit.vo.platform.elder.report.day.*;
import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List; import java.util.List;
...@@ -24,20 +25,28 @@ public interface PlatElderDayReportDayService { ...@@ -24,20 +25,28 @@ public interface PlatElderDayReportDayService {
PlatElderHeartRespiratoryEvaluationVO heartRespiratoryEvaluation(PlatElderReportDTO platElderIdDTO); PlatElderHeartRespiratoryEvaluationVO heartRespiratoryEvaluation(PlatElderReportDTO platElderIdDTO);
List<PlatElderHeartRespiratoryEvaluationRecordVO> heartRespiratoryExceptionRecordList(PlatElderReportDTO platElderIdDTO, String alarmType, LocalDateTime start, LocalDateTime end);
List<PlatElderHeartRespiratoryEvaluationRecordVO> heartExceptionRecordList(PlatElderReportDTO platElderIdDTO); List<PlatElderHeartRespiratoryEvaluationRecordVO> heartExceptionRecordList(PlatElderReportDTO platElderIdDTO);
List<PlatElderHeartRespiratoryEvaluationRecordVO> respiratoryExceptionRecordList(PlatElderReportDTO platElderIdDTO); List<PlatElderHeartRespiratoryEvaluationRecordVO> respiratoryExceptionRecordList(PlatElderReportDTO platElderIdDTO);
List<PlatElderRealTimeHeartRespiratoryVO> heartRespiratory(PlatElderReportDTO platElderIdDTO); List<PlatElderRealTimeHeartRespiratoryVO> heartRespiratory(PlatElderReportDTO platElderIdDTO);
List<PlatElderBehaviorExceptionRecordVO> behaviorExceptionRecordListInternal(PlatElderReportDTO platElderIdDTO, LocalDateTime start, LocalDateTime end);
List<PlatElderBehaviorExceptionRecordVO> behaviorExceptionRecordList(PlatElderReportDTO platElderIdDTO); List<PlatElderBehaviorExceptionRecordVO> behaviorExceptionRecordList(PlatElderReportDTO platElderIdDTO);
List<String> failRecordListInternal(PlatElderReportDTO platElderIdDTO, LocalDateTime start, LocalDateTime end);
List<String> failRecordList(PlatElderReportDTO platElderIdDTO); List<String> failRecordList(PlatElderReportDTO platElderIdDTO);
List<PlatElderCoordinateVO> coordinateList(String elderId, String deviceId, LocalDateTime start, LocalDateTime end); List<PlatElderCoordinateVO> coordinateList(String elderId, String deviceId, LocalDateTime start, LocalDateTime end);
List<PlatElderCoordinateVO> coordinateList(PlatElderReportDTO platElderIdDTO); List<PlatElderCoordinateVO> coordinateList(PlatElderReportDTO platElderIdDTO);
List<PlatElderBehaviorDistributionVO> behaviorDistributionInternal(PlatElderReportDTO platElderIdDTO, List<LocalDate> nowList);
List<PlatElderBehaviorDistributionVO> behaviorDistribution(PlatElderReportDTO platElderIdDTO); List<PlatElderBehaviorDistributionVO> behaviorDistribution(PlatElderReportDTO platElderIdDTO);
} }
package com.makeit.service.platform.elder; package com.makeit.service.platform.elder;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.dto.platform.elder.PlatElderReportDTO; import com.makeit.dto.platform.elder.PlatElderReportDTO;
import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO; import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
import com.makeit.vo.platform.elder.report.day.PlatElderSleepEvaluationVO; import com.makeit.vo.platform.elder.report.day.*;
import com.makeit.vo.platform.elder.report.week.PlatElderComprehensiveEvaluationVO;
import com.makeit.vo.platform.elder.report.week.PlatElderRealTimeHeartRespiratoryWeekVO;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List; import java.util.List;
...@@ -16,8 +20,24 @@ import java.util.List; ...@@ -16,8 +20,24 @@ import java.util.List;
*/ */
public interface PlatElderDayReportWeekService { public interface PlatElderDayReportWeekService {
PlatElderComprehensiveEvaluationVO comprehensiveEvaluation(PlatElderReportDTO platElderIdDTO);
PlatElderSleepEvaluationVO sleepEvaluation(PlatElderReportDTO platElderIdDTO); PlatElderSleepEvaluationVO sleepEvaluation(PlatElderReportDTO platElderIdDTO);
PlatElderHeartRespiratoryEvaluationVO heartRespiratoryEvaluation(PlatElderReportDTO platElderIdDTO);
List<PlatElderHeartRespiratoryEvaluationRecordVO> heartExceptionRecordList(PlatElderReportDTO platElderIdDTO);
List<PlatElderHeartRespiratoryEvaluationRecordVO> respiratoryExceptionRecordList(PlatElderReportDTO platElderIdDTO);
List<PlatElderRealTimeHeartRespiratoryWeekVO> heartRespiratory(PlatElderReportDTO platElderIdDTO);
List<PlatElderBehaviorExceptionRecordVO> behaviorExceptionRecordList(PlatElderReportDTO platElderIdDTO);
List<String> failRecordList(PlatElderReportDTO platElderIdDTO);
List<PlatElderCoordinateVO> coordinateList(PlatElderReportDTO platElderIdDTO); List<PlatElderCoordinateVO> coordinateList(PlatElderReportDTO platElderIdDTO);
List<PlatElderBehaviorDistributionVO> behaviorDistribution(PlatElderReportDTO platElderIdDTO);
} }
package com.makeit.service.platform.elder.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.entity.platform.elder.PlatElderBreatheDayStat;
import com.makeit.mapper.platform.elder.PlatElderBreatheDayStatMapper;
import com.makeit.service.platform.elder.PlatElderBreatheDayStatService;
import org.springframework.stereotype.Service;
/**
* <p>
* 长者呼吸心率日统计 服务实现类
* </p>
*
* @author eugene young
* @since 2023-09-19
*/
@Service
public class PlatElderBreatheDayStatServiceImpl extends ServiceImpl<PlatElderBreatheDayStatMapper, PlatElderBreatheDayStat> implements PlatElderBreatheDayStatService {
}
...@@ -16,7 +16,6 @@ import com.makeit.module.iot.vo.fall.DeviceInfoContentFall; ...@@ -16,7 +16,6 @@ import com.makeit.module.iot.vo.fall.DeviceInfoContentFall;
import com.makeit.module.iot.vo.space.DeviceInfoContentSpace; import com.makeit.module.iot.vo.space.DeviceInfoContentSpace;
import com.makeit.service.platform.alarm.PlatAlarmRecordService; import com.makeit.service.platform.alarm.PlatAlarmRecordService;
import com.makeit.service.platform.alarm.PlatDayDurationRecordService; import com.makeit.service.platform.alarm.PlatDayDurationRecordService;
import com.makeit.service.platform.device.PlatDeviceService;
import com.makeit.service.platform.elder.*; import com.makeit.service.platform.elder.*;
import com.makeit.utils.LongTimestampUtil; import com.makeit.utils.LongTimestampUtil;
import com.makeit.utils.data.convert.StreamUtil; import com.makeit.utils.data.convert.StreamUtil;
...@@ -34,8 +33,6 @@ import java.time.LocalDate; ...@@ -34,8 +33,6 @@ import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.stream.Collector;
import java.util.stream.Collectors;
@Service @Service
public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDayService { public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDayService {
...@@ -180,6 +177,19 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe ...@@ -180,6 +177,19 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
private List<PlatElderHeartRespiratoryEvaluationRecordVO> heartRespiratoryExceptionRecordList(PlatElderReportDTO platElderIdDTO, String alarmType) { private List<PlatElderHeartRespiratoryEvaluationRecordVO> heartRespiratoryExceptionRecordList(PlatElderReportDTO platElderIdDTO, String alarmType) {
LocalDate now = Optional.ofNullable(platElderIdDTO.getNow()).orElse(LocalDate.now());
LocalDateTime start = dayStartNow(now);
LocalDateTime end = dayEndNow(now);
return heartRespiratoryExceptionRecordList(platElderIdDTO, alarmType, start, end);
}
@Override
public List<PlatElderHeartRespiratoryEvaluationRecordVO> heartRespiratoryExceptionRecordList(PlatElderReportDTO platElderIdDTO, String alarmType, LocalDateTime start, LocalDateTime end) {
PlatDevice device = platElderRealTimeService.getBreathDevice(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId()); PlatDevice device = platElderRealTimeService.getBreathDevice(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId());
if (device == null) { if (device == null) {
return new ArrayList<>(10); return new ArrayList<>(10);
...@@ -188,6 +198,8 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe ...@@ -188,6 +198,8 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
List<PlatAlarmRecord> recordList = platAlarmRecordService.list(new QueryWrapper<PlatAlarmRecord>().lambda() List<PlatAlarmRecord> recordList = platAlarmRecordService.list(new QueryWrapper<PlatAlarmRecord>().lambda()
.eq(PlatAlarmRecord::getAlarmType, alarmType) .eq(PlatAlarmRecord::getAlarmType, alarmType)
.eq(PlatAlarmRecord::getDeviceId, device.getId()) .eq(PlatAlarmRecord::getDeviceId, device.getId())
.ge(PlatAlarmRecord::getAlarmDate, start)
.le(PlatAlarmRecord::getAlarmDate, end)
.orderByDesc(PlatAlarmRecord::getAlarmDate) .orderByDesc(PlatAlarmRecord::getAlarmDate)
); );
...@@ -247,18 +259,13 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe ...@@ -247,18 +259,13 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
} }
@Override @Override
public List<PlatElderBehaviorExceptionRecordVO> behaviorExceptionRecordList(PlatElderReportDTO platElderIdDTO) { public List<PlatElderBehaviorExceptionRecordVO> behaviorExceptionRecordListInternal(PlatElderReportDTO platElderIdDTO, LocalDateTime start, LocalDateTime end) {
List<PlatDevice> platDeviceList = platElderRealTimeService.getSpaceDevice(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId()); List<PlatDevice> platDeviceList = platElderRealTimeService.getSpaceDevice(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId());
if (CollectionUtils.isEmpty(platDeviceList)) { if (CollectionUtils.isEmpty(platDeviceList)) {
return new ArrayList<>(10); return new ArrayList<>(10);
} }
LocalDate now = Optional.ofNullable(platElderIdDTO.getNow()).orElse(LocalDate.now());
LocalDateTime start = dayStartNow(now);
LocalDateTime end = dayEndNow(now);
List<PlatAlarmRecord> recordList = platAlarmRecordService.list(new QueryWrapper<PlatAlarmRecord>().lambda() List<PlatAlarmRecord> recordList = platAlarmRecordService.list(new QueryWrapper<PlatAlarmRecord>().lambda()
.eq(PlatAlarmRecord::getAlarmType, PlatAlarmConfigEnum.AlarmTypeEnum.BEHAVIOR.getValue()) .eq(PlatAlarmRecord::getAlarmType, PlatAlarmConfigEnum.AlarmTypeEnum.BEHAVIOR.getValue())
.in(PlatAlarmRecord::getDeviceId, StreamUtil.mapId(platDeviceList, PlatDevice::getId)) .in(PlatAlarmRecord::getDeviceId, StreamUtil.mapId(platDeviceList, PlatDevice::getId))
...@@ -283,19 +290,27 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe ...@@ -283,19 +290,27 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
} }
@Override
public List<String> failRecordList(PlatElderReportDTO platElderIdDTO) {
List<PlatDevice> platDeviceList = platElderRealTimeService.getFallDevice(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId());
if (CollectionUtils.isEmpty(platDeviceList)) { @Override
return new ArrayList<>(10); public List<PlatElderBehaviorExceptionRecordVO> behaviorExceptionRecordList(PlatElderReportDTO platElderIdDTO) {
}
LocalDate now = Optional.ofNullable(platElderIdDTO.getNow()).orElse(LocalDate.now()); LocalDate now = Optional.ofNullable(platElderIdDTO.getNow()).orElse(LocalDate.now());
LocalDateTime start = dayStartNow(now); LocalDateTime start = dayStartNow(now);
LocalDateTime end = dayEndNow(now); LocalDateTime end = dayEndNow(now);
return behaviorExceptionRecordListInternal(platElderIdDTO, start, end);
}
@Override
public List<String> failRecordListInternal(PlatElderReportDTO platElderIdDTO, LocalDateTime start, LocalDateTime end) {
List<PlatDevice> platDeviceList = platElderRealTimeService.getFallDevice(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId());
if (CollectionUtils.isEmpty(platDeviceList)) {
return new ArrayList<>(10);
}
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
List<String> voList = new ArrayList<>(10); List<String> voList = new ArrayList<>(10);
...@@ -314,6 +329,18 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe ...@@ -314,6 +329,18 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
return voList; return voList;
} }
@Override
public List<String> failRecordList(PlatElderReportDTO platElderIdDTO) {
LocalDate now = Optional.ofNullable(platElderIdDTO.getNow()).orElse(LocalDate.now());
LocalDateTime start = dayStartNow(now);
LocalDateTime end = dayEndNow(now);
return failRecordListInternal(platElderIdDTO, start, end);
}
@Override @Override
public List<PlatElderCoordinateVO> coordinateList(String elderId, String deviceId, LocalDateTime start, LocalDateTime end) { public List<PlatElderCoordinateVO> coordinateList(String elderId, String deviceId, LocalDateTime start, LocalDateTime end) {
List<PlatDevice> platDeviceList = platElderRealTimeService.getSpaceDevice(elderId, deviceId); List<PlatDevice> platDeviceList = platElderRealTimeService.getSpaceDevice(elderId, deviceId);
...@@ -355,7 +382,7 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe ...@@ -355,7 +382,7 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
} }
@Override @Override
public List<PlatElderBehaviorDistributionVO> behaviorDistribution(PlatElderReportDTO platElderIdDTO) { public List<PlatElderBehaviorDistributionVO> behaviorDistributionInternal(PlatElderReportDTO platElderIdDTO, List<LocalDate> nowList) {
List<PlatDevice> platDeviceList = platElderRealTimeService.getSpaceDevice(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId()); List<PlatDevice> platDeviceList = platElderRealTimeService.getSpaceDevice(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId());
...@@ -365,18 +392,13 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe ...@@ -365,18 +392,13 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
List<PlatElderBehaviorDistributionVO> voList = new ArrayList<>(10); List<PlatElderBehaviorDistributionVO> voList = new ArrayList<>(10);
LocalDate now = Optional.ofNullable(platElderIdDTO.getNow()).orElse(LocalDate.now());
LocalDateTime start = dayStartNow(now);
LocalDateTime end = dayEndNow(now);
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyyMMdd"); DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyyMMdd");
List<PlatElderBehaviorDistributionVO> finalVoList = voList; List<PlatElderBehaviorDistributionVO> finalVoList = voList;
platDeviceList.forEach(e -> { platDeviceList.forEach(e -> {
List<PlatDayDurationRecord> recordList = platDayDurationRecordService.list(new QueryWrapper<PlatDayDurationRecord>().lambda() List<PlatDayDurationRecord> recordList = platDayDurationRecordService.list(new QueryWrapper<PlatDayDurationRecord>().lambda()
.eq(PlatDayDurationRecord::getDeviceId, e.getId()) .eq(PlatDayDurationRecord::getDeviceId, e.getId())
.eq(PlatDayDurationRecord::getDay, dateTimeFormatter.format(now)) .in(PlatDayDurationRecord::getDay, StreamUtil.map(nowList, dateTimeFormatter::format))
); );
finalVoList.addAll(StreamUtil.map(recordList, i -> { finalVoList.addAll(StreamUtil.map(recordList, i -> {
...@@ -408,4 +430,16 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe ...@@ -408,4 +430,16 @@ public class PlatElderDayReportDayServiceImpl implements PlatElderDayReportDaySe
return voList; return voList;
} }
@Override
public List<PlatElderBehaviorDistributionVO> behaviorDistribution(PlatElderReportDTO platElderIdDTO) {
LocalDate now = Optional.ofNullable(platElderIdDTO.getNow()).orElse(LocalDate.now());
LocalDateTime start = dayStartNow(now);
LocalDateTime end = dayEndNow(now);
return behaviorDistributionInternal(platElderIdDTO, Arrays.asList(now));
}
} }
...@@ -3,6 +3,7 @@ package com.makeit.service.saas; ...@@ -3,6 +3,7 @@ package com.makeit.service.saas;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.makeit.dto.saas.analysis.SaasElderReportConfigDTO; import com.makeit.dto.saas.analysis.SaasElderReportConfigDTO;
import com.makeit.entity.saas.analysis.SaasElderReportConfig; import com.makeit.entity.saas.analysis.SaasElderReportConfig;
import com.makeit.module.iot.vo.analysis.EvaluateReportVO;
/** /**
* <p> * <p>
...@@ -19,4 +20,8 @@ public interface SaasElderReportConfigService extends IService<SaasElderReportCo ...@@ -19,4 +20,8 @@ public interface SaasElderReportConfigService extends IService<SaasElderReportCo
void add(SaasElderReportConfigDTO dto); void add(SaasElderReportConfigDTO dto);
void edit(SaasElderReportConfigDTO dto); void edit(SaasElderReportConfigDTO dto);
EvaluateReportVO getByScoreInternal(String resultContent, long totalScore);
EvaluateReportVO getByScore(long totalScore);
} }
package com.makeit.service.saas.impl; package com.makeit.service.saas.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.makeit.common.entity.BaseEntity;
import com.makeit.dto.saas.analysis.SaasElderReportConfigDTO; import com.makeit.dto.saas.analysis.SaasElderReportConfigDTO;
import com.makeit.entity.saas.analysis.SaasElderReportConfig; import com.makeit.entity.saas.analysis.SaasElderReportConfig;
import com.makeit.entity.saas.analysis.SaasSleepEvaluateReport;
import com.makeit.mapper.saas.analysis.SaasElderReportConfigMapper; import com.makeit.mapper.saas.analysis.SaasElderReportConfigMapper;
import com.makeit.module.iot.vo.analysis.EvaluateReportVO;
import com.makeit.service.saas.SaasElderReportConfigService; import com.makeit.service.saas.SaasElderReportConfigService;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List;
/** /**
* <p> * <p>
* 长者报告配置 服务实现类 * 长者报告配置 服务实现类
...@@ -38,4 +45,36 @@ public class SaasElderReportConfigServiceImpl extends ServiceImpl<SaasElderRepor ...@@ -38,4 +45,36 @@ public class SaasElderReportConfigServiceImpl extends ServiceImpl<SaasElderRepor
BeanUtils.copyProperties(dto,entity); BeanUtils.copyProperties(dto,entity);
saveOrUpdate(entity); saveOrUpdate(entity);
} }
@Override
public EvaluateReportVO getByScoreInternal(String resultContent,long totalScore) {
List<EvaluateReportVO> evaluateReportList = JSON.parseArray(resultContent, EvaluateReportVO.class);
// 根据睡眠报告结果配置得出最后的睡眠评分
EvaluateReportVO finalReport = new EvaluateReportVO();
for (EvaluateReportVO evaluateReportVO : evaluateReportList) {
String[] scoreRange = evaluateReportVO.getScoreRange().split("~");
long scoreRangeStart = Long.parseLong(scoreRange[0]);
long scoreRangeEnd = Long.parseLong(scoreRange[1]);
if (scoreRangeStart <= totalScore && scoreRangeEnd >= totalScore) {
finalReport = evaluateReportVO;
}
}
return finalReport;
}
@Override
public EvaluateReportVO getByScore(long totalScore) {
SaasElderReportConfig saasElderReportConfig = getOne(new QueryWrapper<SaasElderReportConfig>().lambda()
.orderByDesc(BaseEntity::getCreateBy)
.last("limit 1"));
String resultContent = saasElderReportConfig.getResultContent();
return getByScoreInternal(resultContent,totalScore);
}
} }
...@@ -8,8 +8,10 @@ import com.makeit.dto.saas.analysis.SaasSleepEvaluateReportDTO; ...@@ -8,8 +8,10 @@ import com.makeit.dto.saas.analysis.SaasSleepEvaluateReportDTO;
import com.makeit.entity.saas.analysis.SaasSleepEvaluateReport; import com.makeit.entity.saas.analysis.SaasSleepEvaluateReport;
import com.makeit.mapper.saas.analysis.SaasSleepEvaluateReportMapper; import com.makeit.mapper.saas.analysis.SaasSleepEvaluateReportMapper;
import com.makeit.module.iot.vo.analysis.EvaluateReportVO; import com.makeit.module.iot.vo.analysis.EvaluateReportVO;
import com.makeit.service.saas.SaasElderReportConfigService;
import com.makeit.service.saas.SaasSleepEvaluateReportService; import com.makeit.service.saas.SaasSleepEvaluateReportService;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
...@@ -25,6 +27,8 @@ import java.util.List; ...@@ -25,6 +27,8 @@ import java.util.List;
@Service @Service
public class SaasSleepEvaluateReportServiceImpl extends ServiceImpl<SaasSleepEvaluateReportMapper, SaasSleepEvaluateReport> implements SaasSleepEvaluateReportService { public class SaasSleepEvaluateReportServiceImpl extends ServiceImpl<SaasSleepEvaluateReportMapper, SaasSleepEvaluateReport> implements SaasSleepEvaluateReportService {
@Autowired
private SaasElderReportConfigService saasElderReportConfigService;
@Override @Override
public SaasSleepEvaluateReport view(String id) { public SaasSleepEvaluateReport view(String id) {
...@@ -51,18 +55,8 @@ public class SaasSleepEvaluateReportServiceImpl extends ServiceImpl<SaasSleepEva ...@@ -51,18 +55,8 @@ public class SaasSleepEvaluateReportServiceImpl extends ServiceImpl<SaasSleepEva
.orderByDesc(BaseEntity::getCreateBy) .orderByDesc(BaseEntity::getCreateBy)
.last("limit 1")); .last("limit 1"));
String resultContent = sleepEvaluateReport.getResultContent(); String resultContent = sleepEvaluateReport.getResultContent();
List<EvaluateReportVO> evaluateReportList = JSON.parseArray(resultContent, EvaluateReportVO.class);
// 根据睡眠报告结果配置得出最后的睡眠评分 return saasElderReportConfigService.getByScoreInternal(resultContent, totalScore);
EvaluateReportVO finalReport = new EvaluateReportVO();
for (EvaluateReportVO evaluateReportVO : evaluateReportList) {
String[] scoreRange = evaluateReportVO.getScoreRange().split("~");
long scoreRangeStart = Long.parseLong(scoreRange[0]);
long scoreRangeEnd = Long.parseLong(scoreRange[1]);
if (scoreRangeStart <= totalScore && scoreRangeEnd >= totalScore) {
finalReport = evaluateReportVO;
}
}
return finalReport;
} }
} }
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