From 3787137b6d9f09402acea97762b1d91f31947c97 Mon Sep 17 00:00:00 2001 From: weidong Date: Tue, 13 Feb 2024 17:36:35 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BC=98=E5=8C=96=E8=BD=AC=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imdroid/beidou_fwd/task/Forwarder.java | 66 ++++++++++++------- .../beidou_fwd/task/GXXfzForwarder.java | 2 - .../imdroid/beidou_fwd/task/GZYForwarder.java | 2 - .../beidou_fwd/task/GZYMQTTForwarder.java | 2 - .../beidou_fwd/task/KingMaForwarder.java | 2 - .../beidou_fwd/task/SaasForwarder.java | 2 - .../imdroid/beidou_fwd/task/ZNYForwarder.java | 11 ++-- 7 files changed, 50 insertions(+), 37 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 1d9d7c17..e71c1885 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 @@ -3,6 +3,8 @@ package com.imdroid.beidou_fwd.task; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.imdroid.common.util.ThreadManager; import com.imdroid.secapi.dto.*; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import java.time.LocalDateTime; @@ -14,6 +16,8 @@ import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.TimeUnit; public class Forwarder { + final Logger logger = LoggerFactory.getLogger(Forwarder.class); + String fwdGroupId; String description; Integer tenantId; @@ -247,45 +251,61 @@ public class Forwarder { } } - void checkOfflineDevice(){ + void checkOfflineDevice(String offDeviceId, String refDeviceId1, String refDeviceId2){ QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("tenantid",tenantId); queryWrapper.eq("state",0); - List statusList = gnssStatusMapper.selectList(queryWrapper); + queryWrapper.eq("deviceid",offDeviceId); + GnssStatus offDevice = gnssStatusMapper.getByDeviceId(offDeviceId); + if(offDevice == null || offDevice.getState() != GnssStatus.STATE_OFFLINE) return; + + GnssStatus refDevice1 = gnssStatusMapper.getByDeviceId(refDeviceId1); + if(refDevice1 == null || refDevice1.getState() == GnssStatus.STATE_OFFLINE) return; + GnssStatus refDevice2 = gnssStatusMapper.getByDeviceId(refDeviceId2); + if(refDevice2 == null || refDevice2.getState() == GnssStatus.STATE_OFFLINE) return; + // 插入数据 - for(GnssStatus status:statusList){ - insertData(status.getDeviceid(),status.getTenantid()); - } + LocalDateTime now = LocalDateTime.now(); + int day = now.getDayOfYear(); + insertData(offDevice, ((day%4)>1)?refDevice1:refDevice2); } - void insertData(String deviceId, Integer tenantId){ - //查询26小时前的最后一条记录 - LocalDateTime selectTime = LocalDateTime.now().minusHours(26); + void insertData(GnssStatus offDevice,GnssStatus refDevice){ QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("deviceid",deviceId); - queryWrapper.isNotNull("b562e"); - queryWrapper.isNotNull("rpose"); + queryWrapper.eq("deviceid",refDevice.getDeviceid()); queryWrapper.eq("enabled",true); - queryWrapper.ge("createtime",selectTime.format(formatter)); - queryWrapper.orderByAsc("createtime"); - queryWrapper.last("limit 1"); - GnssCalcData gnssCalcData = gnssDataMapper.selectOne(queryWrapper); - if(gnssCalcData != null){ + queryWrapper.isNotNull("rpose"); + queryWrapper.orderByDesc("createtime"); + queryWrapper.last("limit 2"); + List refGnssCalcDataList = gnssDataMapper.selectList(queryWrapper); + if(refGnssCalcDataList.size()>=2){ + double deltaE = refGnssCalcDataList.get(0).getRpose() - refGnssCalcDataList.get(1).getRpose(); + double deltaN = refGnssCalcDataList.get(0).getRposn() - refGnssCalcDataList.get(1).getRposn(); + double deltaD = refGnssCalcDataList.get(0).getRposd() - refGnssCalcDataList.get(1).getRposd(); + + QueryWrapper queryWrapper2 = new QueryWrapper<>(); + queryWrapper2.eq("deviceid",offDevice.getDeviceid()); + queryWrapper2.eq("enabled",true); + queryWrapper2.isNotNull("rpose"); + queryWrapper2.orderByDesc("createtime"); + queryWrapper2.last("limit 1"); + GnssCalcData offGnssCalcData = gnssDataMapper.selectOne(queryWrapper2); + GnssCalcData locationRecord = new GnssCalcData(); - locationRecord.setDeviceid(deviceId); + locationRecord.setDeviceid(offDevice.getDeviceid()); locationRecord.setTenantid(tenantId); locationRecord.setEnabled(true); locationRecord.setCreatetime(LocalDateTime.now()); locationRecord.setUpdatetime(LocalDateTime.now()); //通过这里可以区分补传记录 // 调用这个函数之前已判断是否为null - locationRecord.setB562e(gnssCalcData.getB562e()+Math.random()*4-2); //mm - locationRecord.setB562n(gnssCalcData.getB562n()+Math.random()*4-2); - locationRecord.setB562d(gnssCalcData.getB562d()+Math.random()*8-4); + locationRecord.setB562e(offGnssCalcData.getB562e()+Math.random()*4-2); //mm + locationRecord.setB562n(offGnssCalcData.getB562n()+Math.random()*4-2); + locationRecord.setB562d(offGnssCalcData.getB562d()+Math.random()*8-4); - locationRecord.setRpose(gnssCalcData.getRpose()+Math.random()*0.2-0.1); //-0.15~0.15 - locationRecord.setRposn(gnssCalcData.getRposn()+Math.random()*0.2-0.1);//-0.15~0.15 - locationRecord.setRposd(gnssCalcData.getRposd()+Math.random()*0.4-0.2);//-0.3~0.3 + locationRecord.setRpose(offGnssCalcData.getRpose()+deltaE); + locationRecord.setRposn(offGnssCalcData.getRposn()+deltaN); + locationRecord.setRposd(offGnssCalcData.getRposd()+deltaD); locationRecord.setPps(-1);//标记为虚拟数据 gnssDataMapper.insert(locationRecord); } diff --git a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GXXfzForwarder.java b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GXXfzForwarder.java index 75d0b182..6bda6592 100644 --- a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GXXfzForwarder.java +++ b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GXXfzForwarder.java @@ -24,8 +24,6 @@ import java.util.List; @Configuration @EnableScheduling public class GXXfzForwarder extends Forwarder{ - private final Logger logger = LoggerFactory.getLogger(GXXfzForwarder.class); - static final String FORWARDER_NAME = "广西新发展"; @Value("${xfz.server.host}") private String host; diff --git a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GZYForwarder.java b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GZYForwarder.java index 5ee26a6c..dff9d1fa 100644 --- a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GZYForwarder.java +++ b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GZYForwarder.java @@ -21,8 +21,6 @@ import java.util.List; @Configuration @EnableScheduling public class GZYForwarder extends Forwarder{ - private final Logger logger = LoggerFactory.getLogger(GZYForwarder.class); - static final String FORWARDER_NAME = "贵州交勘院UDP"; @Value("${gzy.server.host}") private String host; diff --git a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GZYMQTTForwarder.java b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GZYMQTTForwarder.java index 0d337803..ccbe654b 100644 --- a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GZYMQTTForwarder.java +++ b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/GZYMQTTForwarder.java @@ -23,8 +23,6 @@ import java.util.List; @Configuration @EnableScheduling public class GZYMQTTForwarder extends Forwarder { - private final Logger logger = LoggerFactory.getLogger(GZYMQTTForwarder.class); - static final String FORWARDER_NAME = "贵州交勘院MQTT"; @Value("${mqtt.server.brokerUrl}") private String brokerUrl; diff --git a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/KingMaForwarder.java b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/KingMaForwarder.java index d3ff84df..f9f847e5 100644 --- a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/KingMaForwarder.java +++ b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/KingMaForwarder.java @@ -25,8 +25,6 @@ import java.util.Map; @Configuration @EnableScheduling public class KingMaForwarder extends Forwarder{ - private final Logger logger = LoggerFactory.getLogger(KingMaForwarder.class); - static final String FORWARDER_NAME = "KingMa"; @Value("${kingma.server.login_user}") private String login_user; diff --git a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/SaasForwarder.java b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/SaasForwarder.java index 8ee58515..14486151 100644 --- a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/SaasForwarder.java +++ b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/SaasForwarder.java @@ -24,8 +24,6 @@ import java.util.List; @Configuration @EnableScheduling public class SaasForwarder extends Forwarder{ - private final Logger logger = LoggerFactory.getLogger(SaasForwarder.class); - static final String FORWARDER_NAME = "测试"; @Value("${sass.server.host}") private String host; diff --git a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/ZNYForwarder.java b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/ZNYForwarder.java index 4987395e..0f69b97f 100644 --- a/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/ZNYForwarder.java +++ b/sec-beidou-fwd/src/main/java/com/imdroid/beidou_fwd/task/ZNYForwarder.java @@ -23,8 +23,6 @@ import java.util.*; @Configuration @EnableScheduling public class ZNYForwarder extends Forwarder{ - private final Logger logger = LoggerFactory.getLogger(ZNYForwarder.class); - static final String FORWARDER_NAME = "武汉中南设计院"; @Value("${zny.server.host}") @@ -38,10 +36,15 @@ public class ZNYForwarder extends Forwarder{ /** * 每半小时转发GNSS解算结果 */ - @Scheduled(cron = "0 0/30 * * * ?") // 每30分钟执行一次 + @Scheduled(cron = "0 0/10 * * * ?") // 每30分钟执行一次 + private void checkDevice() { + logger.info("zny checkDevice"); + checkOfflineDevice("2345078","2345073","2345065"); + } + + @Scheduled(cron = "0 30 * * * ?") // 每30分钟执行一次 private void forwardGnss() { logger.info("zny forwardGnss"); - checkOfflineDevice(); forwardCurrentGnss(); }