From f8d392d5af224951d9d2afe3cb16cc79a6afa197 Mon Sep 17 00:00:00 2001 From: zhouxiunai <154707516@qq.com> Date: Wed, 28 Nov 2018 20:32:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=95=E5=85=A5=E5=A4=9A=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=BA=90=E5=8F=8A=E5=86=85=E5=AD=98=E6=95=B0=E6=8D=AE=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 6 ++ .../config/DataSourceConfig.java | 28 ++++++ .../msgexchangeapi/config/PrimaryConfig.java | 70 +++++++++++++++ .../config/SecondaryConfig.java | 64 +++++++++++++ .../config/swagger/SwaggerConfig.java | 2 +- .../controller/CminmsgsController.java | 21 +++-- .../{ => domain/primary}/dao/CminmsgDao.java | 4 +- .../{ => domain/primary}/dao/CmoutmsgDao.java | 4 +- .../primary/entity}/Cminmsg.java | 10 ++- .../primary/entity}/Cmoutmsg.java | 8 +- .../primary/entity}/msg/Meta.java | 2 +- .../primary/entity}/msg/Msg.java | 2 +- .../primary}/entiy/msg/rqfd/RefdMsg.java | 6 +- .../primary}/entiy/msg/rqfd/RefdMsgBody.java | 2 +- .../domain/secondary/dao/StatusDao.java | 9 ++ .../domain/secondary/entity/Status.java | 27 ++++++ .../omms/msgexchangeapi/runner/AppRunner.java | 8 +- .../service/CminmsgServiceImpl.java | 26 ++++++ .../service/ICminmsgService.java | 12 +++ .../msgexchangeapi/task/ExchangeTask.java | 37 +------- src/main/resources/application-dev.yml | 32 ++++--- .../tools/DatetimeFormatTest.java | 26 ++++++ .../omms/msgexchangeapi/tools/ToolTest.java | 90 +++++++++++++++++++ 23 files changed, 424 insertions(+), 72 deletions(-) create mode 100644 src/main/java/com/gzzn/omms/msgexchangeapi/config/DataSourceConfig.java create mode 100644 src/main/java/com/gzzn/omms/msgexchangeapi/config/PrimaryConfig.java create mode 100644 src/main/java/com/gzzn/omms/msgexchangeapi/config/SecondaryConfig.java rename src/main/java/com/gzzn/omms/msgexchangeapi/{ => domain/primary}/dao/CminmsgDao.java (82%) rename src/main/java/com/gzzn/omms/msgexchangeapi/{ => domain/primary}/dao/CmoutmsgDao.java (50%) rename src/main/java/com/gzzn/omms/msgexchangeapi/{entiy => domain/primary/entity}/Cminmsg.java (87%) rename src/main/java/com/gzzn/omms/msgexchangeapi/{entiy => domain/primary/entity}/Cmoutmsg.java (91%) rename src/main/java/com/gzzn/omms/msgexchangeapi/{entiy => domain/primary/entity}/msg/Meta.java (88%) rename src/main/java/com/gzzn/omms/msgexchangeapi/{entiy => domain/primary/entity}/msg/Msg.java (80%) rename src/main/java/com/gzzn/omms/msgexchangeapi/{ => domain/primary}/entiy/msg/rqfd/RefdMsg.java (75%) rename src/main/java/com/gzzn/omms/msgexchangeapi/{ => domain/primary}/entiy/msg/rqfd/RefdMsgBody.java (86%) create 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/Status.java create mode 100644 src/main/java/com/gzzn/omms/msgexchangeapi/service/CminmsgServiceImpl.java create mode 100644 src/main/java/com/gzzn/omms/msgexchangeapi/service/ICminmsgService.java create mode 100644 src/test/java/com/gzzn/omms/msgexchangeapi/tools/DatetimeFormatTest.java create mode 100644 src/test/java/com/gzzn/omms/msgexchangeapi/tools/ToolTest.java diff --git a/pom.xml b/pom.xml index 5f2fc2ee..de87e14f 100644 --- a/pom.xml +++ b/pom.xml @@ -87,6 +87,12 @@ jackson-databind + + com.h2database + h2 + runtime + + diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/config/DataSourceConfig.java b/src/main/java/com/gzzn/omms/msgexchangeapi/config/DataSourceConfig.java new file mode 100644 index 00000000..492493e3 --- /dev/null +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/config/DataSourceConfig.java @@ -0,0 +1,28 @@ +package com.gzzn.omms.msgexchangeapi.config; + +import javax.sql.DataSource; + +import org.springframework.boot.autoconfigure.jdbc.DataSourceBuilder; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; + +@Configuration +public class DataSourceConfig { + @Bean(name = "primaryDataSource") + @Primary + @ConfigurationProperties(prefix="spring.datasource.primary") + public DataSource primaryDataSource() + { + return DataSourceBuilder.create().build(); + } + + + @Bean(name = "secondaryDataSource") + @ConfigurationProperties(prefix="spring.datasource.secondary") + public DataSource secondaryDataSource() + { + return DataSourceBuilder.create().build(); + } +} diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/config/PrimaryConfig.java b/src/main/java/com/gzzn/omms/msgexchangeapi/config/PrimaryConfig.java new file mode 100644 index 00000000..ef79eff9 --- /dev/null +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/config/PrimaryConfig.java @@ -0,0 +1,70 @@ +package com.gzzn.omms.msgexchangeapi.config; + +import java.util.Map; + +import javax.persistence.EntityManager; +import javax.sql.DataSource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties; +import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +import org.springframework.orm.jpa.JpaTransactionManager; +import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.annotation.EnableTransactionManagement; + + + +@Configuration +@EnableTransactionManagement +@EnableJpaRepositories( + entityManagerFactoryRef="entityManagerFactoryPrimary", + transactionManagerRef="transactionManagerPrimary", + basePackages= { "com.gzzn.omms.msgexchangeapi.domain.primary.dao" } + ) //设置Repository所在位置 + public class PrimaryConfig + { + + @Autowired + @Qualifier("primaryDataSource") + private DataSource primaryDataSource; + + @Primary + @Bean(name = "entityManagerPrimary") + public EntityManager entityManager(EntityManagerFactoryBuilder builder) + { + return entityManagerFactoryPrimary(builder).getObject().createEntityManager(); + } + + @Primary + @Bean(name = "entityManagerFactoryPrimary") + public LocalContainerEntityManagerFactoryBean entityManagerFactoryPrimary (EntityManagerFactoryBuilder builder) + { + return builder + .dataSource(primaryDataSource) + .properties(getVendorProperties(primaryDataSource)) + .packages("com.gzzn.omms.msgexchangeapi.domain.primary.entity") //设置实体类所在位置 + .persistenceUnit("primaryPersistenceUnit") + .build(); + } + + @Autowired private JpaProperties jpaProperties; + private Map getVendorProperties(DataSource dataSource) + { + return jpaProperties.getHibernateProperties(dataSource); + } + + @Primary + @Bean(name = "transactionManagerPrimary") + public PlatformTransactionManager transactionManagerPrimary(EntityManagerFactoryBuilder builder) + { + return new JpaTransactionManager(entityManagerFactoryPrimary(builder).getObject()); + } + + } + diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/config/SecondaryConfig.java b/src/main/java/com/gzzn/omms/msgexchangeapi/config/SecondaryConfig.java new file mode 100644 index 00000000..10dad7a4 --- /dev/null +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/config/SecondaryConfig.java @@ -0,0 +1,64 @@ +package com.gzzn.omms.msgexchangeapi.config; + +import java.util.Map; + +import javax.persistence.EntityManager; +import javax.sql.DataSource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.autoconfigure.orm.jpa.JpaProperties; +import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +import org.springframework.orm.jpa.JpaTransactionManager; +import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +@Configuration +@EnableTransactionManagement +@EnableJpaRepositories( + entityManagerFactoryRef="entityManagerFactorySecondary", + transactionManagerRef="transactionManagerSecondary", + basePackages= { "com.gzzn.omms.msgexchangeapi.domain.secondary.dao" } + ) //设置Repository所在位置 + + public class SecondaryConfig + { + @Autowired + @Qualifier("secondaryDataSource") + private DataSource secondaryDataSource; + + @Bean(name = "entityManagerSecondary") + public EntityManager entityManager(EntityManagerFactoryBuilder builder) + { + return entityManagerFactorySecondary(builder).getObject().createEntityManager(); + } + + @Bean(name = "entityManagerFactorySecondary") + public LocalContainerEntityManagerFactoryBean + entityManagerFactorySecondary (EntityManagerFactoryBuilder builder) + { + return builder + .dataSource(secondaryDataSource) + .properties(getVendorProperties(secondaryDataSource)) + .packages("com.gzzn.omms.msgexchangeapi.domain.secondary.entity") //设置实体类所在位置 + .persistenceUnit("secondaryPersistenceUnit") + .build(); + } + + @Autowired + private JpaProperties jpaProperties; + private Map getVendorProperties(DataSource dataSource) + { + return jpaProperties.getHibernateProperties(dataSource); + } + + @Bean(name = "transactionManagerSecondary") + PlatformTransactionManager transactionManagerSecondary(EntityManagerFactoryBuilder builder) + { + return new JpaTransactionManager(entityManagerFactorySecondary(builder).getObject()); + } + } diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/config/swagger/SwaggerConfig.java b/src/main/java/com/gzzn/omms/msgexchangeapi/config/swagger/SwaggerConfig.java index 93175ab3..a2572cf7 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/config/swagger/SwaggerConfig.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/config/swagger/SwaggerConfig.java @@ -23,7 +23,7 @@ public class SwaggerConfig { .paths(PathSelectors.any()) .build() .apiInfo(apiInfo()) - .host("130.120.3.231:91/msgexchangeapi") + .host("localhost:8080") ; } diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/controller/CminmsgsController.java b/src/main/java/com/gzzn/omms/msgexchangeapi/controller/CminmsgsController.java index 13243a35..5a371cbe 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/controller/CminmsgsController.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/controller/CminmsgsController.java @@ -1,23 +1,34 @@ package com.gzzn.omms.msgexchangeapi.controller; -import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import com.gzzn.omms.msgexchangeapi.domain.primary.entity.Cminmsg; import com.gzzn.omms.msgexchangeapi.dto.ResponseDto; +import com.gzzn.omms.msgexchangeapi.service.ICminmsgService; @RestController @RequestMapping("/cminmsgs") public class CminmsgsController { - + + @Autowired + private ICminmsgService cminmsgService; + + /*** * 发送消息到Cminmsgs数据库表 * @param msg * @param topic * @return */ - @GetMapping(value = "/send") - public ResponseDto send(String msg,String topic) { - return ResponseDto.success(); + @PostMapping(value = "/send") + public ResponseDto send(@RequestBody String xmlmsg) { + + Cminmsg minmsg = cminmsgService.sendXmlMsg(xmlmsg); + + return ResponseDto.success(minmsg.getCminmsgsId()); } } diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgDao.java b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/dao/CminmsgDao.java similarity index 82% rename from src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgDao.java rename to src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/dao/CminmsgDao.java index 3c73576c..a5caf2a5 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgDao.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/dao/CminmsgDao.java @@ -1,4 +1,4 @@ -package com.gzzn.omms.msgexchangeapi.dao; +package com.gzzn.omms.msgexchangeapi.domain.primary.dao; import java.util.List; @@ -6,7 +6,7 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; -import com.gzzn.omms.msgexchangeapi.entiy.Cminmsg; +import com.gzzn.omms.msgexchangeapi.domain.primary.entity.Cminmsg; public interface CminmsgDao extends CrudRepository { diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/dao/CmoutmsgDao.java b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/dao/CmoutmsgDao.java similarity index 50% rename from src/main/java/com/gzzn/omms/msgexchangeapi/dao/CmoutmsgDao.java rename to src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/dao/CmoutmsgDao.java index 6d71c63d..43d37adb 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/dao/CmoutmsgDao.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/dao/CmoutmsgDao.java @@ -1,8 +1,8 @@ -package com.gzzn.omms.msgexchangeapi.dao; +package com.gzzn.omms.msgexchangeapi.domain.primary.dao; import org.springframework.data.repository.CrudRepository; -import com.gzzn.omms.msgexchangeapi.entiy.Cmoutmsg; +import com.gzzn.omms.msgexchangeapi.domain.primary.entity.Cmoutmsg; public interface CmoutmsgDao extends CrudRepository { diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/entiy/Cminmsg.java b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entity/Cminmsg.java similarity index 87% rename from src/main/java/com/gzzn/omms/msgexchangeapi/entiy/Cminmsg.java rename to src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entity/Cminmsg.java index 822212d1..923dc2bb 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/entiy/Cminmsg.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entity/Cminmsg.java @@ -1,4 +1,4 @@ -package com.gzzn.omms.msgexchangeapi.entiy; +package com.gzzn.omms.msgexchangeapi.domain.primary.entity; import java.io.Serializable; import javax.persistence.*; @@ -11,10 +11,12 @@ import java.util.Date; */ @Entity @Table(name="CMINMSGS") +@SequenceGenerator(name = "sequenceGenerator", sequenceName = "SEQ_CMINMSGS") public class Cminmsg implements Serializable { private static final long serialVersionUID = 1L; @Id + @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="sequenceGenerator") @Column(name="CMINMSGS_ID") private long cminmsgsId; @@ -22,18 +24,18 @@ public class Cminmsg implements Serializable { @Column(name="CMINMSGS_CLOB_MSG") private String cminmsgsClobMsg; - @Temporal(TemporalType.DATE) + @Temporal(TemporalType.TIMESTAMP) @Column(name="CMINMSGS_DATE_PROCESSED") private Date cminmsgsDateProcessed; - @Temporal(TemporalType.DATE) + @Temporal(TemporalType.TIMESTAMP) @Column(name="CMINMSGS_DATE_RECEIVED") private Date cminmsgsDateReceived; @Column(name="CMINMSGS_STATUS") private String cminmsgsStatus; - @Temporal(TemporalType.DATE) + @Temporal(TemporalType.TIMESTAMP) @Column(name="CMINMSGS_SUBSYSTEM_DATE_SENT") private Date cminmsgsSubsystemDateSent; diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/entiy/Cmoutmsg.java b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entity/Cmoutmsg.java similarity index 91% rename from src/main/java/com/gzzn/omms/msgexchangeapi/entiy/Cmoutmsg.java rename to src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entity/Cmoutmsg.java index db4e8d30..2ac9089a 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/entiy/Cmoutmsg.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entity/Cmoutmsg.java @@ -1,4 +1,4 @@ -package com.gzzn.omms.msgexchangeapi.entiy; +package com.gzzn.omms.msgexchangeapi.domain.primary.entity; import java.io.Serializable; import javax.persistence.*; @@ -23,18 +23,18 @@ public class Cmoutmsg implements Serializable { @Column(name="CMINMSGS_CLOB_MSG") private String cminmsgsClobMsg; - @Temporal(TemporalType.DATE) + @Temporal(TemporalType.TIMESTAMP) @Column(name="CMINMSGS_DATE_PROCESSED") private Date cminmsgsDateProcessed; - @Temporal(TemporalType.DATE) + @Temporal(TemporalType.TIMESTAMP) @Column(name="CMINMSGS_DATE_RECEIVED") private Date cminmsgsDateReceived; @Column(name="CMINMSGS_STATUS") private String cminmsgsStatus; - @Temporal(TemporalType.DATE) + @Temporal(TemporalType.TIMESTAMP) @Column(name="CMINMSGS_SUBSYSTEM_DATE_SENT") private Date cminmsgsSubsystemDateSent; diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/entiy/msg/Meta.java b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entity/msg/Meta.java similarity index 88% rename from src/main/java/com/gzzn/omms/msgexchangeapi/entiy/msg/Meta.java rename to src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entity/msg/Meta.java index 5af75b01..c83731e9 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/entiy/msg/Meta.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entity/msg/Meta.java @@ -1,4 +1,4 @@ -package com.gzzn.omms.msgexchangeapi.entiy.msg; +package com.gzzn.omms.msgexchangeapi.domain.primary.entity.msg; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/entiy/msg/Msg.java b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entity/msg/Msg.java similarity index 80% rename from src/main/java/com/gzzn/omms/msgexchangeapi/entiy/msg/Msg.java rename to src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entity/msg/Msg.java index f5ad68e6..87b1f847 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/entiy/msg/Msg.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entity/msg/Msg.java @@ -1,4 +1,4 @@ -package com.gzzn.omms.msgexchangeapi.entiy.msg; +package com.gzzn.omms.msgexchangeapi.domain.primary.entity.msg; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/entiy/msg/rqfd/RefdMsg.java b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entiy/msg/rqfd/RefdMsg.java similarity index 75% rename from src/main/java/com/gzzn/omms/msgexchangeapi/entiy/msg/rqfd/RefdMsg.java rename to src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entiy/msg/rqfd/RefdMsg.java index e2d347fe..74e00e27 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/entiy/msg/rqfd/RefdMsg.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entiy/msg/rqfd/RefdMsg.java @@ -1,12 +1,12 @@ -package com.gzzn.omms.msgexchangeapi.entiy.msg.rqfd; +package com.gzzn.omms.msgexchangeapi.domain.primary.entiy.msg.rqfd; import java.util.Date; import java.util.Locale; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlRootElement; -import com.gzzn.omms.msgexchangeapi.entiy.msg.Meta; -import com.gzzn.omms.msgexchangeapi.entiy.msg.Msg; +import com.gzzn.omms.msgexchangeapi.domain.primary.entity.msg.Meta; +import com.gzzn.omms.msgexchangeapi.domain.primary.entity.msg.Msg; import com.gzzn.omms.msgexchangeapi.utils.DateTimeUtil; @JacksonXmlRootElement(localName="MSG") diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/entiy/msg/rqfd/RefdMsgBody.java b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entiy/msg/rqfd/RefdMsgBody.java similarity index 86% rename from src/main/java/com/gzzn/omms/msgexchangeapi/entiy/msg/rqfd/RefdMsgBody.java rename to src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entiy/msg/rqfd/RefdMsgBody.java index b7f6749b..e913d9e5 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/entiy/msg/rqfd/RefdMsgBody.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/primary/entiy/msg/rqfd/RefdMsgBody.java @@ -1,4 +1,4 @@ -package com.gzzn.omms.msgexchangeapi.entiy.msg.rqfd; +package com.gzzn.omms.msgexchangeapi.domain.primary.entiy.msg.rqfd; import com.fasterxml.jackson.annotation.JsonProperty; 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 new file mode 100644 index 00000000..a9469d0d --- /dev/null +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/secondary/dao/StatusDao.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.Status; + +public interface StatusDao extends CrudRepository { + +} 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 new file mode 100644 index 00000000..15066b79 --- /dev/null +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/domain/secondary/entity/Status.java @@ -0,0 +1,27 @@ +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 d0dd759e..d525ef35 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/runner/AppRunner.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/runner/AppRunner.java @@ -8,10 +8,10 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; -import com.gzzn.omms.msgexchangeapi.dao.CmoutmsgDao; -import com.gzzn.omms.msgexchangeapi.entiy.Cmoutmsg; -import com.gzzn.omms.msgexchangeapi.entiy.msg.rqfd.RefdMsg; -import com.gzzn.omms.msgexchangeapi.entiy.msg.rqfd.RefdMsgBody; +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.service.IExchangeService; import com.gzzn.omms.msgexchangeapi.utils.DateTimeUtil; diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/service/CminmsgServiceImpl.java b/src/main/java/com/gzzn/omms/msgexchangeapi/service/CminmsgServiceImpl.java new file mode 100644 index 00000000..f0aea46a --- /dev/null +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/service/CminmsgServiceImpl.java @@ -0,0 +1,26 @@ +package com.gzzn.omms.msgexchangeapi.service; + +import java.util.Date; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.gzzn.omms.msgexchangeapi.domain.primary.dao.CminmsgDao; +import com.gzzn.omms.msgexchangeapi.domain.primary.entity.Cminmsg; + +@Service +public class CminmsgServiceImpl implements ICminmsgService { + @Autowired + private CminmsgDao cminmsgDao; + + + @Override + public Cminmsg sendXmlMsg(String xmlMsg) { + Cminmsg cminmsg = new Cminmsg(); + cminmsg.setCminmsgsClobMsg(xmlMsg); + cminmsg.setCminmsgsDateReceived(new Date()); + + Cminmsg rt = cminmsgDao.save(cminmsg); + return rt; + } +} diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/service/ICminmsgService.java b/src/main/java/com/gzzn/omms/msgexchangeapi/service/ICminmsgService.java new file mode 100644 index 00000000..7bac73e9 --- /dev/null +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/service/ICminmsgService.java @@ -0,0 +1,12 @@ +package com.gzzn.omms.msgexchangeapi.service; + +import com.gzzn.omms.msgexchangeapi.domain.primary.entity.Cminmsg; + +public interface ICminmsgService { + + /** + * 发送xml格式的消息到cminmsgs表 + * @param xmlMsg + */ + public Cminmsg sendXmlMsg(String xmlMsg); +} 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 0f55b516..3dcd97c0 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/task/ExchangeTask.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/task/ExchangeTask.java @@ -1,18 +1,12 @@ package com.gzzn.omms.msgexchangeapi.task; -import java.util.List; - import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.PageRequest; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; -import org.springframework.util.StringUtils; -import com.gzzn.omms.msgexchangeapi.dao.CminmsgDao; -import com.gzzn.omms.msgexchangeapi.entiy.Cminmsg; -import com.gzzn.omms.msgexchangeapi.exception.ExchangeServiceException; +import com.gzzn.omms.msgexchangeapi.service.ICminmsgService; import com.gzzn.omms.msgexchangeapi.service.IExchangeService; import com.gzzn.omms.msgexchangeapi.service.IKafkaService; @@ -32,39 +26,14 @@ public class ExchangeTask { IExchangeService exchangeService; @Autowired - private CminmsgDao cminmsgDao; + private ICminmsgService cminmsgService; @Scheduled(cron="0 0/1 * * * ?") public void corn() { logger.info("定时任务启动...."); - Long maxPerLong = 1000L; //每次最大发送多少条消息 - Long lenTotal = cminmsgDao.getCminmsgsDateProcessedIsNotNullCount(); - Long lenSend = 0L; - Integer pageIndex = 0; - Integer pageSize = 50; - while(lenSend < lenTotal && lenSend < maxPerLong) - { - List ls = cminmsgDao.findByCminmsgsDateProcessedIsNotNull(new PageRequest(pageIndex,pageSize)); - for(Cminmsg node:ls) - { - String strJson = null; - try { - strJson = exchangeService.xmlToJson(node.getCminmsgsClobMsg()); - if(!StringUtils.isEmpty(strJson)) - { - kafkaservice.msgSend("topic2", strJson); - } - } catch (ExchangeServiceException e) { - logger.error(e.getMessage()); - } - } // end for - - - lenSend += ls.size(); - pageIndex++; - }//end while + // logger.info("同步完成"); } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 33f78422..a7b73ab2 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -1,3 +1,24 @@ +spring: + datasource: + primary: + username: ommsxc + password: ommsxc + url: jdbc:oracle:thin:@130.120.3.236:1521/xe + driver: oracle.jdbc.driver.OracleDriver + tomcat: + max-active: 30 + test-on-borrow: true + initial-size: 3 + + secondary: + username: ommsxc + password: ommsxc + url: jdbc:oracle:thin:@130.120.3.236:1521/xe + driver: oracle.jdbc.driver.OracleDriver + tomcat: + max-active: 30 + test-on-borrow: true + initial-size: 3 kafka: producer: retries: 0 @@ -28,13 +49,4 @@ kafka: concurrency: 10 group: id: test -spring: - datasource: - username: ommsxc - password: ommsxc - url: jdbc:oracle:thin:@130.120.3.236:1521/xe - driver: oracle.jdbc.driver.OracleDriver - tomcat: - max-active: 30 - test-on-borrow: true - initial-size: 3 \ No newline at end of file + \ No newline at end of file diff --git a/src/test/java/com/gzzn/omms/msgexchangeapi/tools/DatetimeFormatTest.java b/src/test/java/com/gzzn/omms/msgexchangeapi/tools/DatetimeFormatTest.java new file mode 100644 index 00000000..3f0b0d5c --- /dev/null +++ b/src/test/java/com/gzzn/omms/msgexchangeapi/tools/DatetimeFormatTest.java @@ -0,0 +1,26 @@ +package com.gzzn.omms.msgexchangeapi.tools; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Locale; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest +public class DatetimeFormatTest { + + @Test + public void testFormat() + { + SimpleDateFormat sdf = new SimpleDateFormat("ddMMMyyHHmm",Locale.ENGLISH); + System.out.println(sdf.format(new Date()).toUpperCase()); + + + SimpleDateFormat sdf1 = new SimpleDateFormat("yyMMddHHmmss",Locale.CHINA); + System.out.println(sdf1.format(new Date())); + } +} diff --git a/src/test/java/com/gzzn/omms/msgexchangeapi/tools/ToolTest.java b/src/test/java/com/gzzn/omms/msgexchangeapi/tools/ToolTest.java new file mode 100644 index 00000000..8f7f1285 --- /dev/null +++ b/src/test/java/com/gzzn/omms/msgexchangeapi/tools/ToolTest.java @@ -0,0 +1,90 @@ +package com.gzzn.omms.msgexchangeapi.tools; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.List; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.databind.JsonMappingException; +import com.gzzn.omms.msgexchangeapi.domain.primary.dao.CminmsgDao; +import com.gzzn.omms.msgexchangeapi.domain.primary.entity.Cminmsg; +import com.gzzn.omms.msgexchangeapi.domain.primary.entity.msg.Msg; +import com.gzzn.omms.msgexchangeapi.exception.ExchangeServiceException; +import com.gzzn.omms.msgexchangeapi.service.IExchangeService; +import com.gzzn.omms.msgexchangeapi.utils.JsonUtil; + + +@RunWith(SpringRunner.class) +@SpringBootTest +public class ToolTest { + + private static Logger logger = LoggerFactory.getLogger(ToolTest.class); + + @Autowired + private CminmsgDao cminmsgDao; + + @Autowired + private IExchangeService exchangeService; + + @Test + public void test() { + + } + + @Test + public void exportToXmlFiles() throws JsonParseException, JsonMappingException, IOException + { + List lsCmin = (List) cminmsgDao.findAll(); + + for(Cminmsg x : lsCmin) + { + String json = exchangeService.xmlToJson(x.getCminmsgsClobMsg()); + Msg msg =JsonUtil.getObject(json,Msg.class); + String Dttm = msg.getMeta().getDttm(); + + String dir = "xml/" + Dttm.substring(0, 10); + + StringBuilder path = new StringBuilder(); + path.append(dir); + path.append("/"); + path.append(msg.getMeta().getDttm().substring(10, Dttm.length()));//time + path.append("-"+x.getCminmsgsId()); + path.append("-"+msg.getMeta().getType());//Type + path.append("-"+msg.getMeta().getStyp());//Subtype + path.append(".xml"); + + //父目录是否存在 + File fileDir = new File(dir); + if(fileDir.exists() == false) + { + fileDir.mkdirs(); + } + + // + File f = new File(path.toString()); + try (FileOutputStream fop = new FileOutputStream(f)) { + byte[] contentInBytes = x.getCminmsgsClobMsg().getBytes("UTF-8"); + + fop.write(contentInBytes); + fop.flush(); + fop.close(); + } + catch (ExchangeServiceException e) { + logger.error(e.getMessage()); + } + catch (IOException e) { + logger.error(e.getMessage()); + } + } + + } //end function +}