From 39455ce2b3a012dbf08932795c5c8b58a15774ab Mon Sep 17 00:00:00 2001 From: weidong Date: Fri, 24 May 2024 09:27:24 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81ZNY=E8=99=9A=E6=8B=9F=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imdroid/beidou_fwd/task/Forwarder.java | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/Forwarder.java b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/Forwarder.java index 0bdf6591..10986743 100644 --- a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/Forwarder.java +++ b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/Forwarder.java @@ -254,8 +254,19 @@ public class Forwarder { } void checkOfflineDevice(String offDeviceId, String refDeviceId1, String refDeviceId2){ - GnssStatus offDevice = gnssStatusMapper.getByDeviceId(offDeviceId); - if(offDevice == null) return; + LocalDateTime now = LocalDateTime.now(); + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("deviceid",offDeviceId); + queryWrapper.eq("enabled",true); + queryWrapper.isNotNull("rpose"); + queryWrapper.ne("pps",-1); + queryWrapper.ge("createtime",now.minusMinutes(30).format(formatter)); + queryWrapper.last("limit 1"); + + GnssCalcData offDevice = gnssDataMapper.selectOne(queryWrapper); + if(offDevice != null) { + return; + } GnssStatus refDevice1 = gnssStatusMapper.getByDeviceId(refDeviceId1); if(refDevice1 == null || refDevice1.getState() == GnssStatus.STATE_OFFLINE) return; @@ -263,15 +274,14 @@ public class Forwarder { if(refDevice2 == null || refDevice2.getState() == GnssStatus.STATE_OFFLINE) return; // 插入数据 - LocalDateTime now = LocalDateTime.now(); int day = now.getDayOfYear(); - insertData(offDevice, ((day%4)>1)?refDevice1:refDevice2); + insertData(offDeviceId, ((day%4)>1)?refDeviceId1:refDeviceId2); } - void insertData(GnssStatus offDevice,GnssStatus refDevice){ - logger.info("insertData based on {}",refDevice.getDeviceid()); + void insertData(String offDeviceId,String refDeviceId){ + logger.info("insertData based on {}",refDeviceId); QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("deviceid",refDevice.getDeviceid()); + queryWrapper.eq("deviceid",refDeviceId); queryWrapper.eq("enabled",true); queryWrapper.isNotNull("rpose"); queryWrapper.orderByDesc("createtime"); @@ -287,7 +297,7 @@ public class Forwarder { if(Math.abs(deltaD)>2) deltaD = Math.random()*0.4 - 0.2; QueryWrapper queryWrapper2 = new QueryWrapper<>(); - queryWrapper2.eq("deviceid",offDevice.getDeviceid()); + queryWrapper2.eq("deviceid",offDeviceId); queryWrapper2.eq("enabled",true); queryWrapper2.isNotNull("rpose"); queryWrapper2.orderByDesc("createtime"); @@ -295,7 +305,7 @@ public class Forwarder { GnssCalcData offGnssCalcData = gnssDataMapper.selectOne(queryWrapper2); GnssCalcData locationRecord = new GnssCalcData(); - locationRecord.setDeviceid(offDevice.getDeviceid()); + locationRecord.setDeviceid(offDeviceId); locationRecord.setTenantid(tenantId); locationRecord.setEnabled(true); locationRecord.setCreatetime(LocalDateTime.now());