1、优化对补传结束的判断

This commit is contained in:
weidong 2024-01-09 18:19:48 +08:00
parent f037aea4cd
commit 73eebcd493

View File

@ -43,10 +43,8 @@ public class MultiLineGNSSCalcService {
int d341Count = d342Message.getMessageList().size(); int d341Count = d342Message.getMessageList().size();
if(msgTime!=null) logger.info("proc D342: "+msgTime+" D341 num: "+d341Count); if(msgTime!=null) logger.info("proc D342: "+msgTime+" D341 num: "+d341Count);
// 如果序号为0有可能丢失改为lastDate==null则创建一条转发记录表 // 如果序号为0有可能丢失改为lastDate==null且包含的d341数大于0则认为是第一条补传记录
//if(d342Message.getSeq() == 0 && d342Message.getProjectId()!=null){ if(lastDate == null && d341Count>0){
if(lastDate == null && d342Message.getProjectId()!=null){
createFwdReord(d342Message);
// 产生继续补传通知 // 产生继续补传通知
beidouClient.onGnssUpload(deviceId,d342Message.getTenantId(), msgTime); beidouClient.onGnssUpload(deviceId,d342Message.getTenantId(), msgTime);
GnssStatus gnssStatus = dataPersistService.getDeviceState(deviceId); GnssStatus gnssStatus = dataPersistService.getDeviceState(deviceId);
@ -55,8 +53,11 @@ public class MultiLineGNSSCalcService {
gnssStatus.setState(GnssStatus.STATE_UPLOADING); gnssStatus.setState(GnssStatus.STATE_UPLOADING);
dataPersistService.updateDeviceState(gnssStatus); dataPersistService.updateDeviceState(gnssStatus);
} }
// 生成推送记录
createFwdReord(d342Message);
} }
// 一个周期数据的处理
if(lastDate != null){ if(lastDate != null){
if(d341Count == 0){//补传结束指示 if(d341Count == 0){//补传结束指示
// 计算上轮结果 // 计算上轮结果
@ -102,7 +103,9 @@ public class MultiLineGNSSCalcService {
void createFwdReord(D342LocationMessage d342Message){ void createFwdReord(D342LocationMessage d342Message){
String deviceId = d342Message.getId(); 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 fwdRecord = new FwdRecord();
fwdRecord.setDeviceid(deviceId); fwdRecord.setDeviceid(deviceId);