From 22f10ef7a2b211db8ca5c80f673127aad03ca2ad Mon Sep 17 00:00:00 2001 From: zhouxiunai <154707516@qq.com> Date: Tue, 15 Jan 2019 15:40:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=88=AA=E7=8F=AD=E5=BB=B6?= =?UTF-8?q?=E8=AF=AF=E7=9A=84=E5=A4=84=E7=90=86=EF=BC=8C=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=88=AA=E7=8F=AD=E5=BB=B6=E8=AF=AF=E5=A2=9E=E5=8A=A0=E8=88=AA?= =?UTF-8?q?=E7=8F=AD=E5=BC=82=E5=B8=B8=E4=BF=A1=E6=81=AF=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../msgexchangeapi/entity/msg/ABNDATA.java | 18 ++++- .../entity/msg/ABNORMALTYPE.java | 21 +++++ .../omms/msgexchangeapi/entity/msg/SCHD.java | 10 +++ .../msghandler/flop/DELYHandler.java | 79 +++++++++++++++---- .../msghandler/flop/DELYHandlerTest.java | 38 +++++++++ 5 files changed, 149 insertions(+), 17 deletions(-) create mode 100644 src/main/java/com/gzzn/omms/msgexchangeapi/entity/msg/ABNORMALTYPE.java create mode 100644 src/test/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/DELYHandlerTest.java 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