1、优化对补传结束的判断
This commit is contained in:
parent
f609aa3518
commit
f037aea4cd
@ -38,13 +38,14 @@ public class MultiLineGNSSCalcService {
|
|||||||
public void calc(D342LocationMessage d342Message){
|
public void calc(D342LocationMessage d342Message){
|
||||||
// 如果时间跨度大于1分钟,或者不含d341,则计算平滑值
|
// 如果时间跨度大于1分钟,或者不含d341,则计算平滑值
|
||||||
String deviceId = d342Message.getId();
|
String deviceId = d342Message.getId();
|
||||||
LocalDateTime msgTime = d342Message.getOriginalTime();
|
|
||||||
LocalDateTime lastDate = deviceMap.get(deviceId);
|
LocalDateTime lastDate = deviceMap.get(deviceId);
|
||||||
|
LocalDateTime msgTime = d342Message.getOriginalTime();
|
||||||
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,则创建一条转发记录表
|
// 如果序号为0(有可能丢失,改为lastDate==null),则创建一条转发记录表
|
||||||
if(d342Message.getSeq() == 0 && d342Message.getProjectId()!=null){
|
//if(d342Message.getSeq() == 0 && d342Message.getProjectId()!=null){
|
||||||
|
if(lastDate == null && d342Message.getProjectId()!=null){
|
||||||
createFwdReord(d342Message);
|
createFwdReord(d342Message);
|
||||||
// 产生继续补传通知
|
// 产生继续补传通知
|
||||||
beidouClient.onGnssUpload(deviceId,d342Message.getTenantId(), msgTime);
|
beidouClient.onGnssUpload(deviceId,d342Message.getTenantId(), msgTime);
|
||||||
@ -57,7 +58,7 @@ public class MultiLineGNSSCalcService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(lastDate != null){
|
if(lastDate != null){
|
||||||
if(d341Count == 0){
|
if(d341Count == 0){//补传结束指示
|
||||||
// 计算上轮结果
|
// 计算上轮结果
|
||||||
calcService.calSingleDone(deviceId, d342Message.getTenantId(),lastDate);
|
calcService.calSingleDone(deviceId, d342Message.getTenantId(),lastDate);
|
||||||
// 重算最近的
|
// 重算最近的
|
||||||
@ -85,7 +86,7 @@ public class MultiLineGNSSCalcService {
|
|||||||
|
|
||||||
// 记录最新补传数据的时间
|
// 记录最新补传数据的时间
|
||||||
if(d341Count>0) deviceMap.put(deviceId, msgTime);
|
if(d341Count>0) deviceMap.put(deviceId, msgTime);
|
||||||
else{
|
else if(deviceMap.get(deviceId)!=null){
|
||||||
// 补传完成
|
// 补传完成
|
||||||
deviceMap.remove(deviceId);
|
deviceMap.remove(deviceId);
|
||||||
beidouClient.onGnssUploadComplete(deviceId,d342Message.getTenantId());
|
beidouClient.onGnssUploadComplete(deviceId,d342Message.getTenantId());
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user