From c6c9f0a4f8a0d57f188c3db8d10c001288004d92 Mon Sep 17 00:00:00 2001 From: zhouxiunai <154707516@qq.com> Date: Tue, 15 Jan 2019 19:32:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=BB=E8=88=AA=E7=8F=AD?= =?UTF-8?q?=E7=9A=84=E5=85=B1=E4=BA=AB=E8=88=AA=E7=8F=AD=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../msgexchangeapi/entity/msg/MAFLDATA.java | 39 +++++++++++++++++++ .../omms/msgexchangeapi/entity/msg/SCHD.java | 18 ++++++++- .../msghandler/flop/FDELHandler.java | 4 ++ .../flightInfo/FlightInfoServiceImpl.java | 34 +++++++++++++++- .../msghandler/schd/DNLDHandlerTest.java | 3 +- 5 files changed, 94 insertions(+), 4 deletions(-) create mode 100644 src/main/java/com/gzzn/omms/msgexchangeapi/entity/msg/MAFLDATA.java diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/entity/msg/MAFLDATA.java b/src/main/java/com/gzzn/omms/msgexchangeapi/entity/msg/MAFLDATA.java new file mode 100644 index 00000000..980823e0 --- /dev/null +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/entity/msg/MAFLDATA.java @@ -0,0 +1,39 @@ +package com.gzzn.omms.msgexchangeapi.entity.msg; + +import java.math.BigInteger; + +import javax.xml.bind.annotation.XmlElement; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import io.swagger.annotations.ApiModelProperty; + +public class MAFLDATA { + + @ApiModelProperty(value="航班id") + @XmlElement(name = "FLID", required = true) + @JsonProperty("FLID") + protected BigInteger flid;//航班id + + @ApiModelProperty(value="航班号 ") + @XmlElement(name = "FLNO", required = true) + @JsonProperty("FLNO") + protected String flno;//flight number 航班号 + + public BigInteger getFlid() { + return flid; + } + + public void setFlid(BigInteger flid) { + this.flid = flid; + } + + public String getFlno() { + return flno; + } + + public void setFlno(String flno) { + this.flno = flno; + } + +} 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 3fba4284..3c93aa7b 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 @@ -360,7 +360,7 @@ public class SCHD @JsonProperty("FLTY") protected String flty;//航班类型如客机、货机、军用、VIP等 - @ApiModelProperty(value="Flight indicator 航班标识 ") + @ApiModelProperty(value="Flight indicator 航班标识,D 国内 I 国际 M 混合 ") @XmlElement(name = "FLIN", required = true) @JsonProperty("FLIN") @XmlSchemaType(name = "string") @@ -633,6 +633,11 @@ public class SCHD @JsonProperty("ABN") protected List abn;//abnormal 异常状态信息列表,DLY,RTN,CAN,ALT + @ApiModelProperty(value="共享航班数据信息") + @XmlElement(name = "MAFL") + @JsonProperty("MAFL") + protected List mafl;//共享航班数据信息 + /** * 获取flid属性的值。 * @@ -2135,6 +2140,17 @@ public class SCHD public void setAbn(List abn) { this.abn = abn; } + + public List getMafl() { + if (null == mafl) { + mafl = new ArrayList(); + } + return mafl; + } + + public void setMafl(List mafl) { + this.mafl = mafl; + } } } diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/FDELHandler.java b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/FDELHandler.java index 9af9bd08..b2dcb154 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/FDELHandler.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/FDELHandler.java @@ -31,6 +31,10 @@ public class FDELHandler extends FlopBaseHandler { // flightInfoService.deleteFltr(fltr); + + //TODO: 如果是共享航班,更新对应的主航班共享航班列表。从主航班中删除 + + //send and update this.sendMsg(cminmsg); //只发送删除消息,前端自行物理删除动态航班信息 this.updateCminmsgToProcessed(cminmsg); diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/service/flightInfo/FlightInfoServiceImpl.java b/src/main/java/com/gzzn/omms/msgexchangeapi/service/flightInfo/FlightInfoServiceImpl.java index b09506a3..2913ff31 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/service/flightInfo/FlightInfoServiceImpl.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/service/flightInfo/FlightInfoServiceImpl.java @@ -7,10 +7,13 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; 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.MAFLDATA; import com.gzzn.omms.msgexchangeapi.entity.msg.MSG; import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD; import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD.FLTR; @@ -18,9 +21,11 @@ import com.gzzn.omms.msgexchangeapi.msghandler.MsgHandlerDispatcher; import com.gzzn.omms.msgexchangeapi.redis.RedisService; import com.gzzn.omms.msgexchangeapi.service.exchange.IExchangeService; + @Service("flightInfoService") public class FlightInfoServiceImpl implements IFlightInfoService { private static final String redisKey="flightInfo"; + Logger logger = LoggerFactory.getLogger(FlightInfoServiceImpl.class); @Autowired RedisService redisService; @@ -40,11 +45,38 @@ public class FlightInfoServiceImpl implements IFlightInfoService { .getSCHD() .getFLTR(); - Map mapFltr = new HashMap(); + + //建立Map索引,便于查找 + Map 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); + } + + + //保存到redis return redisService.hmset(redisKey, mapFltr); } //end function diff --git a/src/test/java/com/gzzn/omms/msgexchangeapi/msghandler/schd/DNLDHandlerTest.java b/src/test/java/com/gzzn/omms/msgexchangeapi/msghandler/schd/DNLDHandlerTest.java index 0058b24a..b1ceb5ce 100644 --- a/src/test/java/com/gzzn/omms/msgexchangeapi/msghandler/schd/DNLDHandlerTest.java +++ b/src/test/java/com/gzzn/omms/msgexchangeapi/msghandler/schd/DNLDHandlerTest.java @@ -10,7 +10,6 @@ import com.gzzn.omms.msgexchangeapi.dao.CminmsgDao; import com.gzzn.omms.msgexchangeapi.entity.Cminmsg; import com.gzzn.omms.msgexchangeapi.entity.CminmsgWapper; import com.gzzn.omms.msgexchangeapi.msghandler.HandlerResult; -import com.gzzn.omms.msgexchangeapi.msghandler.flop.LACLHandler; import com.gzzn.omms.msgexchangeapi.service.exchange.IExchangeService; import com.gzzn.omms.msgexchangeapi.utils.JsonUtil; @@ -27,7 +26,7 @@ public class DNLDHandlerTest { @Test public void testRun() { - Cminmsg cminmsg = cminmsgDao.findOne(82463L); + Cminmsg cminmsg = cminmsgDao.findOne(233338L); CminmsgWapper cminmsgWapper = new CminmsgWapper(cminmsg); cminmsgWapper.setMsg(exchangeService.xmlToMsg(cminmsg.getCminmsgsClobMsg()));