diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/task/AbnormalDeviceProcessor.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/task/AbnormalDeviceProcessor.java index 21ca3a6a..9f87abf1 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/task/AbnormalDeviceProcessor.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/task/AbnormalDeviceProcessor.java @@ -143,13 +143,13 @@ public class AbnormalDeviceProcessor{ } } - List getLastTwo(String deviceId){ + List getLastTwo(String deviceId,long hours){ LocalDateTime now = LocalDateTime.now(); QueryWrapper 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 calcDataList = getLastTwo(deviceId); - if(calcDataList.size() == 2){ - if(calcDataList.get(0).getCreatetime().isBefore(validTime)) return; - } - else return; + List calcDataList = getLastTwo(deviceId,0); + if(calcDataList.size() < 2) return; + if(calcDataList.get(0).getCreatetime().isBefore(validTime)) return; // 参考点 - List calcDataList1 = getLastTwo(refDeviceId1); + double deltaU = (Math.random()*2-1)/10; + List 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); } }