Commit c07c639d by huangjy

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

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