1、中南院数据修复

This commit is contained in:
weidong 2024-02-12 09:24:21 +08:00
parent 64155d8293
commit 552338e082
2 changed files with 46 additions and 0 deletions

View File

@ -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<GnssStatus> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("tenantid",tenantId);
queryWrapper.eq("state",0);
List<GnssStatus> statusList = gnssStatusMapper.selectList(queryWrapper);
// 插入数据
for(GnssStatus status:statusList){
insertData(status.getDeviceid(),status.getTenantid());
}
}
void insertData(String deviceId, Integer tenantId){
//查询最后一条记录
QueryWrapper<GnssCalcData> 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);
}
}
}

View File

@ -41,6 +41,7 @@ public class ZNYForwarder extends Forwarder{
@Scheduled(cron = "0 0/30 * * * ?") // 每30分钟执行一次
private void forwardGnss() {
logger.info("zny forwardGnss");
checkOfflineDevice();
forwardCurrentGnss();
}