diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/entity/CminmsgWapper.java b/src/main/java/com/gzzn/omms/msgexchangeapi/entity/CminmsgWapper.java new file mode 100644 index 00000000..85f605b7 --- /dev/null +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/entity/CminmsgWapper.java @@ -0,0 +1,32 @@ +package com.gzzn.omms.msgexchangeapi.entity; + +import org.springframework.beans.BeanUtils; + +import com.gzzn.omms.msgexchangeapi.entity.msg.MSG; + +/** + * Cminmsg 消息的封装,加入cminmsgsClobMsg 转换成 MSG 后的字段,避免不断的进行转换 + * @author zhouxiunai + * + */ +public class CminmsgWapper extends Cminmsg{ + + /** + * 从Cminmsg构造封装 + * @param cminmsg + */ + public CminmsgWapper(Cminmsg cminmsg) + { + BeanUtils.copyProperties(cminmsg, this); + } + + private MSG msg; //附加的字段 + + public MSG getMsg() { + return msg; + } + + public void setMsg(MSG msg) { + this.msg = msg; + } +} diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/IBaseHandler.java b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/IBaseHandler.java index 05f0d502..b4d8e747 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/IBaseHandler.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/IBaseHandler.java @@ -1,7 +1,7 @@ package com.gzzn.omms.msgexchangeapi.msghandler; -import com.gzzn.omms.msgexchangeapi.entity.Cminmsg; +import com.gzzn.omms.msgexchangeapi.entity.CminmsgWapper; public interface IBaseHandler { - public HandlerResult run(Cminmsg cminmsg); + public HandlerResult run(CminmsgWapper cminmsg); } diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/MsgHandlerDispatcher.java b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/MsgHandlerDispatcher.java index 8d66afc7..1717acaa 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/MsgHandlerDispatcher.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/MsgHandlerDispatcher.java @@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.gzzn.omms.msgexchangeapi.entity.Cminmsg; +import com.gzzn.omms.msgexchangeapi.entity.CminmsgWapper; import com.gzzn.omms.msgexchangeapi.entity.msg.MSG; import com.gzzn.omms.msgexchangeapi.service.ICminmsgService; import com.gzzn.omms.msgexchangeapi.service.exchange.IExchangeService; @@ -27,13 +28,18 @@ public class MsgHandlerDispatcher { { try { + // MSG msg = exchangeService.xmlToMsg(cminmsg.getCminmsgsClobMsg()); + CminmsgWapper cminmsgWapper = new CminmsgWapper(cminmsg); + cminmsgWapper.setMsg(msg); + + String type = msg.getMETA().getTYPE().name(); String subType = msg.getMETA().getSTYP().name(); Class clazzHandler = Class.forName(getHandlerClassName(type,subType)); Object classObject = clazzHandler.newInstance(); - Method runMethod = clazzHandler.getMethod("run", Cminmsg.class); + Method runMethod = clazzHandler.getMethod("run", CminmsgWapper.class); HandlerResult result = (HandlerResult) runMethod.invoke(classObject, cminmsg); return result; } catch (Exception e) { 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 876edcc9..d78a0b2e 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 @@ -3,7 +3,7 @@ package com.gzzn.omms.msgexchangeapi.msghandler.flop; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.gzzn.omms.msgexchangeapi.entity.Cminmsg; +import com.gzzn.omms.msgexchangeapi.entity.CminmsgWapper; import com.gzzn.omms.msgexchangeapi.entity.msg.FLOP; import com.gzzn.omms.msgexchangeapi.entity.msg.MSG; import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD; @@ -19,8 +19,8 @@ public class FDELHandler extends FlopBaseHandler { private static Logger logger = LoggerFactory.getLogger(FDELHandler.class); @Override - public HandlerResult run(Cminmsg cminmsg) { - MSG msg = exchangeService.xmlToMsg(cminmsg.getCminmsgsClobMsg()); + public HandlerResult run(CminmsgWapper cminmsg) { + MSG msg = cminmsg.getMsg(); FLOP flop = msg.getFLOP(); diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/base/FlopBaseHandler.java b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/base/FlopBaseHandler.java index e49fd488..362bb600 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/base/FlopBaseHandler.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/base/FlopBaseHandler.java @@ -6,6 +6,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.gzzn.omms.msgexchangeapi.entity.Cminmsg; +import com.gzzn.omms.msgexchangeapi.entity.CminmsgWapper; import com.gzzn.omms.msgexchangeapi.entity.msg.FLOP; import com.gzzn.omms.msgexchangeapi.entity.msg.MSG; import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD; @@ -44,8 +45,8 @@ public class FlopBaseHandler implements IBaseHandler { @Override - public HandlerResult run(Cminmsg cminmsg) { - MSG msg = exchangeService.xmlToMsg(cminmsg.getCminmsgsClobMsg()); + public HandlerResult run(CminmsgWapper cminmsg) { + MSG msg = cminmsg.getMsg(); FLOP flop = msg.getFLOP(); @@ -89,16 +90,14 @@ public class FlopBaseHandler implements IBaseHandler { * @param fltr * @param cminmsg */ - protected void sendFltrAndMsg(SCHD.FLTR fltr,Cminmsg cminmsg) + protected void sendFltrAndMsg(SCHD.FLTR fltr,CminmsgWapper cminmsg) { //send schd String schdMsg = JsonUtil.getString(fltr); kafkaservice.msgSend("schd", schdMsg); //send msg - String msg = exchangeService.xmlMsgToJsonMsg( - cminmsg.getCminmsgsClobMsg() - ); + String msg = exchangeService.msgToJson(cminmsg.getMsg()); kafkaservice.msgSend("msg", msg); } @@ -107,12 +106,10 @@ public class FlopBaseHandler implements IBaseHandler { * 仅发送动态消息 * @param cminmsg */ - protected void sendMsg(Cminmsg cminmsg) + protected void sendMsg(CminmsgWapper cminmsg) { //send msg - String msg = exchangeService.xmlMsgToJsonMsg( - cminmsg.getCminmsgsClobMsg() - ); + String msg = exchangeService.msgToJson(cminmsg.getMsg()); kafkaservice.msgSend("msg", msg); } diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/schd/ADFTHandler.java b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/schd/ADFTHandler.java index fd61b955..d7692aa4 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/schd/ADFTHandler.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/schd/ADFTHandler.java @@ -4,6 +4,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.gzzn.omms.msgexchangeapi.entity.Cminmsg; +import com.gzzn.omms.msgexchangeapi.entity.CminmsgWapper; import com.gzzn.omms.msgexchangeapi.entity.msg.MSG; import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD.FLTR; import com.gzzn.omms.msgexchangeapi.msghandler.HandlerResult; @@ -18,8 +19,8 @@ public class ADFTHandler extends SchdBaseHandler{ private static Logger logger = LoggerFactory.getLogger(ADFTHandler.class); @Override - public HandlerResult run(Cminmsg cminmsg) { - MSG msg = exchangeService.xmlToMsg(cminmsg.getCminmsgsClobMsg()); + public HandlerResult run(CminmsgWapper cminmsg) { + MSG msg = cminmsg.getMsg(); if(msg.getSCHD().getFLTR().size() != 1) { logger.error("预期每条消息只会包含一个动态航班,当前{}",msg.getSCHD().getFLTR().size()); diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/schd/DNLDHandler.java b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/schd/DNLDHandler.java index 55dbacaf..a9d1d896 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/schd/DNLDHandler.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/schd/DNLDHandler.java @@ -3,7 +3,7 @@ package com.gzzn.omms.msgexchangeapi.msghandler.schd; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -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.schd.base.SchdBaseHandler; @@ -16,7 +16,7 @@ public class DNLDHandler extends SchdBaseHandler{ private static Logger logger = LoggerFactory.getLogger(DNLDHandler.class); @Override - public HandlerResult run(Cminmsg cminmsg) { + public HandlerResult run(CminmsgWapper cminmsg) { Boolean updateResult = flightInfoService.updateByDaySchd(cminmsg); if(false == updateResult) { diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/schd/RESPHandler.java b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/schd/RESPHandler.java index 83abab0e..49d69c7b 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/schd/RESPHandler.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/schd/RESPHandler.java @@ -3,7 +3,7 @@ package com.gzzn.omms.msgexchangeapi.msghandler.schd; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -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.schd.base.SchdBaseHandler; @@ -16,7 +16,7 @@ public class RESPHandler extends SchdBaseHandler { private static Logger logger = LoggerFactory.getLogger(RESPHandler.class); @Override - public HandlerResult run(Cminmsg cminmsg) { + public HandlerResult run(CminmsgWapper cminmsg) { Boolean updateResult = flightInfoService.updateByDaySchd(cminmsg); if(false == updateResult) { diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/schd/base/SchdBaseHandler.java b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/schd/base/SchdBaseHandler.java index 9f45851e..a5623ba3 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/schd/base/SchdBaseHandler.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/schd/base/SchdBaseHandler.java @@ -1,16 +1,15 @@ package com.gzzn.omms.msgexchangeapi.msghandler.schd.base; import java.util.Arrays; -import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.gzzn.omms.msgexchangeapi.dto.ResponseDto; import com.gzzn.omms.msgexchangeapi.entity.Cminmsg; +import com.gzzn.omms.msgexchangeapi.entity.CminmsgWapper; 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; import com.gzzn.omms.msgexchangeapi.msghandler.HandlerResult; import com.gzzn.omms.msgexchangeapi.msghandler.IBaseHandler; import com.gzzn.omms.msgexchangeapi.service.ICminmsgService; @@ -42,7 +41,7 @@ public class SchdBaseHandler implements IBaseHandler{ } @Override - public HandlerResult run(Cminmsg cminmsg) { + public HandlerResult run(CminmsgWapper cminmsg) { return null; } @@ -50,11 +49,10 @@ public class SchdBaseHandler implements IBaseHandler{ * 发送日计划到kafka队列 * @param cminmsg */ - protected void sendDschd(Cminmsg cminmsg) + protected void sendDschd(CminmsgWapper cminmsg) { //发送日航班消息的通知给前端,让前端重新加载全部动态 - String clobMsg = cminmsg.getCminmsgsClobMsg(); - MSG dnldMsg = exchangeService.xmlToMsg(clobMsg); + MSG dnldMsg = cminmsg.getMsg(); int recs = dnldMsg.getSCHD().getRECS(); logger.info("发送日计划到kafka,条数:{}",recs); @@ -70,12 +68,10 @@ public class SchdBaseHandler implements IBaseHandler{ * 仅发送动态消息 * @param cminmsg */ - protected void sendMsg(Cminmsg cminmsg) + protected void sendMsg(CminmsgWapper cminmsg) { //send msg - String msg = exchangeService.xmlMsgToJsonMsg( - cminmsg.getCminmsgsClobMsg() - ); + String msg = exchangeService.msgToJson(cminmsg.getMsg()); kafkaservice.msgSend("msg", msg); } @@ -85,16 +81,14 @@ public class SchdBaseHandler implements IBaseHandler{ * @param fltr * @param cminmsg */ - protected void sendFltrAndMsg(SCHD.FLTR fltr,Cminmsg cminmsg) + protected void sendFltrAndMsg(SCHD.FLTR fltr,CminmsgWapper cminmsg) { //send schd String schdMsg = JsonUtil.getString(fltr); kafkaservice.msgSend("schd", schdMsg); //send msg - String msg = exchangeService.xmlMsgToJsonMsg( - cminmsg.getCminmsgsClobMsg() - ); + String msg = exchangeService.msgToJson(cminmsg.getMsg()); kafkaservice.msgSend("msg", msg); } 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 2f7cb86a..65bfc83c 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 @@ -11,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.gzzn.omms.msgexchangeapi.entity.Cminmsg; +import com.gzzn.omms.msgexchangeapi.entity.CminmsgWapper; 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; @@ -32,9 +33,8 @@ public class FlightInfoServiceImpl implements IFlightInfoService { MsgHandlerDispatcher msgHandlerDispatcher; @Override - public Boolean updateByDaySchd(Cminmsg cminmsg) { - String clobMsg = cminmsg.getCminmsgsClobMsg(); - MSG dnldMsg = exchangeService.xmlToMsg(clobMsg); + public Boolean updateByDaySchd(CminmsgWapper cminmsg) { + MSG dnldMsg = cminmsg.getMsg(); // List lsFltr = dnldMsg diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/service/flightInfo/IFlightInfoService.java b/src/main/java/com/gzzn/omms/msgexchangeapi/service/flightInfo/IFlightInfoService.java index aa8204c8..ffa3b79e 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/service/flightInfo/IFlightInfoService.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/service/flightInfo/IFlightInfoService.java @@ -3,6 +3,7 @@ package com.gzzn.omms.msgexchangeapi.service.flightInfo; import java.util.List; import com.gzzn.omms.msgexchangeapi.entity.Cminmsg; +import com.gzzn.omms.msgexchangeapi.entity.CminmsgWapper; import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD; public interface IFlightInfoService { @@ -17,7 +18,7 @@ public interface IFlightInfoService { /** * 同步日计划更新航班信息 */ - public Boolean updateByDaySchd(Cminmsg cminmsg); + public Boolean updateByDaySchd(CminmsgWapper cminmsg); /** * 通过航班id获取航班动态