Commit d4e282e4 by huangjy

fix: 状态兼容睡眠

parent 5334d459
...@@ -199,8 +199,16 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService { ...@@ -199,8 +199,16 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
Integer bodymove = Integer.valueOf(result.getString("bodymove")); Integer bodymove = Integer.valueOf(result.getString("bodymove"));
return bodymove.compareTo(sleepTimeActionThreshold) <= 0; return bodymove.compareTo(sleepTimeActionThreshold) <= 0;
}; };
boolean sleepFlag = values.stream().allMatch(predicate); int count = 0;
if (sleepFlag) { for (Object entity : values) {
JSONObject result = JSON.parseObject(entity.toString());
Integer bodymove = Integer.valueOf(result.getString("bodymove"));
boolean b = bodymove.compareTo(sleepTimeActionThreshold) <= 0;
if (b) {
count++;
}
}
if (values.size() - count <= 3) {
log.info("当前属于在床睡眠:" + platElderIdDTO.getElderId()); log.info("当前属于在床睡眠:" + platElderIdDTO.getElderId());
platElderRealTimeNowVO.setStatus(PlatElderRealtimeReportEnum.NowStatus.SLEEP.getValue()); platElderRealTimeNowVO.setStatus(PlatElderRealtimeReportEnum.NowStatus.SLEEP.getValue());
return platElderRealTimeNowVO; return platElderRealTimeNowVO;
......
...@@ -124,14 +124,14 @@ public class PushCallback implements MqttCallback { ...@@ -124,14 +124,14 @@ public class PushCallback implements MqttCallback {
// 缓存呼吸设备某段时间的数据,hash 最大长度 duration // 缓存呼吸设备某段时间的数据,hash 最大长度 duration
long duration = getSleepTimeActionDuration(); long duration = getSleepTimeActionDuration();
long size = redisTemplate.opsForHash().size(DEVICE_BR_ANALYSIS + device.getDeviceId()); long size = redisTemplate.opsForHash().size(DEVICE_BR_ANALYSIS + device.getDeviceId());
redisTemplate.opsForHash().put(DEVICE_BR_ANALYSIS + device.getDeviceId(), currentSecond,JSON.toJSONString(device.getProperties()));
redisTemplate.expire(DEVICE_BR_ANALYSIS + device.getDeviceId(),duration + 3,TimeUnit.MINUTES);
if (size == duration) { if (size == duration) {
redisTemplate.opsForHash().delete(DEVICE_BR_ANALYSIS + device.getDeviceId(),currentSecond - duration); redisTemplate.opsForHash().delete(DEVICE_BR_ANALYSIS + device.getDeviceId(),currentSecond - duration);
}else if (size > duration) { }else if (size - duration >= 3) {
redisTemplate.delete(Objects.requireNonNull(redisTemplate.keys(DEVICE_BR_ANALYSIS + device.getDeviceId()))); redisTemplate.delete(Objects.requireNonNull(redisTemplate.keys(DEVICE_BR_ANALYSIS + device.getDeviceId())));
} }
redisTemplate.opsForHash().put(DEVICE_BR_ANALYSIS + device.getDeviceId(), currentSecond,JSON.toJSONString(device.getProperties()));
redisTemplate.expire(DEVICE_BR_ANALYSIS + device.getDeviceId(),duration + 3,TimeUnit.MINUTES);
redisTemplate.opsForValue().set(DEVICE_BR_DATA + device.getDeviceId(),JSON.toJSONString(device.getProperties()), redisTemplate.opsForValue().set(DEVICE_BR_DATA + device.getDeviceId(),JSON.toJSONString(device.getProperties()),
5000, TimeUnit.MILLISECONDS); 5000, TimeUnit.MILLISECONDS);
} }
......
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