From 73eebcd49304edcf9963a969cacbe3ffdeefdc61 Mon Sep 17 00:00:00 2001 From: weidong Date: Tue, 9 Jan 2024 18:19:48 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E4=BC=98=E5=8C=96=E5=AF=B9=E8=A1=A5?= =?UTF-8?q?=E4=BC=A0=E7=BB=93=E6=9D=9F=E7=9A=84=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sideslope/calc/MultiLineGNSSCalcService.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/MultiLineGNSSCalcService.java b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/MultiLineGNSSCalcService.java index 25938c4a..a4408cd3 100644 --- a/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/MultiLineGNSSCalcService.java +++ b/sec-beidou-rtcm/src/main/java/com/imdroid/sideslope/calc/MultiLineGNSSCalcService.java @@ -43,10 +43,8 @@ public class MultiLineGNSSCalcService { int d341Count = d342Message.getMessageList().size(); if(msgTime!=null) logger.info("proc D342: "+msgTime+" D341 num: "+d341Count); - // 如果序号为0(有可能丢失,改为lastDate==null),则创建一条转发记录表 - //if(d342Message.getSeq() == 0 && d342Message.getProjectId()!=null){ - if(lastDate == null && d342Message.getProjectId()!=null){ - createFwdReord(d342Message); + // 如果序号为0(有可能丢失,改为lastDate==null且包含的d341数大于0),则认为是第一条补传记录 + if(lastDate == null && d341Count>0){ // 产生继续补传通知 beidouClient.onGnssUpload(deviceId,d342Message.getTenantId(), msgTime); GnssStatus gnssStatus = dataPersistService.getDeviceState(deviceId); @@ -55,8 +53,11 @@ public class MultiLineGNSSCalcService { gnssStatus.setState(GnssStatus.STATE_UPLOADING); dataPersistService.updateDeviceState(gnssStatus); } + // 生成推送记录 + createFwdReord(d342Message); } + // 一个周期数据的处理 if(lastDate != null){ if(d341Count == 0){//补传结束指示 // 计算上轮结果 @@ -102,7 +103,9 @@ public class MultiLineGNSSCalcService { void createFwdReord(D342LocationMessage d342Message){ String deviceId = d342Message.getId(); // 查找这个设备是否有项目号 - if(d342Message.getFwdId()==null || d342Message.getFwdId().equals(GnssGroupFwd.FWD_TYPE_NONE)) return; + if(d342Message.getFwdId()==null || + d342Message.getFwdId().length() ==0 || + d342Message.getFwdId().equals(GnssGroupFwd.FWD_TYPE_NONE)) return; FwdRecord fwdRecord = new FwdRecord(); fwdRecord.setDeviceid(deviceId);