重构优化登机桥消息处理

This commit is contained in:
zhouxiunai
2019-01-25 17:52:58 +08:00
parent 5d96d4f2b6
commit 1fcfd7fab7
2 changed files with 114 additions and 25 deletions
@@ -561,6 +561,13 @@ public class SCHD
@JsonProperty("ABTM")
protected List<BRIDGEDATA> abtm;//Air bridge time 登机桥时间数据
@ApiModelProperty(value="登机桥数据,逗号分隔")
@XmlElement(name = "ABDG")
@JsonProperty("ABDG")
protected String abdg;//登机桥数据,逗号分隔
@ApiModelProperty(value="flights landing has been aborted.航班着陆中止原因的描述")
@XmlElement(name = "FLAB")
@JsonProperty("FLAB")
@@ -2151,6 +2158,14 @@ public class SCHD
public void setMafl(List<MAFLDATA> mafl) {
this.mafl = mafl;
}
public String getAbdg() {
return abdg;
}
public void setAbdg(String abdg) {
this.abdg = abdg;
}
}
}
@@ -1,5 +1,7 @@
package com.gzzn.omms.msgexchangeapi.msghandler.flop;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
@@ -31,36 +33,108 @@ public class ABTMHandler extends FlopBaseHandler{
//
OPTBRIDGEDATA optbridgedata = flop.getABTM().get(0);
//更新对应的撤桥或者靠桥数据,没有则新增
Boolean updated = false;
for(int i = 0; i < fltr.getABTM().size(); i++)
{
BRIDGEDATA bridgedata = fltr.getABTM().get(i);
if(bridgedata.getABOP().equals(optbridgedata.getABOP()))
{
if(StringUtils.isEmpty(optbridgedata.getAOTM()))
{
//撤销靠桥或撤桥
fltr.getABTM().remove(i);
}
else {
BeanUtils.copyProperties(optbridgedata, bridgedata);
}
updated = true;
break;
}
}//end for
BRIDGEDATA bridgedata = getElement(fltr.getABTM(),optbridgedata.getABOP());
//
if(updated == false)
if(null == bridgedata)
{
BRIDGEDATA data = new BRIDGEDATA();
BeanUtils.copyProperties(optbridgedata, data);
fltr.getABTM().add(data);
//新增
bridgedata = new BRIDGEDATA();
BeanUtils.copyProperties(optbridgedata, bridgedata);
fltr.getABTM().add(bridgedata);
}
else {
//更新
bridgedata.setAOTM(optbridgedata.getAOTM());
}
return fltr;
}
/**
*
*/
private BRIDGEDATA getElement(List<BRIDGEDATA> abtms,String action)
{
for(BRIDGEDATA bridgedata : abtms)
{
if(bridgedata.getABOP().equals(action))
{
return bridgedata;
}
}//end for
return null;
}//end function
/**
* 是否撤桥动作
* @param optbridgedata 操作数据封装
* @return
*/
private Boolean isDetach(OPTBRIDGEDATA optbridgedata)
{
if(optbridgedata.getABOP().equals("D")
&& !StringUtils.isEmpty(optbridgedata.getAOTM()))
{
return true;
}
return false;
} //end function
/**
* 是否靠桥动作
* @param optbridgedata
* @return
*/
private Boolean isAttach(OPTBRIDGEDATA optbridgedata)
{
if(optbridgedata.getABOP().equals("A")
&& !StringUtils.isEmpty(optbridgedata.getAOTM()))
{
return true;
}
return false;
} //end function
/**
* 是否取消撤桥动作
* @param optbridgedata 操作数据封装
* @return
*/
private Boolean isCancelDetach(OPTBRIDGEDATA optbridgedata)
{
if(optbridgedata.getABOP().equals("D")
&& StringUtils.isEmpty(optbridgedata.getAOTM()))
{
return true;
}
return false;
} //end function
/**
* 是否取消靠桥动作
* @param optbridgedata
* @return
*/
private Boolean isCancelAttach(OPTBRIDGEDATA optbridgedata)
{
if(optbridgedata.getABOP().equals("A")
&& StringUtils.isEmpty(optbridgedata.getAOTM()))
{
return true;
}
return false;
} //end function
}