新增5类 flop的航班动态信息处理类
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
package com.gzzn.omms.msgexchangeapi.msghandler.flop;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
|
||||
import com.gzzn.omms.msgexchangeapi.entity.Cminmsg;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.BRIDGEDATA;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.FLOP;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.MSG;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.OPTBRIDGEDATA;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD;
|
||||
import com.gzzn.omms.msgexchangeapi.msghandler.HandlerResult;
|
||||
import com.gzzn.omms.msgexchangeapi.msghandler.flop.base.FlopBaseHandler;
|
||||
import com.gzzn.omms.msgexchangeapi.utils.JsonUtil;
|
||||
|
||||
/**
|
||||
* 航班登机桥时间事件
|
||||
* @author fhc
|
||||
*
|
||||
*/
|
||||
public class ABTMHandler extends FlopBaseHandler {
|
||||
private static Logger logger = LoggerFactory.getLogger(ABTMHandler.class);
|
||||
|
||||
@Override
|
||||
public HandlerResult run(Cminmsg cminmsg) {
|
||||
MSG cldtMsg = exchangeService.xmlstrToObject(cminmsg.getCminmsgsClobMsg(), MSG.class);
|
||||
FLOP flop = cldtMsg.getFLOP().get(0);
|
||||
|
||||
List<OPTBRIDGEDATA> optBridgeDatas = flop.getABTM();
|
||||
if(optBridgeDatas.size()>1)
|
||||
{ //航班轮档时间事件 一个动态消息只能包含一个航班轮档时间数据记录
|
||||
logger.error("航班登机桥时间事件,只能包含一条登机桥靠桥/离桥操作记录:"+JsonUtil.getString(optBridgeDatas));
|
||||
return HandlerResult.failure();
|
||||
}else {
|
||||
SCHD.FLTR fltr = flightInfoService.getByFlid(flop.getFLID().toString());
|
||||
OPTBRIDGEDATA optBridgeData = optBridgeDatas.get(0);
|
||||
BRIDGEDATA bridgeData = new BRIDGEDATA();
|
||||
BeanUtils.copyProperties(optBridgeData, bridgeData);
|
||||
fltr.getABTM().clear();
|
||||
fltr.getABTM().add(bridgeData);
|
||||
return HandlerResult.success(fltr);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.gzzn.omms.msgexchangeapi.msghandler.flop;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
|
||||
import com.gzzn.omms.msgexchangeapi.entity.Cminmsg;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.CHOCKSDATA;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.FLOP;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.MSG;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.OPTCHOCKSDATA;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD;
|
||||
import com.gzzn.omms.msgexchangeapi.msghandler.HandlerResult;
|
||||
import com.gzzn.omms.msgexchangeapi.msghandler.flop.base.FlopBaseHandler;
|
||||
import com.gzzn.omms.msgexchangeapi.utils.JsonUtil;
|
||||
|
||||
/**
|
||||
* 航班轮档时间事件
|
||||
* @author fhc
|
||||
*
|
||||
*/
|
||||
public class CHOTHandler extends FlopBaseHandler {
|
||||
private static Logger logger = LoggerFactory.getLogger(CHOTHandler.class);
|
||||
|
||||
@Override
|
||||
public HandlerResult run(Cminmsg cminmsg) {
|
||||
MSG cldtMsg = exchangeService.xmlstrToObject(cminmsg.getCminmsgsClobMsg(), MSG.class);
|
||||
FLOP flop = cldtMsg.getFLOP().get(0);
|
||||
|
||||
List<OPTCHOCKSDATA> optChocksDatas = flop.getCHOT();
|
||||
if(optChocksDatas.size()>1)
|
||||
{ //航班轮档时间事件 一个动态消息只能包含一个航班轮档时间数据记录
|
||||
logger.error("航班轮档时间事件 一个动态消息只能包含一个航班轮档时间数据记录:"+JsonUtil.getString(optChocksDatas));
|
||||
return HandlerResult.failure();
|
||||
}else {
|
||||
SCHD.FLTR fltr = flightInfoService.getByFlid(flop.getFLID().toString());
|
||||
OPTCHOCKSDATA optChocksData = optChocksDatas.get(0);
|
||||
CHOCKSDATA chocksData = new CHOCKSDATA();
|
||||
BeanUtils.copyProperties(optChocksData, chocksData);
|
||||
fltr.getCHOT().clear();
|
||||
fltr.getCHOT().add(chocksData);
|
||||
return HandlerResult.success(fltr);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
package com.gzzn.omms.msgexchangeapi.msghandler.flop;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.gzzn.omms.msgexchangeapi.entity.Cminmsg;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.BELTDATA;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.CLASSES;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.FLBGDATA;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.FLBTCODES;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.FLOP;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.MSG;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.SUBSYSTEMS;
|
||||
import com.gzzn.omms.msgexchangeapi.msghandler.HandlerResult;
|
||||
import com.gzzn.omms.msgexchangeapi.msghandler.flop.base.FlopBaseHandler;
|
||||
import com.gzzn.omms.msgexchangeapi.utils.JsonUtil;
|
||||
|
||||
/**
|
||||
* 首行李/末行李事件
|
||||
* @author fhc
|
||||
*
|
||||
*/
|
||||
public class FLBGHandler extends FlopBaseHandler {
|
||||
private static Logger logger = LoggerFactory.getLogger(FLBGHandler.class);
|
||||
|
||||
@Override
|
||||
public HandlerResult run(Cminmsg cminmsg) {
|
||||
MSG cldtMsg = exchangeService.xmlstrToObject(cminmsg.getCminmsgsClobMsg(), MSG.class);
|
||||
if(!cldtMsg.getMETA().getSNDR().value().equals(SUBSYSTEMS.AODB)){
|
||||
logger.error("只发送AODB分配的行李转盘数据,需进行手动处理/更正后发生数据。");
|
||||
return HandlerResult.failure();
|
||||
}
|
||||
|
||||
FLOP flop = cldtMsg.getFLOP().get(0);
|
||||
List<FLBGDATA> flbgDatas = flop.getFLBG();
|
||||
if(flbgDatas.size()>1)
|
||||
{ // 首行李/末行李事件,一个动态消息只能包含一个行李事件数据记录
|
||||
logger.error("首行李/末行李事件,一个动态消息只能包含一个行李事件数据记录:"+JsonUtil.getString(flbgDatas));
|
||||
return HandlerResult.failure();
|
||||
}else {
|
||||
SCHD.FLTR fltr = flightInfoService.getByFlid(flop.getFLID().toString());
|
||||
FLBGDATA flbgData = flbgDatas.get(0);
|
||||
String optBlst = flbgData.getBLST(); //到达航班的行李传送带号
|
||||
CLASSES optBcls = flbgData.getBCLS(); //行李转盘等级 F:头等 C:商务 Y:经济 X:全部
|
||||
List<BELTDATA> beltDatas = fltr.getCLDT();
|
||||
|
||||
for(BELTDATA beltData : beltDatas){
|
||||
//找到计划中 行李传送带号一致 且等级一致的行李转盘
|
||||
if(beltData.getBELT().equals(optBlst) && optBcls.compareTo(beltData.getBCLS())==0){
|
||||
if(flbgData.getFLBT().getTYPE().value().equals(FLBTCODES.F)){ //首件行李
|
||||
beltData.setFBAG(flbgData.getFLBT().getValue());
|
||||
}
|
||||
if(flbgData.getFLBT().getTYPE().value().equals(FLBTCODES.L)){ //末件行李
|
||||
beltData.setLBAG(flbgData.getFLBT().getValue());
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return HandlerResult.success(fltr);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.gzzn.omms.msgexchangeapi.msghandler.flop;
|
||||
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.FLOP;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD;
|
||||
import com.gzzn.omms.msgexchangeapi.msghandler.flop.base.FlopBaseHandler;
|
||||
|
||||
/**
|
||||
* 航班返回时间
|
||||
* @author fhc
|
||||
*
|
||||
*/
|
||||
public class FRETHandler extends FlopBaseHandler {
|
||||
|
||||
@Override
|
||||
protected SCHD.FLTR updateFltr(FLOP flop,SCHD.FLTR fltr)
|
||||
{
|
||||
fltr.setFRET(flop.getFRET());
|
||||
return fltr;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.gzzn.omms.msgexchangeapi.msghandler.flop;
|
||||
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.FLOP;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD;
|
||||
import com.gzzn.omms.msgexchangeapi.msghandler.flop.base.FlopBaseHandler;
|
||||
|
||||
/**
|
||||
* 航班注册号事件
|
||||
* @author fhc
|
||||
*
|
||||
*/
|
||||
public class RENOHandler extends FlopBaseHandler {
|
||||
|
||||
@Override
|
||||
protected SCHD.FLTR updateFltr(FLOP flop,SCHD.FLTR fltr)
|
||||
{
|
||||
fltr.setRENO(flop.getRENO());
|
||||
return fltr;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user