完善更新日航班计划的同时更新登机桥信息

This commit is contained in:
zhouxiunai
2019-02-26 12:01:14 +08:00
parent 2166556f49
commit 86875c2003
2 changed files with 98 additions and 27 deletions
@@ -13,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.gzzn.omms.msgexchangeapi.entity.CminmsgWapper;
import com.gzzn.omms.msgexchangeapi.entity.msg.BRIDGEDATA;
import com.gzzn.omms.msgexchangeapi.entity.msg.MAFLDATA;
import com.gzzn.omms.msgexchangeapi.entity.msg.MSG;
import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD;
@@ -45,38 +46,16 @@ public class FlightInfoServiceImpl implements IFlightInfoService {
.getSCHD()
.getFLTR();
List<SCHD.FLTR> lsFltrWithMa = this.updateMafltr(lsFltr); //重组主航班字段
List<SCHD.FLTR> lsFltrWithBridge = this.updatefltrBridge(lsFltr);//重组登机桥字段
//建立Map索引,便于查找
//拼装为hashmap,保存到redis
Map<String, Object> mapFltr = new HashMap();
for(FLTR fltr : lsFltr)
for(FLTR fltr : lsFltrWithBridge)
{
mapFltr.put(fltr.getFLID().toString(), fltr);
}
//设置主航班的共享航班信息
for(FLTR fltr : lsFltr)
{
if(fltr.getMAID() == null)
{
continue; //不是共享航班
}
String maid = fltr.getMAID().toString();
FLTR fltrMa = (FLTR) mapFltr.get(maid);
if(null == fltrMa)
{
logger.error("共享航班:{},未找到航班id为:{}的主航班信息{}",fltr.getFLID(),maid);
continue;
}
MAFLDATA mafldata = new MAFLDATA();
mafldata.setFlid(fltr.getFLID());
mafldata.setFlno(fltr.getFLNO());
fltrMa.getMafl().add(mafldata);
}
//保存到redis
return redisService.hmset(redisKey, mapFltr);
} //end function
@@ -128,4 +107,73 @@ public class FlightInfoServiceImpl implements IFlightInfoService {
redisService.hdel(redisKey, flids.toArray());
return true;
}
/**
* 更新主航班信息字段
*/
private List<SCHD.FLTR> updateMafltr(List<SCHD.FLTR> lsFltr)
{
//建立Map索引,便于查找
Map<String, Object> mapFltr = new HashMap();
for(FLTR fltr : lsFltr)
{
mapFltr.put(fltr.getFLID().toString(), fltr);
}
//设置主航班的共享航班信息
for(FLTR fltr : lsFltr)
{
if(fltr.getMAID() == null)
{
continue; //不是共享航班
}
String maid = fltr.getMAID().toString();
FLTR fltrMa = (FLTR) mapFltr.get(maid);
if(null == fltrMa)
{
logger.error("共享航班:{},未找到航班id为:{}的主航班信息{}",fltr.getFLID(),maid);
continue;
}
MAFLDATA mafldata = new MAFLDATA();
mafldata.setFlid(fltr.getFLID());
mafldata.setFlno(fltr.getFLNO());
fltrMa.getMafl().add(mafldata);
}
return lsFltr;
} //end function
/**
* 登机桥信息重组
* @return
*/
private List<SCHD.FLTR> updatefltrBridge(List<SCHD.FLTR> lsFltr)
{
//建立Map索引,便于查找
Map<String, Object> mapFltr = new HashMap();
for(FLTR fltr : lsFltr)
{
mapFltr.put(fltr.getFLID().toString(), fltr);
}
//设置主航班的共享航班信息
for(FLTR fltr : lsFltr)
{
List<BRIDGEDATA> lsBridgedata = fltr.getABTM();
StringBuffer abdgBuffer = new StringBuffer();
lsBridgedata.forEach(node->{
abdgBuffer.append(node.getABDG());
});
if(abdgBuffer.toString().endsWith(","))
{
abdgBuffer.deleteCharAt(abdgBuffer.length() - 1);
}
fltr.setAbdg(abdgBuffer.toString());
}
return lsFltr;
} //end function
}