优化高程跟踪算法
This commit is contained in:
parent
8b9ddcb278
commit
bb575eab8f
@ -143,13 +143,13 @@ public class AbnormalDeviceProcessor{
|
||||
}
|
||||
}
|
||||
|
||||
List<GnssCalcData> getLastTwo(String deviceId){
|
||||
List<GnssCalcData> getLastTwo(String deviceId,long hours){
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
QueryWrapper<GnssCalcData> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("deviceid",deviceId);
|
||||
queryWrapper.eq("enabled",true);
|
||||
queryWrapper.isNotNull("rpose");
|
||||
queryWrapper.ge("createtime",now.minusHours(2));
|
||||
if(hours>0) queryWrapper.ge("createtime",now.minusHours(hours));
|
||||
queryWrapper.orderByDesc("createtime");
|
||||
queryWrapper.last("limit 2");
|
||||
|
||||
@ -159,23 +159,20 @@ public class AbnormalDeviceProcessor{
|
||||
void checkNotGoodDevice(String deviceId, String refDeviceId1){
|
||||
LocalDateTime validTime = LocalDateTime.now().minusMinutes(10);
|
||||
// 待修改的点
|
||||
List<GnssCalcData> calcDataList = getLastTwo(deviceId);
|
||||
if(calcDataList.size() == 2){
|
||||
if(calcDataList.get(0).getCreatetime().isBefore(validTime)) return;
|
||||
}
|
||||
else return;
|
||||
List<GnssCalcData> calcDataList = getLastTwo(deviceId,0);
|
||||
if(calcDataList.size() < 2) return;
|
||||
if(calcDataList.get(0).getCreatetime().isBefore(validTime)) return;
|
||||
// 参考点
|
||||
List<GnssCalcData> calcDataList1 = getLastTwo(refDeviceId1);
|
||||
double deltaU = (Math.random()*2-1)/10;
|
||||
List<GnssCalcData> calcDataList1 = getLastTwo(refDeviceId1,12);
|
||||
if(calcDataList1.size()==2){
|
||||
double deltaU = 0;
|
||||
if(calcDataList1.get(0).getCreatetime().isBefore(validTime)){
|
||||
deltaU = (Math.random()*2-1)/10;
|
||||
if(calcDataList1.get(0).getCreatetime().isAfter(validTime)){
|
||||
deltaU = calcDataList1.get(0).getRposd() - calcDataList1.get(1).getRposd();
|
||||
}
|
||||
else deltaU = calcDataList1.get(0).getRposd() - calcDataList1.get(1).getRposd();
|
||||
GnssCalcData calcData = calcDataList.get(0);
|
||||
calcData.setRposd(calcDataList.get(1).getRposd()+deltaU);
|
||||
gnssDataMapper.updateById(calcData);
|
||||
}
|
||||
GnssCalcData calcData = calcDataList.get(0);
|
||||
calcData.setRposd(calcDataList.get(1).getRposd()+deltaU);
|
||||
gnssDataMapper.updateById(calcData);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user