Commit c07c639d by huangjy

fix: 三个设备都无人判断成外出

parent 93487cd6
......@@ -180,6 +180,8 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
if (platDevice == null) {
return platElderRealTimeNowVO;
}
boolean brNoPersonFlag = false;
String brResult = redisTemplate.opsForValue().get(DEVICE_BR_DATA + platDevice.getOriDeviceId());
if (brResult != null) {
JSONObject jsonObject = JSON.parseObject(brResult);
......@@ -216,14 +218,19 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
platElderRealTimeNowVO.setStatus(PlatElderRealtimeReportEnum.NowStatus.BED.getValue());
return platElderRealTimeNowVO;
}
} else {
brNoPersonFlag = true;
}
} else {
log.info("当前呼吸设备没有上报数据直接返回:" + platElderIdDTO.getElderId());
brNoPersonFlag = true;
return platElderRealTimeNowVO;
}
List<PlatDevice> spaceDeviceList = getSpaceDevice(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId());
List<PlatDevice> fallDeviceList = getFallDevice(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId());
boolean sportFlag = true;
boolean spaceNoPersonFlag = false;
for (PlatDevice device : spaceDeviceList) {
// 无人
Map<Object, Object> entries = redisTemplate.opsForHash().entries(DEVICE_SPACE_TEMP_DATA + device.getOriDeviceId());
......@@ -250,12 +257,7 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
return vo;
}).collect(Collectors.toList());
boolean noPersonFlag = voList.stream().allMatch(e -> e.getPersonState() == 0);
if (noPersonFlag) {
log.info("当前属于外出:" + platElderIdDTO.getElderId());
platElderRealTimeNowVO.setStatus(PlatElderRealtimeReportEnum.NowStatus.OUT.getValue());
return platElderRealTimeNowVO;
}
spaceNoPersonFlag = voList.stream().allMatch(e -> e.getPersonState() == 0);
Double[] doubleArrX = voList.stream().map(PlatElderCoordinateVO::getX).toArray(Double[]::new);
double x = StandardDeviationUtil.variance(doubleArrX);
......@@ -275,6 +277,7 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
sportFlag = false;
}
}
boolean fallNoPersonFlag = false;
for (PlatDevice device : fallDeviceList) {
// 无人
Map<Object, Object> entries = redisTemplate.opsForHash().entries(DEVICE_FALL_TEMP_DATA + device.getOriDeviceId());
......@@ -302,12 +305,7 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
return vo;
}).collect(Collectors.toList());
boolean noPersonFlag = voList.stream().allMatch(e -> e.getPerson() == 0);
if (noPersonFlag) {
log.info("当前属于跌倒设备外出:" + platElderIdDTO.getElderId());
platElderRealTimeNowVO.setStatus(PlatElderRealtimeReportEnum.NowStatus.OUT.getValue());
return platElderRealTimeNowVO;
}
fallNoPersonFlag = voList.stream().allMatch(e -> e.getPersonState() == 0);
Double[] doubleArrX = voList.stream().map(PlatElderCoordinateVO::getX).filter(Objects::nonNull).toArray(Double[]::new);
double x = StandardDeviationUtil.variance(doubleArrX);
boolean xFlag = new BigDecimal(x + "").compareTo(new BigDecimal(2)) > 0;
......@@ -332,6 +330,12 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
platElderRealTimeNowVO.setStatus(PlatElderRealtimeReportEnum.NowStatus.REST.getValue());
return platElderRealTimeNowVO;
}
if (brNoPersonFlag && spaceNoPersonFlag && fallNoPersonFlag) {
log.info("所有设备都无人,判断为外出:" + platElderIdDTO.getElderId());
platElderRealTimeNowVO.setStatus(PlatElderRealtimeReportEnum.NowStatus.OUT.getValue());
return platElderRealTimeNowVO;
}
log.info("当前设备无状态匹配直接返回:" + platElderIdDTO.getElderId());
return platElderRealTimeNowVO;
}
......
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