From 7bfef3b0cd0a0b5defd96abcd783216331d9a1d4 Mon Sep 17 00:00:00 2001 From: zhouxiunai <154707516@qq.com> Date: Thu, 29 Nov 2018 13:33:46 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E5=8C=85=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/primary/dao/CminmsgDao.java | 26 +++----------- .../{entiy => entity}/msg/rqfd/RefdMsg.java | 3 +- .../msg/rqfd/RefdMsgBody.java | 2 +- .../domain/secondary/dao/ContextDao.java | 9 +++++ .../domain/secondary/dao/StatusDao.java | 9 ----- .../domain/secondary/entity/Context.java | 34 ++++++++++++++++++ .../domain/secondary/entity/Status.java | 27 -------------- .../omms/msgexchangeapi/runner/AppRunner.java | 34 ++++++++++++++---- .../service/CminmsgServiceImpl.java | 26 ++++++++++++++ .../service/ICminmsgService.java | 17 +++++++++ .../msgexchangeapi/task/ExchangeTask.java | 36 +++++++++++++++++++ .../msgexchangeapi/utils/DateTimeUtil.java | 21 +++++++++++ 12 files changed, 178 insertions(+), 66 deletions(-) rename src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/{entiy => entity}/msg/rqfd/RefdMsg.java (87%) rename src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/{entiy => entity}/msg/rqfd/RefdMsgBody.java (86%) create mode 100644 src/main/java/com/gzzn/omms/msgexchangeapi/domain/secondary/dao/ContextDao.java delete mode 100644 src/main/java/com/gzzn/omms/msgexchangeapi/domain/secondary/dao/StatusDao.java create mode 100644 src/main/java/com/gzzn/omms/msgexchangeapi/domain/secondary/entity/Context.java delete mode 100644 src/main/java/com/gzzn/omms/msgexchangeapi/domain/secondary/entity/Status.java diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/dao/CminmsgDao.java b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/dao/CminmsgDao.java index a5caf2a5..7e7d5a5f 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/dao/CminmsgDao.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/dao/CminmsgDao.java @@ -1,34 +1,18 @@ package com.gzzn.omms.msgexchangeapi.domain.primary.dao; +import java.util.Date; import java.util.List; -import org.springframework.data.domain.Pageable; -import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; import com.gzzn.omms.msgexchangeapi.domain.primary.entity.Cminmsg; + public interface CminmsgDao extends CrudRepository { - /** - * - * @return - */ - @Query("select count(*) from Cminmsg c where cminmsgsDateProcessed is not null") - public Long getCminmsgsDateProcessedIsNotNullCount(); - - /** - * 根据处理时间字段查询列表,Null情况 - * @param date - * @return - */ - public List findByCminmsgsDateProcessedIsNull(Pageable pageable); - - /** - * 非空情况 - * @return - */ - public List findByCminmsgsDateProcessedIsNotNull(Pageable pageable); + public List findByCminmsgsDateReceivedAfterOrderByCminmsgsDateReceived(Date date); + + public List findByCminmsgsIdGreaterThanOrderByCminmsgsDateReceived(Long id); } diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entiy/msg/rqfd/RefdMsg.java b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entity/msg/rqfd/RefdMsg.java similarity index 87% rename from src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entiy/msg/rqfd/RefdMsg.java rename to src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entity/msg/rqfd/RefdMsg.java index 74e00e27..f14847cb 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entiy/msg/rqfd/RefdMsg.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entity/msg/rqfd/RefdMsg.java @@ -1,4 +1,4 @@ -package com.gzzn.omms.msgexchangeapi.domain.primary.entiy.msg.rqfd; +package com.gzzn.omms.msgexchangeapi.domain.primary.entity.msg.rqfd; import java.util.Date; import java.util.Locale; @@ -21,6 +21,7 @@ public class RefdMsg extends Msg { meta.setSndr("OMMS"); meta.setSeqn("1"); //消息序号,自增 meta.setDttm(DateTimeUtil.gtFormatStr(new Date(), "yyMMddHHmmss", Locale.CHINA)); + meta.setType("RQFD"); meta.setStyp("NONE"); this.setMeta(meta); diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entiy/msg/rqfd/RefdMsgBody.java b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entity/msg/rqfd/RefdMsgBody.java similarity index 86% rename from src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entiy/msg/rqfd/RefdMsgBody.java rename to src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entity/msg/rqfd/RefdMsgBody.java index e913d9e5..6302a04d 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entiy/msg/rqfd/RefdMsgBody.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entity/msg/rqfd/RefdMsgBody.java @@ -1,4 +1,4 @@ -package com.gzzn.omms.msgexchangeapi.domain.primary.entiy.msg.rqfd; +package com.gzzn.omms.msgexchangeapi.domain.primary.entity.msg.rqfd; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/domain/secondary/dao/ContextDao.java b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/secondary/dao/ContextDao.java new file mode 100644 index 00000000..11629867 --- /dev/null +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/secondary/dao/ContextDao.java @@ -0,0 +1,9 @@ +package com.gzzn.omms.msgexchangeapi.domain.secondary.dao; + +import org.springframework.data.repository.CrudRepository; + +import com.gzzn.omms.msgexchangeapi.domain.secondary.entity.Context; + +public interface ContextDao extends CrudRepository { + +} diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/domain/secondary/dao/StatusDao.java b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/secondary/dao/StatusDao.java deleted file mode 100644 index a9469d0d..00000000 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/domain/secondary/dao/StatusDao.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.gzzn.omms.msgexchangeapi.domain.secondary.dao; - -import org.springframework.data.repository.CrudRepository; - -import com.gzzn.omms.msgexchangeapi.domain.secondary.entity.Status; - -public interface StatusDao extends CrudRepository { - -} diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/domain/secondary/entity/Context.java b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/secondary/entity/Context.java new file mode 100644 index 00000000..9d344b09 --- /dev/null +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/secondary/entity/Context.java @@ -0,0 +1,34 @@ +package com.gzzn.omms.msgexchangeapi.domain.secondary.entity; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.Table; + +/** + * 应用上下文 + * @author Administrator + * + */ +@Entity +@Table(name="context") +public class Context { + public static String KEY_ISWAITSCHD="isWaitSchd"; + public static String KEY_MSGPROGRESS="msgProgress"; + + + @Id + private String key; + private String value; + public String getKey() { + return key; + } + public void setKey(String key) { + this.key = key; + } + public String getValue() { + return value; + } + public void setValue(String value) { + this.value = value; + } +} diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/domain/secondary/entity/Status.java b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/secondary/entity/Status.java deleted file mode 100644 index 15066b79..00000000 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/domain/secondary/entity/Status.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.gzzn.omms.msgexchangeapi.domain.secondary.entity; - -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.Table; - -@Entity -@Table(name="status") -public class Status { - - @Id - private Long id; - private String remark; - - public Long getId() { - return id; - } - public void setId(Long id) { - this.id = id; - } - public String getRemark() { - return remark; - } - public void setRemark(String remark) { - this.remark = remark; - } -} diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/runner/AppRunner.java b/src/main/java/com/gzzn/omms/msgexchangeapi/runner/AppRunner.java index d525ef35..0add6417 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/runner/AppRunner.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/runner/AppRunner.java @@ -10,8 +10,10 @@ import org.springframework.boot.CommandLineRunner; import com.gzzn.omms.msgexchangeapi.domain.primary.dao.CmoutmsgDao; import com.gzzn.omms.msgexchangeapi.domain.primary.entity.Cmoutmsg; -import com.gzzn.omms.msgexchangeapi.domain.primary.entiy.msg.rqfd.RefdMsg; -import com.gzzn.omms.msgexchangeapi.domain.primary.entiy.msg.rqfd.RefdMsgBody; +import com.gzzn.omms.msgexchangeapi.domain.primary.entity.msg.rqfd.RefdMsg; +import com.gzzn.omms.msgexchangeapi.domain.primary.entity.msg.rqfd.RefdMsgBody; +import com.gzzn.omms.msgexchangeapi.domain.secondary.dao.ContextDao; +import com.gzzn.omms.msgexchangeapi.domain.secondary.entity.Context; import com.gzzn.omms.msgexchangeapi.service.IExchangeService; import com.gzzn.omms.msgexchangeapi.utils.DateTimeUtil; @@ -24,29 +26,47 @@ public class AppRunner implements CommandLineRunner { @Autowired private CmoutmsgDao cmoutmsgDao; + @Autowired + private ContextDao contextDao; + @Autowired private IExchangeService exchangeService; @Override public void run(String... args) throws Exception { + //构造消息 + Date nowDate = new Date(); Cmoutmsg cmoutmsg = new Cmoutmsg(); - - RefdMsgBody body = new RefdMsgBody(); body.setStdb( DateTimeUtil.gtFormatStr( - new Date(), + nowDate, "ddMMMyyHHmm", Locale.ENGLISH) .toUpperCase() ); RefdMsg msg = new RefdMsg(); msg.setRefd(body); - - cmoutmsg.setCminmsgsClobMsg(exchangeService.objectToXmlstr(msg)); cmoutmsg.setCminmsgsStatus("VALID"); cmoutmsgDao.save(cmoutmsg); + + + // + Context isWaitSchd = new Context(); + isWaitSchd.setKey(Context.KEY_ISWAITSCHD); //等待返回日计划状态 + isWaitSchd.setValue("true"); + contextDao.save(isWaitSchd); + + //初始化消息进度 + Context msgProgress = new Context(); + msgProgress.setKey(Context.KEY_MSGPROGRESS); + msgProgress.setValue( DateTimeUtil.gtFormatStr( + nowDate, + "yyyy-MM-dd hh:mm:ss", + Locale.ENGLISH) + ); + contextDao.save(msgProgress); }//end function run } diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/service/CminmsgServiceImpl.java b/src/main/java/com/gzzn/omms/msgexchangeapi/service/CminmsgServiceImpl.java index f0aea46a..911ed69f 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/service/CminmsgServiceImpl.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/service/CminmsgServiceImpl.java @@ -1,6 +1,8 @@ package com.gzzn.omms.msgexchangeapi.service; +import java.util.Collections; import java.util.Date; +import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -23,4 +25,28 @@ public class CminmsgServiceImpl implements ICminmsgService { Cminmsg rt = cminmsgDao.save(cminmsg); return rt; } + + + @Override + public List getNewMsgsAfterDate(Date afterdate) { + List lsCminmsgs = cminmsgDao.findByCminmsgsDateReceivedAfterOrderByCminmsgsDateReceived(afterdate); + if(null == lsCminmsgs) + { + return Collections.emptyList(); + } + + return lsCminmsgs; + } //end function + + + @Override + public List getNewMsgsAfterId(Long id) { + List lsCminmsgs = cminmsgDao.findByCminmsgsIdGreaterThanOrderByCminmsgsDateReceived(id); + if(null == lsCminmsgs) + { + return Collections.emptyList(); + } + + return lsCminmsgs; + } } diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/service/ICminmsgService.java b/src/main/java/com/gzzn/omms/msgexchangeapi/service/ICminmsgService.java index 7bac73e9..8a9a5aac 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/service/ICminmsgService.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/service/ICminmsgService.java @@ -1,7 +1,11 @@ package com.gzzn.omms.msgexchangeapi.service; +import java.util.Date; +import java.util.List; + import com.gzzn.omms.msgexchangeapi.domain.primary.entity.Cminmsg; + public interface ICminmsgService { /** @@ -9,4 +13,17 @@ public interface ICminmsgService { * @param xmlMsg */ public Cminmsg sendXmlMsg(String xmlMsg); + + /** + * 获取指定时间后的新消息 + * @return + */ + public List getNewMsgsAfterDate(Date afterdate); + + /** + * 获取指定id后的消息,消息id有序 + * @param id + * @return + */ + public List getNewMsgsAfterId(Long id); } diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/task/ExchangeTask.java b/src/main/java/com/gzzn/omms/msgexchangeapi/task/ExchangeTask.java index 3dcd97c0..3ce81f62 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/task/ExchangeTask.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/task/ExchangeTask.java @@ -1,14 +1,23 @@ package com.gzzn.omms.msgexchangeapi.task; +import java.util.Date; +import java.util.List; +import java.util.Optional; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; +import com.gzzn.omms.msgexchangeapi.domain.primary.entity.Cminmsg; +import com.gzzn.omms.msgexchangeapi.domain.secondary.dao.ContextDao; +import com.gzzn.omms.msgexchangeapi.domain.secondary.entity.Context; import com.gzzn.omms.msgexchangeapi.service.ICminmsgService; import com.gzzn.omms.msgexchangeapi.service.IExchangeService; import com.gzzn.omms.msgexchangeapi.service.IKafkaService; +import com.gzzn.omms.msgexchangeapi.utils.DateTimeUtil; + /** * 转换任务,获取cim的消息,转换成json,写入到kafka队列中 @@ -27,12 +36,39 @@ public class ExchangeTask { @Autowired private ICminmsgService cminmsgService; + + @Autowired + private ContextDao contextDao; @Scheduled(cron="0 0/1 * * * ?") public void corn() { logger.info("定时任务启动...."); + Context isWaitSchd = contextDao.findOne(Context.KEY_ISWAITSCHD); + Context msgProgress = contextDao.findOne(Context.KEY_MSGPROGRESS); + + + while (isWaitSchd.getValue().equalsIgnoreCase("true")) { + + //查找回复的日计划消息 + String strDate = msgProgress.getValue(); + Date date = DateTimeUtil.toDate(strDate, "yyyy-MM-dd hh:mm:ss"); + + + List lsCminmsgs = cminmsgService.getNewMsgsAfterDate(date); + Optional opCminmsg = lsCminmsgs.stream().findFirst(); + + //如果找到,添加到内存数据库动态航班信息表 + + //更新状态 + isWaitSchd.setValue("false"); + contextDao.save(isWaitSchd); + } + + + + // logger.info("同步完成"); diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/utils/DateTimeUtil.java b/src/main/java/com/gzzn/omms/msgexchangeapi/utils/DateTimeUtil.java index 522ec994..86184963 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/utils/DateTimeUtil.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/utils/DateTimeUtil.java @@ -1,5 +1,6 @@ package com.gzzn.omms.msgexchangeapi.utils; +import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Locale; @@ -17,4 +18,24 @@ public class DateTimeUtil { SimpleDateFormat sdf = new SimpleDateFormat(pattern,locale); return sdf.format(date); } + + + /** + * 字符串转日期 + * @param strDate 字符串的日期 + * @param pattern 日期格式 + * @return + * @throws ParseException + */ + public static Date toDate(String strDate,String pattern) + { + try { + SimpleDateFormat sdf = new SimpleDateFormat(pattern); + return sdf.parse(strDate); + } + catch (ParseException e) + { + throw new RuntimeException("日期转换失败:"+e.getMessage()); + } + } }