添加主航班的共享航班信息

This commit is contained in:
zhouxiunai
2019-01-15 19:32:52 +08:00
parent dd6070be82
commit c6c9f0a4f8
5 changed files with 94 additions and 4 deletions
@@ -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;
}
}
@@ -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<ABNDATA> abn;//abnormal 异常状态信息列表,DLY,RTN,CAN,ALT
@ApiModelProperty(value="共享航班数据信息")
@XmlElement(name = "MAFL")
@JsonProperty("MAFL")
protected List<MAFLDATA> mafl;//共享航班数据信息
/**
* 获取flid属性的值。
*
@@ -2135,6 +2140,17 @@ public class SCHD
public void setAbn(List<ABNDATA> abn) {
this.abn = abn;
}
public List<MAFLDATA> getMafl() {
if (null == mafl) {
mafl = new ArrayList<MAFLDATA>();
}
return mafl;
}
public void setMafl(List<MAFLDATA> mafl) {
this.mafl = mafl;
}
}
}
@@ -31,6 +31,10 @@ public class FDELHandler extends FlopBaseHandler {
//
flightInfoService.deleteFltr(fltr);
//TODO: 如果是共享航班,更新对应的主航班共享航班列表。从主航班中删除
//send and update
this.sendMsg(cminmsg); //只发送删除消息,前端自行物理删除动态航班信息
this.updateCminmsgToProcessed(cminmsg);
@@ -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<String, Object> mapFltr = new HashMap();
//建立Map索引,便于查找
Map<String, Object> 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
@@ -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()));