Commit ceb6da70 by huangjy

fix:实时定位空间区域

parent e6a200e1
......@@ -105,7 +105,7 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
@Override
public List<PlatDevice> getSpaceDevice(String elderId, String deviceId) {
List<PlatDevice> deviceList = null;
List<PlatDevice> deviceList = Lists.newArrayList();
if (StringUtils.isNotBlank(elderId)) {
deviceList = platElderService.getSpaceDevice(elderId);
......@@ -120,7 +120,7 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
@Override
public List<PlatDevice> getFallDevice(String elderId, String deviceId) {
List<PlatDevice> deviceList = null;
List<PlatDevice> deviceList = Lists.newArrayList();
if (StringUtils.isNotBlank(elderId)) {
deviceList = platElderService.getFallDevice(elderId);
......@@ -467,43 +467,8 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
redisTemplate.opsForList().leftPush(ELDER_MOVE + platElderIdDTO.getElderId(),JSON.toJSONString(platElderRealTimeBodyVO));
}
return JSON.parseObject(redisTemplate.opsForList().rightPop(ELDER_MOVE + platElderIdDTO.getElderId()),PlatElderRealTimeBodyVO.class);
/*PlatElderRealTimeBodyVO platElderRealTimeBodyVO = new PlatElderRealTimeBodyVO();
platElderRealTimeBodyVO.setTime(LocalDateTime.now());
platElderRealTimeBodyVO.setBodyMovementIndex(deviceInfoContentBreathe.getProperties().getBodymove());
return platElderRealTimeBodyVO;*/
}
// @Override
// public List<PlatElderCoordinateVO> coordinate(PlatElderIdDTO platElderIdDTO) {
// List<DeviceInfoContentSpace> deviceInfoContentSpaceList = getNowDataSpace(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId());
//
// List<PlatElderCoordinateVO> voList = new ArrayList<>(10);
//
// if (CollectionUtils.isEmpty(deviceInfoContentSpaceList)) {
// return voList;
// }
//
// voList = StreamUtil.map(deviceInfoContentSpaceList, e -> {
// PlatElderCoordinateVO vo = new PlatElderCoordinateVO();
//
//// vo.setDeviceId();
//// vo.setOriDeviceId();
//
// vo.setX(new BigDecimal(e.getProperties().getDistance()).multiply(new BigDecimal(Math.cos(e.getProperties().getAngle()) + "")).setScale(2, RoundingMode.HALF_UP));
// vo.setY(new BigDecimal(e.getProperties().getDistance()).multiply(new BigDecimal(Math.sin(e.getProperties().getAngle()) + "")).setScale(2, RoundingMode.HALF_UP));
//
// vo.setDistance(e.getProperties().getDistance());
// vo.setAngle(e.getProperties().getAngle());
//
// return vo;
// });
//
// return voList;
// }
@Override
public List<PlatElderCoordinateVO> coordinate(PlatElderIdDTO platElderIdDTO) {
......@@ -514,7 +479,8 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
return voList;
}
List<PlatDevice> deviceListSpace = getSpaceDevice(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId());
List<PlatDevice> fallDeviceList = getFallDevice(platElderIdDTO.getElderId(), platElderIdDTO.getDeviceId());
deviceListSpace.addAll(fallDeviceList);
for (PlatDevice platDevice : deviceListSpace) {
String spaceResult = redisTemplate.opsForValue().get(DEVICE_SPACE_DATA + platDevice.getOriDeviceId());
if (spaceResult != null) {
......@@ -524,82 +490,22 @@ public class PlatElderRealTimeServiceImpl implements PlatElderRealTimeService {
vo.setOriDeviceId(platDevice.getOriDeviceId());
vo.setDistance(Integer.valueOf(jsonObject.getString("distance")));
vo.setAngle(Integer.valueOf(jsonObject.getString("angle")));
vo.setPersonState(Integer.valueOf(jsonObject.getString("personState")));
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(spaceResult);
JSONObject jsonObject = JSON.parseObject(fallResult);
vo.setDeviceId(platDevice.getId());
vo.setOriDeviceId(platDevice.getOriDeviceId());
vo.setTrack((List<Integer>) jsonObject.get("track"));
vo.setPersonState(Integer.valueOf(jsonObject.getString("personState")));
vo.setType(2);
voList.add(vo);
}
}
if (CollectionUtils.isNotEmpty(voList)) {
return voList;
}
/* int count = 20;
for (PlatDevice platDevice : deviceListSpace) {
for (int i = 0; i < count; i++) {
PlatElderCoordinateVO vo = new PlatElderCoordinateVO();
int distance = RandomUtils.nextInt(1, 1000);
int angle = RandomUtils.nextInt(1,180) -120;
// vo.setX(new BigDecimal(distance).multiply(new BigDecimal(Math.cos(angle) + "")).setScale(2, RoundingMode.HALF_UP));
// vo.setY(new BigDecimal(distance).multiply(new BigDecimal(Math.sin(angle) + "")).setScale(2, RoundingMode.HALF_UP));
vo.setDistance(distance);
vo.setAngle(angle);
vo.setDeviceId(platDevice.getId());
vo.setOriDeviceId(platDevice.getOriDeviceId());
voList.add(vo);
}
}*/
/* if (CollectionUtils.isNotEmpty(deviceListSpace)) {
deviceListSpace.forEach(e -> {
DeviceInfoContentSpace i = iotProductDeviceService.getLastDeviceLogSpace(e.getOriDeviceId(), 10);
if (i == null) {
return;
}
PlatElderCoordinateVO vo = new PlatElderCoordinateVO();
vo.setDeviceId(e.getId());
vo.setOriDeviceId(e.getOriDeviceId());
// vo.setX(new BigDecimal(i.getProperties().getDistance()).multiply(new BigDecimal(Math.cos(i.getProperties().getAngle()) + "")).setScale(2, RoundingMode.HALF_UP));
// vo.setY(new BigDecimal(i.getProperties().getDistance()).multiply(new BigDecimal(Math.sin(i.getProperties().getAngle()) + "")).setScale(2, RoundingMode.HALF_UP));
vo.setDistance(i.getProperties().getDistance());
vo.setAngle(i.getProperties().getAngle());
voList.add(vo);
});
}
if (CollectionUtils.isNotEmpty(deviceListFall)) {
deviceListFall.forEach(e -> {
DeviceInfoContentFall i = iotProductDeviceService.getLastDeviceLogFall(e.getOriDeviceId(), 10);
if (i == null) {
return;
}
PlatElderCoordinateVO vo = new PlatElderCoordinateVO();
vo.setDeviceId(e.getId());
vo.setOriDeviceId(e.getOriDeviceId());
vo.setTrack(i.getProperties().getTrack());
voList.add(vo);
});
}*/
return voList;
}
......
......@@ -22,6 +22,10 @@ public class PlatElderCoordinateVO {
@ApiModelProperty("人体目标距离雷达位置 范围:0-1000,单位cm")
private Integer distance;
@ApiModelProperty("空间人感:0表示无人,1表示活动, 2表示微动 ,3表示静止 ,跌倒设备:0无人,1跌倒")
private Integer personState;
@ApiModelProperty("1 表示空间, 2 表示跌倒")
private Integer type;
@ApiModelProperty("人体目标偏离雷达法线角度范围:±60,单位°")
private Integer angle;
......
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