Commit afa92b38 by huangjy

fix:子女端登陆问题,睡眠分析问题V1

parent f6d75013
......@@ -13,6 +13,7 @@ public class AnalysisVO {
private Integer avgBr;
private Integer maxBr;
private Integer minBr;
private Integer hrBrCount;
private Integer actionCount = 0; // 体动次数
private Integer turnedCount = 0; // 翻身次数
......
......@@ -7,6 +7,7 @@ import com.makeit.common.page.PageVO;
import com.makeit.common.response.ApiResponseEntity;
import com.makeit.common.response.ApiResponseUtils;
import com.makeit.dto.platform.alarm.PlatAlarmRecordQueryDTO;
import com.makeit.global.aspect.tenant.TenantIdIgnore;
import com.makeit.service.platform.alarm.PlatAlarmRecordService;
import com.makeit.vo.platform.alarm.PlatAlarmRecordVO;
import io.swagger.annotations.Api;
......@@ -27,18 +28,21 @@ public class PlatAlarmRecordChildrenController {
@ApiOperation("列表")
@PostMapping("page")
@TenantIdIgnore
public ApiResponseEntity<PageVO<PlatAlarmRecordVO>> page(@RequestBody PageReqDTO<PlatAlarmRecordQueryDTO> dto) {
//只能看到发给关联的长者告警
return ApiResponseUtils.success(platAlarmRecordService.childrenPage(dto));
}
@ApiOperation("查看")
@PostMapping("view")
@TenantIdIgnore
public ApiResponseEntity<PlatAlarmRecordVO> view(@RequestBody BaseIdDTO dto) {
return ApiResponseUtils.success(platAlarmRecordService.view(dto.getId()));
}
@ApiOperation("已读")
@PostMapping("read")
@TenantIdIgnore
public ApiResponseEntity<Void> read(@RequestBody BaseIdDTO dto) {
platAlarmRecordService.read(dto.getId());
return ApiResponseUtils.success();
......@@ -46,6 +50,7 @@ public class PlatAlarmRecordChildrenController {
@ApiOperation("未读条数")
@PostMapping("unreadCount")
@TenantIdIgnore
public ApiResponseEntity<Integer> unreadCount(@RequestBody PlatAlarmRecordQueryDTO dto) {
Integer count = platAlarmRecordService.unreadCount(dto);
return ApiResponseUtils.success(count);
......@@ -53,6 +58,7 @@ public class PlatAlarmRecordChildrenController {
@ApiOperation("误报")
@PostMapping("misinformation")
@TenantIdIgnore
public ApiResponseEntity<Void> misinformation(@RequestBody BaseIdDTO dto) {
platAlarmRecordService.misinformation(dto.getId());
return ApiResponseUtils.success();
......
......@@ -40,6 +40,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
* <p>
......@@ -91,10 +92,25 @@ public class PlatElderChildrenInfoServiceImpl extends ServiceImpl<PlatElderChild
String tenantId = RequestUtil.getTenantIdHeader();
dto.setTenantId(tenantId);
Page<PlatElderChildrenInfo> voPage = page(p, lambdaQueryWrapper(dto));
LambdaQueryWrapper<PlatElderChildrenInfo> queryWrapper = lambdaQueryWrapper(dto);
queryWrapper.groupBy(PlatElderChildrenInfo::getOpenid);
Page<PlatElderChildrenInfo> voPage = page(p, queryWrapper);
List<PlatElderChildrenInfoListVO> voList = BeanDtoVoUtils.listVo(voPage.getRecords(), PlatElderChildrenInfoListVO.class);
if (CollectionUtils.isEmpty(voList)) {
return new PageVO<>();
}
List<String> openIdList = voList.stream().map(PlatElderChildrenInfoListVO::getOpenid).collect(Collectors.toList());
List<PlatElderChildrenInfo> platElderChildrenInfos = list(new QueryWrapper<PlatElderChildrenInfo>().lambda().in(PlatElderChildrenInfo::getOpenid, openIdList));
Map<String, List<PlatElderChildrenInfo>> map = StreamUtil.groupBy(platElderChildrenInfos, PlatElderChildrenInfo::getOpenid);
for (PlatElderChildrenInfoListVO platElderChildrenInfoListVO : voList) {
List<PlatElderChildrenInfo> platElderChildrenInfoList = map.get(platElderChildrenInfoListVO.getOpenid());
if (CollectionUtils.isNotEmpty(platElderChildrenInfoList)) {
String elderIds = platElderChildrenInfoList.stream().map(PlatElderChildrenInfo::getElderId).collect(Collectors.joining());
platElderChildrenInfoListVO.setElderId(elderIds);
}
}
fill(voList);
return PageUtil.toPageVO(voList, voPage);
......@@ -193,7 +209,8 @@ public class PlatElderChildrenInfoServiceImpl extends ServiceImpl<PlatElderChild
@Override
public List<PlatElderChildrenInfoWechatVO> listByOpenid(String openid) {
List<PlatElderChildrenInfo> platElderChildrenInfoList = list(new QueryWrapper<PlatElderChildrenInfo>().lambda().eq(PlatElderChildrenInfo::getOpenid, openid));
List<PlatElderChildrenInfo> platElderChildrenInfoList = list(new QueryWrapper<PlatElderChildrenInfo>().lambda().eq(PlatElderChildrenInfo::getOpenid, openid)
.isNotNull(PlatElderChildrenInfo::getElderId));
if (CollectionUtils.isEmpty(platElderChildrenInfoList)) {
return Lists.newArrayList();
......
......@@ -487,6 +487,7 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
if (spaceResult != null) {
PlatElderCoordinateVO vo = new PlatElderCoordinateVO();
JSONObject jsonObject = JSON.parseObject(spaceResult);
if (jsonObject != null) {
vo.setDeviceId(platDevice.getId());
vo.setOriDeviceId(platDevice.getOriDeviceId());
vo.setDistance(Integer.valueOf(jsonObject.getString("distance")));
......@@ -496,10 +497,12 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
vo.setType(1);
voList.add(vo);
}
}
String fallResult = redisTemplate.opsForValue().get(DEVICE_FALL_DATA + platDevice.getOriDeviceId());
if (fallResult != null) {
PlatElderCoordinateVO vo = new PlatElderCoordinateVO();
JSONObject jsonObject = JSON.parseObject(fallResult);
if (jsonObject != null) {
vo.setDeviceId(platDevice.getId());
vo.setOriDeviceId(platDevice.getOriDeviceId());
Object track = jsonObject.get("track");
......@@ -510,6 +513,7 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
voList.add(vo);
}
}
}
return voList;
}
......
......@@ -166,6 +166,7 @@ public class PlatElderReportMonthServiceImpl extends ServiceImpl<PlatElderReport
List<PlatAlarmRecord> recordList = platAlarmRecordService.list(new QueryWrapper<PlatAlarmRecord>().lambda()
.ge(PlatAlarmRecord::getAlarmDate, yesStart)
.le(PlatAlarmRecord::getAlarmDate, yesEnd)
.eq(PlatAlarmRecord::getMisinformationFlag,0)
.in(PlatAlarmRecord::getElderIds, StreamUtil.mapId(elderList, PlatElder::getId)));
Map<String, List<PlatAlarmRecord>> recordMap = StreamUtil.groupBy(recordList, PlatAlarmRecord::getElderIds);
......
......@@ -201,6 +201,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
int maxHr = 0;
int minHr = 0;
int totalHr = 0;
int hrBrCount = 0; // 呼吸率心率统计次数
// 呼吸暂停
int brStopCount = 0;
......@@ -364,8 +365,11 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
minHr = hr;
}
if (breatheProperties.getPerson() == 1) {
totalBr += br;
totalHr += hr;
hrBrCount++;
}
}
/* int brStopThreshold = brStopCount / breatheDuration;
int brFastThreshold = brFastCount / breatheDuration;
......@@ -401,7 +405,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
analysisVO.setAvgHr(totalHr / 60);
analysisVO.setMaxHr(maxHr);
analysisVO.setMinHr(minHr);
analysisVO.setHrBrCount(hrBrCount);
analysisVO.setActionCount(bodymoveCount);
analysisVO.setTurnedCount(turnoverCount);
......@@ -456,6 +460,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
int hrSlowCount = 0;
int dayTotalHr = 0;
int dayTotalBr = 0;
int dayBrHrCount = 0;
// 计算异常的信息,并且统计异常的次数
List<BreatheAbnormalVO> breatheAbnormalVOList = Lists.newArrayList();
......@@ -499,6 +504,7 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
}
dayTotalHr += analysisVO.getTotalHr();
dayTotalBr += analysisVO.getTotalBr();
dayBrHrCount += analysisVO.getHrBrCount();
}
......@@ -593,8 +599,8 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
// 插入呼吸分析表
PlatElderBreatheAnalysis platElderBreatheAnalysis = new PlatElderBreatheAnalysis();
platElderBreatheAnalysis.setElderId(elder.getId());
platElderBreatheAnalysis.setAvgBreatheRate(String.valueOf(dayTotalBr / (timeHourRange * 60 * 60)));
platElderBreatheAnalysis.setAvgHeartRate(String.valueOf(dayTotalHr / (timeHourRange * 60 * 60)));
platElderBreatheAnalysis.setAvgBreatheRate(String.valueOf(dayTotalBr / (timeHourRange * dayBrHrCount)));
platElderBreatheAnalysis.setAvgHeartRate(String.valueOf(dayTotalHr / (timeHourRange * dayBrHrCount)));
platElderBreatheAnalysis.setBreatheScore(finalReport.getScore());
platElderBreatheAnalysis.setHappenDate(currentDate);
platElderBreatheAnalysis.setTenantId(tenantId);
......@@ -1079,30 +1085,28 @@ public class PlatElderSleepServiceImpl extends ServiceImpl<PlatElderSleepMapper,
public List<String> getLastDayHourRange() {
int count = 24;
LocalDateTime now = LocalDateTime.now();
LocalDateTime localDateTime = getDayStart(LocalDate.now()).plusHours(8);
List<String> list = Lists.newArrayList();
String startTime;
String endTime;
for (int i = count; i > 0; i--) {
startTime = DateUtil.format(now.minusHours(i), DatePattern.NORM_DATETIME_PATTERN);
endTime = DateUtil.format(now.minusHours(i - 1), DatePattern.NORM_DATETIME_PATTERN);
startTime = DateUtil.format(localDateTime.minusHours(i), DatePattern.NORM_DATETIME_PATTERN);
endTime = DateUtil.format(localDateTime.minusHours(i - 1), DatePattern.NORM_DATETIME_PATTERN);
list.add(startTime + "~" + endTime);
}
return list;
}
public static void main(String[] args) {
int days = 30;
DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
LocalDateTime localDateTime = LocalDateTime.now().minusDays(28);
for (int i = 0; i < days; i++) {
int i1 = RandomUtils.nextInt(0,4);
System.out.println(i1);
localDateTime = localDateTime.plusDays(1);
String currentDate = localDateTime.format(timeFormatter);
System.out.println(currentDate);
public static LocalDateTime getDayStart(LocalDate time) {
return time.atTime(0, 0, 0);
}
public static void main(String[] args) {
PlatElderSleepServiceImpl platElderSleepService1 = new PlatElderSleepServiceImpl();
List<String> lastDayHourRange = platElderSleepService1.getLastDayHourRange();
System.out.println();
}
@Override
......
......@@ -24,7 +24,7 @@ public class IotSyncTask {
* 启用状态的租户才同步
* 新增和更新平台端设备表
*/
@Scheduled(cron = "0 0/1 * * * ?")
//@Scheduled(cron = "0 0/1 * * * ?")
public void syncEquipmentInfo() {
platDeviceService.savePlatDevice();
}
......@@ -39,7 +39,7 @@ public class IotSyncTask {
/**
* 长者睡眠分析
*/
@Scheduled(cron = "0 0 2 * * ?")
@Scheduled(cron = "0 0 1 * * ?")
@TenantIdIgnore
public void elderSleepSleepAnalysisTask() {
log.info("开始定时分析长者睡眠质量");
......
......@@ -11,7 +11,7 @@ public class ReportMonthTask {
@Autowired
private PlatElderReportMonthService platElderReportMonthService;
@Scheduled(cron = "0 0 1 * * ? ")
@Scheduled(cron = "0 0 2 * * ? ")
public void job(){
platElderReportMonthService.reportMonthJob();
}
......
package com.makeit.vo.wechat.elder;
import com.makeit.common.dto.BaseIdDTO;
import com.makeit.common.dto.BaseTenantDTO;
import com.makeit.entity.platform.elder.PlatElder;
import io.swagger.annotations.ApiModel;
......@@ -18,7 +19,7 @@ import lombok.EqualsAndHashCode;
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value="ElderChildrenInfo对象", description="长者子女账号")
public class PlatElderChildrenInfoWechatVO extends BaseTenantDTO {
public class PlatElderChildrenInfoWechatVO extends BaseIdDTO {
@ApiModelProperty(value = "长者id")
private String elderId;
......
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