From bb575eab8f3df58f643fdb252c749d7b768a6d47 Mon Sep 17 00:00:00 2001 From: weidong Date: Tue, 10 Sep 2024 09:17:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=AB=98=E7=A8=8B=E8=B7=9F?= =?UTF-8?q?=E8=B8=AA=E7=AE=97=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../task/AbnormalDeviceProcessor.java | 27 +++++++++---------- 1 file changed, 12 insertions(+), 15 deletions(-) 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); } }