From 695fff6b22d7e248aea57e7bf26f9df9401332ef Mon Sep 17 00:00:00 2001 From: zhouxiunai <154707516@qq.com> Date: Sun, 30 Dec 2018 22:43:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AE=9A=E6=97=B6=E6=B6=88?= =?UTF-8?q?=E6=81=AF=E8=A1=A8CMINMSGS=E5=B7=B2=E7=BB=8F=E5=A4=84=E7=90=86?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=20=E8=BD=AC=20=E5=8E=86=E5=8F=B2=E8=A1=A8?= =?UTF-8?q?=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../omms/msgexchangeapi/dao/CminmsgDao.java | 3 + .../msgexchangeapi/dao/CminmsgHstDao.java | 11 ++ .../msgexchangeapi/entity/CminmsgHst.java | 135 ++++++++++++++++++ .../scheduled/CminmsgsHisScheduled.java | 73 ++++++++++ src/main/resources/application-pro.yml | 2 + .../redis/RedisServiceTest.java | 2 +- .../scheduled/CminmsgsHisScheduledTest.java | 21 +++ .../service/CmoutmsgServiceImplTest.java | 5 + 8 files changed, 251 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgHstDao.java create mode 100644 src/main/java/com/gzzn/omms/msgexchangeapi/entity/CminmsgHst.java create mode 100644 src/main/java/com/gzzn/omms/msgexchangeapi/scheduled/CminmsgsHisScheduled.java create mode 100644 src/test/java/com/gzzn/omms/msgexchangeapi/scheduled/CminmsgsHisScheduledTest.java create mode 100644 src/test/java/com/gzzn/omms/msgexchangeapi/service/CmoutmsgServiceImplTest.java diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgDao.java b/src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgDao.java index f2a4e2cd..5032735e 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgDao.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgDao.java @@ -3,6 +3,7 @@ package com.gzzn.omms.msgexchangeapi.dao; import java.util.Date; import java.util.List; +import org.springframework.data.domain.Pageable; import org.springframework.data.repository.CrudRepository; import com.gzzn.omms.msgexchangeapi.entity.Cminmsg; @@ -15,4 +16,6 @@ public interface CminmsgDao extends CrudRepository { public List findByCminmsgsDateReceivedAfterOrderByCminmsgsDateReceived(Date date); public List findByCminmsgsIdGreaterThanAndCminmsgsDateProcessedIsNull(Long id); + + public List findByCminmsgsDateProcessedIsNotNullAndCminmsgsDateReceivedBefore(Date date,Pageable pageable); } diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgHstDao.java b/src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgHstDao.java new file mode 100644 index 00000000..17931d96 --- /dev/null +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgHstDao.java @@ -0,0 +1,11 @@ +package com.gzzn.omms.msgexchangeapi.dao; + +import org.springframework.data.repository.CrudRepository; + +import com.gzzn.omms.msgexchangeapi.entity.CminmsgHst; + + + +public interface CminmsgHstDao extends CrudRepository { + +} diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/entity/CminmsgHst.java b/src/main/java/com/gzzn/omms/msgexchangeapi/entity/CminmsgHst.java new file mode 100644 index 00000000..c71ab685 --- /dev/null +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/entity/CminmsgHst.java @@ -0,0 +1,135 @@ +package com.gzzn.omms.msgexchangeapi.entity; + +import java.io.Serializable; +import javax.persistence.*; +import java.util.Date; + + +/** + * The persistent class for the CMINMSGS_HST database table. + * + */ +@Entity +@Table(name="CMINMSGS_HST") +public class CminmsgHst implements Serializable { + private static final long serialVersionUID = 2L; + + @Id + @Column(name="CMINMSGS_ID") + private long cminmsgsId; + + @Lob + @Column(name="CMINMSGS_CLOB_MSG") + private String cminmsgsClobMsg; + + @Temporal(TemporalType.TIMESTAMP) + @Column(name="CMINMSGS_DATE_PROCESSED") + private Date cminmsgsDateProcessed; + + @Temporal(TemporalType.TIMESTAMP) + @Column(name="CMINMSGS_DATE_RECEIVED") + private Date cminmsgsDateReceived; + + @Column(name="CMINMSGS_STATUS") + private String cminmsgsStatus; + + @Temporal(TemporalType.TIMESTAMP) + @Column(name="CMINMSGS_SUBSYSTEM_DATE_SENT") + private Date cminmsgsSubsystemDateSent; + + @Column(name="CMINMSGS_SUBSYSTEM_NAME") + private String cminmsgsSubsystemName; + + @Column(name="CMINMSGS_SUBSYSTEM_SEQUENCE") + private int cminmsgsSubsystemSequence; + + @Column(name="CMINMSGS_SUBSYSTEM_SUBTYPE") + private String cminmsgsSubsystemSubtype; + + @Column(name="CMINMSGS_SUBSYSTEM_TYPE") + private String cminmsgsSubsystemType; + + public CminmsgHst() { + } + + public long getCminmsgsId() { + return this.cminmsgsId; + } + + public void setCminmsgsId(long cminmsgsId) { + this.cminmsgsId = cminmsgsId; + } + + public String getCminmsgsClobMsg() { + return this.cminmsgsClobMsg; + } + + public void setCminmsgsClobMsg(String cminmsgsClobMsg) { + this.cminmsgsClobMsg = cminmsgsClobMsg; + } + + public Date getCminmsgsDateProcessed() { + return this.cminmsgsDateProcessed; + } + + public void setCminmsgsDateProcessed(Date cminmsgsDateProcessed) { + this.cminmsgsDateProcessed = cminmsgsDateProcessed; + } + + public Date getCminmsgsDateReceived() { + return this.cminmsgsDateReceived; + } + + public void setCminmsgsDateReceived(Date cminmsgsDateReceived) { + this.cminmsgsDateReceived = cminmsgsDateReceived; + } + + public String getCminmsgsStatus() { + return this.cminmsgsStatus; + } + + public void setCminmsgsStatus(String cminmsgsStatus) { + this.cminmsgsStatus = cminmsgsStatus; + } + + public Date getCminmsgsSubsystemDateSent() { + return this.cminmsgsSubsystemDateSent; + } + + public void setCminmsgsSubsystemDateSent(Date cminmsgsSubsystemDateSent) { + this.cminmsgsSubsystemDateSent = cminmsgsSubsystemDateSent; + } + + public String getCminmsgsSubsystemName() { + return this.cminmsgsSubsystemName; + } + + public void setCminmsgsSubsystemName(String cminmsgsSubsystemName) { + this.cminmsgsSubsystemName = cminmsgsSubsystemName; + } + + public int getCminmsgsSubsystemSequence() { + return this.cminmsgsSubsystemSequence; + } + + public void setCminmsgsSubsystemSequence(int cminmsgsSubsystemSequence) { + this.cminmsgsSubsystemSequence = cminmsgsSubsystemSequence; + } + + public String getCminmsgsSubsystemSubtype() { + return this.cminmsgsSubsystemSubtype; + } + + public void setCminmsgsSubsystemSubtype(String cminmsgsSubsystemSubtype) { + this.cminmsgsSubsystemSubtype = cminmsgsSubsystemSubtype; + } + + public String getCminmsgsSubsystemType() { + return this.cminmsgsSubsystemType; + } + + public void setCminmsgsSubsystemType(String cminmsgsSubsystemType) { + this.cminmsgsSubsystemType = cminmsgsSubsystemType; + } + +} \ No newline at end of file diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/scheduled/CminmsgsHisScheduled.java b/src/main/java/com/gzzn/omms/msgexchangeapi/scheduled/CminmsgsHisScheduled.java new file mode 100644 index 00000000..4975918f --- /dev/null +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/scheduled/CminmsgsHisScheduled.java @@ -0,0 +1,73 @@ +package com.gzzn.omms.msgexchangeapi.scheduled; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.PageRequest; +import org.springframework.scheduling.annotation.Async; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import com.gzzn.omms.msgexchangeapi.dao.CminmsgDao; +import com.gzzn.omms.msgexchangeapi.dao.CminmsgHstDao; +import com.gzzn.omms.msgexchangeapi.entity.Cminmsg; +import com.gzzn.omms.msgexchangeapi.entity.CminmsgHst; + +/** + * cminmsgs 消息转历史 + * @author zhouxiunai + * + */ +@Component +//@Async +public class CminmsgsHisScheduled { + + @Autowired + CminmsgHstDao cminmsgHstDao; + + @Autowired + CminmsgDao cminmsgDao; + + private static Logger logger = LoggerFactory.getLogger(CminmsgsHisScheduled.class); + + //@Scheduled(cron = "${scheduled.cminmsgHisCron}") + public void scheduled() + { + logger.info("开始cminmsgs消息转历史.."); + + Date dateNow = new Date(); + List lsCminmsg = null; + + do + { + lsCminmsg = cminmsgDao.findByCminmsgsDateProcessedIsNotNullAndCminmsgsDateReceivedBefore + ( + dateNow,new PageRequest(0,100)); // + + if(!CollectionUtils.isEmpty(lsCminmsg)) + { + //插入历史表 + List lsCminmsgHst = new ArrayList(); + for(Cminmsg cminmsg : lsCminmsg) + { + CminmsgHst cminmsgHst = new CminmsgHst(); + BeanUtils.copyProperties(cminmsg, cminmsgHst); + lsCminmsgHst.add(cminmsgHst); + } + cminmsgHstDao.save(lsCminmsgHst); + + //从原始表删除 + cminmsgDao.delete(lsCminmsg); + } + } + while(!CollectionUtils.isEmpty(lsCminmsg)); + + logger.info("结束本次cminmsgs消息转历史.."); + }//end shceduled +} diff --git a/src/main/resources/application-pro.yml b/src/main/resources/application-pro.yml index e402aea4..1e8e942b 100644 --- a/src/main/resources/application-pro.yml +++ b/src/main/resources/application-pro.yml @@ -64,6 +64,8 @@ scheduled: corePoolSize: 10 maxPoolSize: 50 queueCapacity: 10 + # 每日凌晨3:00 cminmsg 已处理数据转历史 + cminmsgHisCron: 0 52 21 * * ? #计入历史航班数据的条件 hstCondition: #航班到达超过多久则成为历史航班数据(单位:秒) diff --git a/src/test/java/com/gzzn/omms/msgexchangeapi/redis/RedisServiceTest.java b/src/test/java/com/gzzn/omms/msgexchangeapi/redis/RedisServiceTest.java index 3a0796e4..958faf52 100644 --- a/src/test/java/com/gzzn/omms/msgexchangeapi/redis/RedisServiceTest.java +++ b/src/test/java/com/gzzn/omms/msgexchangeapi/redis/RedisServiceTest.java @@ -18,6 +18,6 @@ public class RedisServiceTest { @Test public void removeFlightInfo() { - redisService.del(Arrays.asList("FlightInfo:")); + redisService.del(Arrays.asList("flightInfo:")); } } diff --git a/src/test/java/com/gzzn/omms/msgexchangeapi/scheduled/CminmsgsHisScheduledTest.java b/src/test/java/com/gzzn/omms/msgexchangeapi/scheduled/CminmsgsHisScheduledTest.java new file mode 100644 index 00000000..43198d7f --- /dev/null +++ b/src/test/java/com/gzzn/omms/msgexchangeapi/scheduled/CminmsgsHisScheduledTest.java @@ -0,0 +1,21 @@ +package com.gzzn.omms.msgexchangeapi.scheduled; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class CminmsgsHisScheduledTest { + + @Autowired + CminmsgsHisScheduled cminmsgsHisScheduled; + + @Test + public void testRun() + { + cminmsgsHisScheduled.scheduled(); + } +} diff --git a/src/test/java/com/gzzn/omms/msgexchangeapi/service/CmoutmsgServiceImplTest.java b/src/test/java/com/gzzn/omms/msgexchangeapi/service/CmoutmsgServiceImplTest.java new file mode 100644 index 00000000..17ce3ce6 --- /dev/null +++ b/src/test/java/com/gzzn/omms/msgexchangeapi/service/CmoutmsgServiceImplTest.java @@ -0,0 +1,5 @@ +package com.gzzn.omms.msgexchangeapi.service; + +public class CmoutmsgServiceImplTest { + +}