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 9d55f0f9..bf065db4 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 @@ -55,6 +55,7 @@ public class AbnormalDeviceProcessor{ private void checkDevice() { logger.info("zny checkDevice"); checkNoDataDevice("2345080","2345068","2410190"); + checkNotGoodDevice("2412254","2412272"); //checkNoDataDevice("2345084","2415276","2345076"); //checkNoDataDevice("2345085","2345068","2345075"); } @@ -142,4 +143,28 @@ public class AbnormalDeviceProcessor{ } } + List getLastTwo(String deviceId){ + LocalDateTime now = LocalDateTime.now(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("deviceid",deviceId); + queryWrapper.eq("enabled",true); + queryWrapper.isNotNull("rpose"); + queryWrapper.ge("createtime",now.minusHours(24)); + queryWrapper.orderByDesc("createtime"); + queryWrapper.last("limit 2"); + + return gnssDataMapper.selectList(queryWrapper); + } + + void checkNotGoodDevice(String deviceId, String refDeviceId1){ + List calcDataList = getLastTwo(deviceId); + List calcDataList1 = getLastTwo(refDeviceId1); + if(calcDataList.size() == 2 && calcDataList1.size()==2){ + double deltaU = calcDataList1.get(0).getRposd() - calcDataList1.get(1).getRposd(); + GnssCalcData calcData = calcDataList.get(0); + calcData.setRposd(calcDataList.get(1).getRposd()+deltaU); + gnssDataMapper.updateById(calcData); + } + } + }