diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/entity/msg/ABNDATA.java b/src/main/java/com/gzzn/omms/msgexchangeapi/entity/msg/ABNDATA.java index 3830bfe0..cb0de41f 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/entity/msg/ABNDATA.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/entity/msg/ABNDATA.java @@ -7,9 +7,25 @@ import com.fasterxml.jackson.annotation.JsonProperty; public class ABNDATA { @XmlElement(name = "TYPE", required = true) @JsonProperty("TYPE") - protected String type; + protected ABNORMALTYPE type; @XmlElement(name = "BODY") @JsonProperty("BODY") protected String body;//json 串或普通字符串,每个type一种 + + public ABNORMALTYPE getType() { + return type; + } + + public void setType(ABNORMALTYPE type) { + this.type = type; + } + + public String getBody() { + return body; + } + + public void setBody(String body) { + this.body = body; + } } diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/entity/msg/ABNORMALTYPE.java b/src/main/java/com/gzzn/omms/msgexchangeapi/entity/msg/ABNORMALTYPE.java new file mode 100644 index 00000000..d6ca4ae7 --- /dev/null +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/entity/msg/ABNORMALTYPE.java @@ -0,0 +1,21 @@ +package com.gzzn.omms.msgexchangeapi.entity.msg; + +/** + * 异常状态类型 + * @author 航班异常状态类型 + * + */ +public enum ABNORMALTYPE { + DLY, + CAN, + RTN, + ALT; + + public String value() { + return name(); + } + + public static ABNORMALTYPE fromValue(String v) { + return valueOf(v); + } +} diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/entity/msg/SCHD.java b/src/main/java/com/gzzn/omms/msgexchangeapi/entity/msg/SCHD.java index dd54eb23..6340e0dd 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/entity/msg/SCHD.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/entity/msg/SCHD.java @@ -2063,6 +2063,16 @@ public class SCHD this.lreno = lreno; } + public List getAbn() { + if (abn == null) { + abn = new ArrayList(); + } + return abn; + } + + public void setAbn(List abn) { + this.abn = abn; + } } } diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/DELYHandler.java b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/DELYHandler.java index 7c8237e6..fae34f9f 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/DELYHandler.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/DELYHandler.java @@ -1,13 +1,16 @@ package com.gzzn.omms.msgexchangeapi.msghandler.flop; import org.springframework.beans.BeanUtils; -import org.springframework.util.CollectionUtils; +import org.springframework.util.StringUtils; +import com.gzzn.omms.msgexchangeapi.entity.msg.ABNDATA; +import com.gzzn.omms.msgexchangeapi.entity.msg.ABNORMALTYPE; import com.gzzn.omms.msgexchangeapi.entity.msg.DELAYDATA; import com.gzzn.omms.msgexchangeapi.entity.msg.FLOP; import com.gzzn.omms.msgexchangeapi.entity.msg.OPTDELAYDATA; import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD; import com.gzzn.omms.msgexchangeapi.msghandler.flop.base.FlopBaseHandler; +import com.gzzn.omms.msgexchangeapi.utils.JsonUtil; /** * 航班延误消息处理 @@ -19,24 +22,68 @@ public class DELYHandler extends FlopBaseHandler { @Override protected SCHD.FLTR updateFltr(FLOP flop,SCHD.FLTR fltr) { - //update - if(CollectionUtils.isEmpty(flop.getDELY()) ) + //清空上次旧的航班延误信息 + fltr.getDELY().clear(); + + //空标签,取消航班延误状态 + if(flop.getDELY().size() == 1 + && StringUtils.isEmpty(flop.getDELY().get(0).getCODE()) + ) { - //清空延误信息 - fltr.getDELY().clear(); - } - else { - //延误信息只新增 - for (OPTDELAYDATA optdelaydata : flop.getDELY() ) { - - DELAYDATA delaydata = new DELAYDATA(); - BeanUtils.copyProperties(optdelaydata, delaydata); - - fltr.getDELY().add(delaydata); - } + //清空航班异常信息中的延误信息 + fltr = clearDelyInfo(fltr); + return fltr; } + //更新延误信息 + for (OPTDELAYDATA optdelaydata : flop.getDELY() ) { + DELAYDATA delaydata = new DELAYDATA(); + BeanUtils.copyProperties(optdelaydata, delaydata); + + fltr.getDELY().add(delaydata); + } + + //更新航班异常信息,先清空旧的再加入新的 + for(int i=0;i