Commit c6815154 by 朱淼

定位

parent dc8106e9
......@@ -52,11 +52,18 @@ public class PlatRegionSettingController {
return ApiResponseUtils.success();
}
@ApiOperation("定位")
@ApiOperation("定位(时间范围内定位)")
@PostMapping("locate")
public ApiResponseEntity<List<PlatElderCoordinateVO>> locate(@RequestBody PlatRegionSettingLocateDTO dto) {
List<PlatElderCoordinateVO> list = platRegionSettingService.locate(dto);
return ApiResponseUtils.success(list);
}
@ApiOperation("实时定位")
@PostMapping("nowDataLocate")
public ApiResponseEntity<PlatElderCoordinateVO> nowDataLocate(@RequestBody PlatRegionSettingLocateDTO dto) {
PlatElderCoordinateVO vo = platRegionSettingService.nowDataLocate(dto);
return ApiResponseUtils.success(vo);
}
}
......@@ -53,10 +53,17 @@ public class PlatRegionSettingWechatController {
return ApiResponseUtils.success();
}
@ApiOperation("定位")
@ApiOperation("定位(时间范围内定位)")
@PostMapping("locate")
public ApiResponseEntity<List<PlatElderCoordinateVO>> locate(@RequestBody PlatRegionSettingLocateDTO dto) {
List<PlatElderCoordinateVO> list = platRegionSettingService.locate(dto);
return ApiResponseUtils.success(list);
}
@ApiOperation("实时定位")
@PostMapping("nowDataLocate")
public ApiResponseEntity<PlatElderCoordinateVO> nowDataLocate(@RequestBody PlatRegionSettingLocateDTO dto) {
PlatElderCoordinateVO vo = platRegionSettingService.nowDataLocate(dto);
return ApiResponseUtils.success(vo);
}
}
......@@ -46,4 +46,6 @@ public interface PlatRegionSettingService extends IService<PlatRegionSetting> {
void batchEdit(List<PlatRegionSettingDTO> dtos);
List<PlatElderCoordinateVO> locate(PlatRegionSettingLocateDTO dto);
PlatElderCoordinateVO nowDataLocate(PlatRegionSettingLocateDTO dto);
}
......@@ -20,6 +20,7 @@ import com.makeit.service.platform.device.PlatDeviceService;
import com.makeit.service.platform.space.PlatRegionSettingService;
import com.makeit.utils.data.convert.BeanDtoVoUtils;
import com.makeit.utils.data.convert.JsonUtil;
import com.makeit.utils.data.validate.CollectionUtils;
import com.makeit.vo.platform.elder.realtime.PlatElderCoordinateVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -27,10 +28,7 @@ import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
......@@ -166,7 +164,7 @@ public class PlatRegionSettingServiceImpl extends ServiceImpl<PlatRegionSettingM
@Override
public List<PlatElderCoordinateVO> locate(PlatRegionSettingLocateDTO dto) {
List<PlatElderCoordinateVO> vos = new ArrayList<>();
List<DeviceOperationLogEntity> list = iotProductDeviceService.getDeviceLogByTimeRange(dto.getDeviceId(), "reportProperty", 10, dto.getStartTime(), dto.getEndTime());
List<DeviceOperationLogEntity> list = iotProductDeviceService.getDeviceLogByTimeRange(dto.getDeviceId(), "reportProperty", 100, dto.getStartTime(), dto.getEndTime());
for(DeviceOperationLogEntity log : list){
DeviceInfoContentSpace space = JsonUtil.toObj((String) log.getContent(), DeviceInfoContentSpace.class);
if(space.getProperties()!=null){
......@@ -179,4 +177,18 @@ public class PlatRegionSettingServiceImpl extends ServiceImpl<PlatRegionSettingM
}
return vos;
}
@Override
public PlatElderCoordinateVO nowDataLocate(PlatRegionSettingLocateDTO dto) {
PlatElderCoordinateVO vo = new PlatElderCoordinateVO();
DeviceInfoContentSpace space = iotProductDeviceService.getLastDeviceLogSpace(dto.getDeviceId(), 10);
if(space == null){
return null;
}
if(space.getProperties()!=null){
vo.setX(new BigDecimal(space.getProperties().getDistance()).multiply(new BigDecimal(Math.cos(space.getProperties().getAngle()) + "")).setScale(2, RoundingMode.HALF_UP));
vo.setY(new BigDecimal(space.getProperties().getDistance()).multiply(new BigDecimal(Math.sin(space.getProperties().getAngle()) + "")).setScale(2, RoundingMode.HALF_UP));
}
return vo;
}
}
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