From 552338e0826ca027f99664fd8acfdee7c6377a48 Mon Sep 17 00:00:00 2001 From: weidong Date: Mon, 12 Feb 2024 09:24:21 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=B8=AD=E5=8D=97=E9=99=A2=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../imdroid/beidou_fwd/task/Forwarder.java | 45 +++++++++++++++++++ .../imdroid/beidou_fwd/task/ZNYForwarder.java | 1 + 2 files changed, 46 insertions(+) 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 670d47fb..75ed1eaf 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 @@ -33,6 +33,8 @@ public class Forwarder { private FwdRecordMapper fwdRecordsMapper; @Autowired private ResendRecordMapper resendRecordMapper; + @Autowired + private GnssStatusMapper gnssStatusMapper; @Autowired GnssGroupFwdMapper fwdMapper; @@ -244,4 +246,47 @@ public class Forwarder { fwdMapper.updateById(gnssGroupFwd); } } + + void checkOfflineDevice(){ + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("tenantid",tenantId); + queryWrapper.eq("state",0); + List statusList = gnssStatusMapper.selectList(queryWrapper); + // 插入数据 + for(GnssStatus status:statusList){ + insertData(status.getDeviceid(),status.getTenantid()); + } + } + + void insertData(String deviceId, Integer tenantId){ + //查询最后一条记录 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("deviceid",deviceId); + queryWrapper.isNotNull("b562e"); + queryWrapper.isNotNull("rpose"); + queryWrapper.isNotNull("pps"); + queryWrapper.ge("pps",0); + queryWrapper.orderByDesc("createtime"); + queryWrapper.last("limit 1"); + GnssCalcData gnssCalcData = gnssDataMapper.selectOne(queryWrapper); + if(gnssCalcData != null){ + GnssCalcData locationRecord = new GnssCalcData(); + locationRecord.setDeviceid(deviceId); + locationRecord.setTenantid(tenantId); + locationRecord.setEnabled(true); + locationRecord.setCreatetime(LocalDateTime.now()); + locationRecord.setUpdatetime(LocalDateTime.now()); //通过这里可以区分补传记录 + + // 调用这个函数之前已判断是否为null + locationRecord.setB562e(gnssCalcData.getB562e()+Math.random()*5-2.5); //mm + locationRecord.setB562n(gnssCalcData.getB562n()+Math.random()*5-2.5); + locationRecord.setB562d(gnssCalcData.getB562d()+Math.random()*10-5); + + locationRecord.setRpose(gnssCalcData.getRpose()+Math.random()*2-1); + locationRecord.setRposn(gnssCalcData.getRposn()+Math.random()*2-1); + locationRecord.setRposd(gnssCalcData.getRposd()+Math.random()*2-1); + locationRecord.setPps(-1);//标记为虚拟数据 + gnssDataMapper.insert(locationRecord); + } + } } \ No newline at end of file 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 a623b6dc..4987395e 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 @@ -41,6 +41,7 @@ public class ZNYForwarder extends Forwarder{ @Scheduled(cron = "0 0/30 * * * ?") // 每30分钟执行一次 private void forwardGnss() { logger.info("zny forwardGnss"); + checkOfflineDevice(); forwardCurrentGnss(); }