API接口获取位置减去初始值
This commit is contained in:
parent
eff6608566
commit
edd0882302
@ -1,8 +1,10 @@
|
||||
package com.imdroid.sec_exapi.controller;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.github.yulichang.query.MPJQueryWrapper;
|
||||
import com.imdroid.common.util.GsonUtil;
|
||||
import com.imdroid.common.util.NumberUtils;
|
||||
import com.imdroid.sec_exapi.entity.GnssQueryResponse;
|
||||
import com.imdroid.secapi.dto.*;
|
||||
import org.slf4j.Logger;
|
||||
@ -14,6 +16,7 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
@RestController
|
||||
@ -22,6 +25,9 @@ public class GnssDataApi {
|
||||
|
||||
@Autowired
|
||||
GnssCalcDataMapper dataMapper;
|
||||
@Autowired
|
||||
GnssDeviceMapper deviceMapper;
|
||||
|
||||
final Logger logger = LoggerFactory.getLogger(GnssDataApi.class);
|
||||
|
||||
@GetMapping(value = "/gnss/data")
|
||||
@ -72,18 +78,14 @@ public class GnssDataApi {
|
||||
LocalDateTime lastRecordTime = null;
|
||||
gnssResponse.OK();
|
||||
|
||||
HashMap<String, GnssDevice> deviceHashMap = new HashMap<>();
|
||||
|
||||
if(isAsc) {
|
||||
for (GnssCalcData data : dataList) {
|
||||
LocalDateTime recordTime = data.getCreatetime();
|
||||
if (lastRecordTime == null) lastRecordTime = recordTime;
|
||||
if (lastRecordTime.isBefore(recordTime) || lastRecordTime.isEqual(recordTime)) {
|
||||
GnssQueryResponse.GnssData gnssData = new GnssQueryResponse.GnssData();
|
||||
gnssData.setDeviceId(data.getDeviceid());
|
||||
gnssData.setCreateTime(data.getCreatetime().format(formatter));
|
||||
gnssData.setRpose(data.getRpose());
|
||||
gnssData.setRposn(data.getRposn());
|
||||
gnssData.setRposu(data.getRposd());
|
||||
gnssResponse.getData().add(gnssData);
|
||||
addToResponse(gnssResponse, data, deviceHashMap);
|
||||
lastRecordTime = recordTime.plusMinutes(30);
|
||||
}
|
||||
}
|
||||
@ -93,13 +95,7 @@ public class GnssDataApi {
|
||||
LocalDateTime recordTime = data.getCreatetime();
|
||||
if (lastRecordTime == null) lastRecordTime = recordTime;
|
||||
if (lastRecordTime.isAfter(recordTime) || lastRecordTime.isEqual(recordTime)) {
|
||||
GnssQueryResponse.GnssData gnssData = new GnssQueryResponse.GnssData();
|
||||
gnssData.setDeviceId(data.getDeviceid());
|
||||
gnssData.setCreateTime(data.getCreatetime().format(formatter));
|
||||
gnssData.setRpose(data.getRpose());
|
||||
gnssData.setRposn(data.getRposn());
|
||||
gnssData.setRposu(data.getRposd());
|
||||
gnssResponse.getData().add(gnssData);
|
||||
addToResponse(gnssResponse, data, deviceHashMap);
|
||||
lastRecordTime = recordTime.minusMinutes(30);
|
||||
}
|
||||
}
|
||||
@ -108,9 +104,38 @@ public class GnssDataApi {
|
||||
String json = GsonUtil.toJson(gnssResponse);
|
||||
logger.info(json);
|
||||
|
||||
deviceHashMap.clear();
|
||||
|
||||
return json;
|
||||
}
|
||||
|
||||
void addToResponse(GnssQueryResponse rsp, GnssCalcData data,HashMap<String, GnssDevice> deviceHashMap){
|
||||
String deviceId = data.getDeviceid();
|
||||
Double rpose = data.getRpose();
|
||||
Double rposn = data.getRposn();
|
||||
Double rposd = data.getRposd();
|
||||
GnssDevice device = deviceHashMap.get(deviceId);
|
||||
if(device==null){
|
||||
QueryWrapper<GnssDevice> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("deviceid", deviceId);
|
||||
device = deviceMapper.selectOne(queryWrapper);
|
||||
if(device!=null) deviceHashMap.put(deviceId, device);
|
||||
}
|
||||
if(device!=null){
|
||||
if(device.getIpose()!=null) rpose-=device.getIpose();
|
||||
if(device.getIposn()!=null) rposn-=device.getIposn();
|
||||
if(device.getIposd()!=null) rposd-=device.getIposd();
|
||||
}
|
||||
|
||||
GnssQueryResponse.GnssData gnssData = new GnssQueryResponse.GnssData();
|
||||
gnssData.setDeviceId(deviceId);
|
||||
gnssData.setCreateTime(data.getCreatetime().format(formatter));
|
||||
gnssData.setRpose(NumberUtils.scale(rpose, 2));
|
||||
gnssData.setRposn(NumberUtils.scale(rposn, 2));
|
||||
gnssData.setRposu(NumberUtils.scale(rposd, 2));
|
||||
rsp.getData().add(gnssData);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user