From c786e83784b118c1a29d2614956c7ff4d720552c Mon Sep 17 00:00:00 2001
From: zhouxiunai <154707516@qq.com>
Date: Mon, 27 May 2019 11:21:32 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=8E=86=E5=8F=B2=E8=A1=A8(0?=
=?UTF-8?q?-9),=E7=94=A8=E4=BA=8E=E5=88=86=E6=8B=85=E5=8D=95=E8=A1=A8?=
=?UTF-8?q?=E5=8E=8B=E5=8A=9B=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 7 +
.../msgexchangeapi/dao/CminmsgHstDao.java | 14 +-
.../msgexchangeapi/dao/CminmsgHstDaoImpl.java | 80 +++++++++
.../msghandler/flop/ROUTHandler.java | 2 +
.../scheduled/CminmsgsHisScheduled.java | 49 +++---
.../service/CmoutmsgHstServiceImpl.java | 74 +++++++++
.../service/ICminmsgHstService.java | 27 +++
.../v1.2.0_msgexchangeapi_addhistorytable.sql | 157 ++++++++++++++++++
.../service/cminmsgHstServiceTest.java | 44 +++++
9 files changed, 429 insertions(+), 25 deletions(-)
create mode 100644 src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgHstDaoImpl.java
create mode 100644 src/main/java/com/gzzn/omms/msgexchangeapi/service/CmoutmsgHstServiceImpl.java
create mode 100644 src/main/java/com/gzzn/omms/msgexchangeapi/service/ICminmsgHstService.java
create mode 100644 src/main/resources/db/migration/v1.2.0_msgexchangeapi_addhistorytable.sql
create mode 100644 src/test/java/com/gzzn/omms/msgexchangeapi/service/cminmsgHstServiceTest.java
diff --git a/pom.xml b/pom.xml
index c2800cb0..19878765 100644
--- a/pom.xml
+++ b/pom.xml
@@ -153,6 +153,13 @@
${org.mapstruct.version}
+
+
+ cn.hutool
+ hutool-all
+ 4.5.10
+
+
diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgHstDao.java b/src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgHstDao.java
index 17931d96..80c44845 100644
--- a/src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgHstDao.java
+++ b/src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgHstDao.java
@@ -1,11 +1,17 @@
package com.gzzn.omms.msgexchangeapi.dao;
-import org.springframework.data.repository.CrudRepository;
+import java.util.List;
import com.gzzn.omms.msgexchangeapi.entity.CminmsgHst;
-
-
-public interface CminmsgHstDao extends CrudRepository {
+public interface CminmsgHstDao {
+
+ /**
+ * 保存到指定的表
+ * @param tableName 数据库表名
+ * @param lsCminmsgHsts 要插入的记录列表
+ * @return true 成功 false 失败
+ */
+ public boolean insertToTable(String tableName,List lsCminmsgHsts);
}
diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgHstDaoImpl.java b/src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgHstDaoImpl.java
new file mode 100644
index 00000000..ba1ce9de
--- /dev/null
+++ b/src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgHstDaoImpl.java
@@ -0,0 +1,80 @@
+package com.gzzn.omms.msgexchangeapi.dao;
+
+import java.util.List;
+
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+import javax.persistence.Query;
+
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import org.springframework.util.CollectionUtils;
+
+import com.gzzn.omms.msgexchangeapi.entity.CminmsgHst;
+
+@Component
+public class CminmsgHstDaoImpl implements CminmsgHstDao {
+
+ @PersistenceContext
+ private EntityManager entityManager;
+
+ /**
+ * 保存到指定的表
+ * @return 成功或失败
+ */
+ @Transactional
+ public boolean insertToTable(String tableName,List lsCminmsgHsts)
+ {
+ if(CollectionUtils.isEmpty(lsCminmsgHsts))
+ {
+ throw new RuntimeException("插入数据库内容不能为空");
+ }
+
+ try {
+ for (CminmsgHst cminmsgHst : lsCminmsgHsts) {
+ String sqlStr = "insert into " + tableName + "("
+ + "CMINMSGS_ID,"
+ + "CMINMSGS_CLOB_MSG,"
+ + "CMINMSGS_DATE_RECEIVED,"
+ + "CMINMSGS_DATE_PROCESSED,"
+ + "CMINMSGS_SUBSYSTEM_NAME,"
+ + "CMINMSGS_SUBSYSTEM_SEQUENCE,"
+ + "CMINMSGS_SUBSYSTEM_DATE_SENT,"
+ + "CMINMSGS_SUBSYSTEM_SUBTYPE,"
+ + "CMINMSGS_SUBSYSTEM_TYPE,"
+ + "CMINMSGS_STATUS) values("
+ + ":CMINMSGS_ID,"
+ + ":CMINMSGS_CLOB_MSG,"
+ + ":CMINMSGS_DATE_RECEIVED,"
+ + ":CMINMSGS_DATE_PROCESSED,"
+ + ":CMINMSGS_SUBSYSTEM_NAME,"
+ + ":CMINMSGS_SUBSYSTEM_SEQUENCE,"
+ + ":CMINMSGS_SUBSYSTEM_DATE_SENT,"
+ + ":CMINMSGS_SUBSYSTEM_SUBTYPE,"
+ + ":CMINMSGS_SUBSYSTEM_TYPE,"
+ + ":CMINMSGS_STATUS);";
+
+ Query query = entityManager.createNativeQuery(sqlStr);
+ query.setParameter("CMINMSGS_ID", cminmsgHst.getCminmsgsId());
+ query.setParameter("CMINMSGS_CLOB_MSG", cminmsgHst.getCminmsgsClobMsg());
+ query.setParameter("CMINMSGS_DATE_RECEIVED", cminmsgHst.getCminmsgsDateReceived());
+ query.setParameter("CMINMSGS_DATE_PROCESSED", cminmsgHst.getCminmsgsDateProcessed());
+ query.setParameter("CMINMSGS_SUBSYSTEM_NAME", cminmsgHst.getCminmsgsSubsystemName());
+ query.setParameter("CMINMSGS_SUBSYSTEM_SEQUENCE", cminmsgHst.getCminmsgsSubsystemSequence());
+ query.setParameter("CMINMSGS_SUBSYSTEM_DATE_SENT", cminmsgHst.getCminmsgsSubsystemDateSent());
+ query.setParameter("CMINMSGS_SUBSYSTEM_SUBTYPE", cminmsgHst.getCminmsgsSubsystemSubtype());
+ query.setParameter("CMINMSGS_SUBSYSTEM_TYPE", cminmsgHst.getCminmsgsSubsystemType());
+ query.setParameter("CMINMSGS_STATUS", cminmsgHst.getCminmsgsStatus());
+
+ query.executeUpdate();
+ }//end for
+
+
+ return true;
+ } catch (Exception e) {
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ return false;
+ }
+ } //end function
+}
diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/ROUTHandler.java b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/ROUTHandler.java
index e73ea54b..47d01837 100644
--- a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/ROUTHandler.java
+++ b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/ROUTHandler.java
@@ -30,6 +30,8 @@ public class ROUTHandler extends FlopBaseHandler {
BeanUtils.copyProperties(optRouteDaily, routeDaily);
fltr.getROUT().add(routeDaily);
+
+ //完整航线,要加上CTU 成都机场
fltr.getERUT().add(routeDaily);
} //添加新数据
return fltr;
diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/scheduled/CminmsgsHisScheduled.java b/src/main/java/com/gzzn/omms/msgexchangeapi/scheduled/CminmsgsHisScheduled.java
index d20e4425..960d8af2 100644
--- a/src/main/java/com/gzzn/omms/msgexchangeapi/scheduled/CminmsgsHisScheduled.java
+++ b/src/main/java/com/gzzn/omms/msgexchangeapi/scheduled/CminmsgsHisScheduled.java
@@ -1,8 +1,9 @@
package com.gzzn.omms.msgexchangeapi.scheduled;
-import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.stream.Collector;
+import java.util.stream.Collectors;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -15,9 +16,9 @@ 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;
+import com.gzzn.omms.msgexchangeapi.service.ICminmsgHstService;
/**
* cminmsgs 消息转历史
@@ -27,9 +28,9 @@ import com.gzzn.omms.msgexchangeapi.entity.CminmsgHst;
@Component
@Async
public class CminmsgsHisScheduled {
-
@Autowired
- CminmsgHstDao cminmsgHstDao;
+ ICminmsgHstService cminmsgHstService;
+
@Autowired
CminmsgDao cminmsgDao;
@@ -41,30 +42,36 @@ public class CminmsgsHisScheduled {
{
logger.info("开始cminmsgs消息转历史..");
- Date dateNow = new Date();
List lsCminmsg = null;
-
do
{
+ Date dateNow = new Date();
lsCminmsg = cminmsgDao.findByCminmsgsDateProcessedIsNotNullAndCminmsgsDateReceivedBefore
(
- dateNow,new PageRequest(0,100)); //
-
- if(!CollectionUtils.isEmpty(lsCminmsg))
+ dateNow,new PageRequest(0,300)
+ );
+ 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);
+ continue;
+ }
+
+ List successLs = cminmsgHstService.insert(
+ cminmsgHstService.toCminmsgHstLs(lsCminmsg)
+ );
+
+ //从原始表删除成功列表
+ if(!CollectionUtils.isEmpty(successLs))
+ {
+ List waitDeleteLs = successLs.stream()
+ .map(node->{
+ Cminmsg cminmsg = new Cminmsg();
+ BeanUtils.copyProperties(node, cminmsg);
+ return cminmsg;
+ })
+ .collect(Collectors.toList());
- //从原始表删除
- cminmsgDao.delete(lsCminmsg);
- }
+ cminmsgDao.delete(waitDeleteLs);
+ }
}
while(!CollectionUtils.isEmpty(lsCminmsg));
diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/service/CmoutmsgHstServiceImpl.java b/src/main/java/com/gzzn/omms/msgexchangeapi/service/CmoutmsgHstServiceImpl.java
new file mode 100644
index 00000000..4ab18411
--- /dev/null
+++ b/src/main/java/com/gzzn/omms/msgexchangeapi/service/CmoutmsgHstServiceImpl.java
@@ -0,0 +1,74 @@
+package com.gzzn.omms.msgexchangeapi.service;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.gzzn.omms.msgexchangeapi.dao.CminmsgHstDao;
+import com.gzzn.omms.msgexchangeapi.entity.Cminmsg;
+import com.gzzn.omms.msgexchangeapi.entity.CminmsgHst;
+
+/**
+ * 历史消息服务
+ * @author zhouxiunai
+ *
+ */
+@Service
+public class CmoutmsgHstServiceImpl implements ICminmsgHstService {
+ @Autowired
+ CminmsgHstDao cminmsgHstDao;
+
+ @Override
+ public List insert(List lsCminmsgHst) {
+ int tableCount = 10;//历史表数目。必须已经创建有有这个数量的历史表0-9
+ List successLs = new ArrayList<>();
+
+ //按id mod 分隔消息.
+ Map map = new LinkedHashMap>();
+ for (int i = 0; i < tableCount; i++) {
+ map.put(new Integer(i), new ArrayList());
+ }
+
+ for(CminmsgHst cminmsgHst : lsCminmsgHst)
+ {
+ Integer key = (int) (cminmsgHst.getCminmsgsId() % tableCount);
+ List ls = (List) map.get(key);
+ ls.add(cminmsgHst);
+ }
+
+ //插入历史数据
+ Iterator iter = map.entrySet().iterator();
+ while (iter.hasNext()) {
+ Map.Entry entry = (Map.Entry) iter.next();
+
+ String key = String.valueOf(entry.getKey());
+ List ls = (List) entry.getValue();
+
+ if(cminmsgHstDao.insertToTable("cminmsgs_hst_" + key, ls)) {
+ successLs.addAll(ls);
+ }
+ }
+
+ return successLs;
+ }
+
+ @Override
+ public List toCminmsgHstLs(List lsCminmsg) {
+ List lsCminmsgHst = new ArrayList<>(lsCminmsg.size());
+ for(Cminmsg cminmsg : lsCminmsg)
+ {
+ CminmsgHst cminmsgHst = new CminmsgHst();
+ BeanUtils.copyProperties(cminmsg, cminmsgHst);
+
+ lsCminmsgHst.add(cminmsgHst);
+ }
+
+ return lsCminmsgHst;
+ }
+}
diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/service/ICminmsgHstService.java b/src/main/java/com/gzzn/omms/msgexchangeapi/service/ICminmsgHstService.java
new file mode 100644
index 00000000..b9064ef7
--- /dev/null
+++ b/src/main/java/com/gzzn/omms/msgexchangeapi/service/ICminmsgHstService.java
@@ -0,0 +1,27 @@
+package com.gzzn.omms.msgexchangeapi.service;
+
+import java.util.List;
+
+import com.gzzn.omms.msgexchangeapi.entity.Cminmsg;
+import com.gzzn.omms.msgexchangeapi.entity.CminmsgHst;
+
+/**
+ * 历史消息服务接口
+ * @author zhouxiunai
+ *
+ */
+public interface ICminmsgHstService {
+
+ /**
+ * 保存历史消息(性能问题,分布到不同表)
+ * @return
+ */
+ public List insert(List lsCminmsg);
+
+ /**
+ * 将Cminmsg列表转换成Cminmsg列表
+ * @param lsCminmsg cmin 消息
+ * @return 历史cmin消息列表
+ */
+ public List toCminmsgHstLs(List lsCminmsg);
+}
diff --git a/src/main/resources/db/migration/v1.2.0_msgexchangeapi_addhistorytable.sql b/src/main/resources/db/migration/v1.2.0_msgexchangeapi_addhistorytable.sql
new file mode 100644
index 00000000..2d65e475
--- /dev/null
+++ b/src/main/resources/db/migration/v1.2.0_msgexchangeapi_addhistorytable.sql
@@ -0,0 +1,157 @@
+ CREATE TABLE `CMINMSGS_HST_0` (
+ `CMINMSGS_ID` int(23) NOT NULL,
+ `CMINMSGS_CLOB_MSG` longtext NOT NULL,
+ `CMINMSGS_DATE_RECEIVED` datetime DEFAULT NULL,
+ `CMINMSGS_DATE_PROCESSED` datetime DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_NAME` varchar(4) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_SEQUENCE` int(6) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_DATE_SENT` datetime DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_SUBTYPE` varchar(4) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_TYPE` varchar(4) DEFAULT NULL,
+ `CMINMSGS_STATUS` varchar(20) DEFAULT NULL,
+ PRIMARY KEY (`CMINMSGS_ID`),
+ KEY `index_cminmsgs_date_processed` (`CMINMSGS_DATE_PROCESSED`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+ CREATE TABLE `CMINMSGS_HST_1` (
+ `CMINMSGS_ID` int(23) NOT NULL,
+ `CMINMSGS_CLOB_MSG` longtext NOT NULL,
+ `CMINMSGS_DATE_RECEIVED` datetime DEFAULT NULL,
+ `CMINMSGS_DATE_PROCESSED` datetime DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_NAME` varchar(4) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_SEQUENCE` int(6) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_DATE_SENT` datetime DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_SUBTYPE` varchar(4) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_TYPE` varchar(4) DEFAULT NULL,
+ `CMINMSGS_STATUS` varchar(20) DEFAULT NULL,
+ PRIMARY KEY (`CMINMSGS_ID`),
+ KEY `index_cminmsgs_date_processed` (`CMINMSGS_DATE_PROCESSED`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+
+ CREATE TABLE `CMINMSGS_HST_2` (
+ `CMINMSGS_ID` int(23) NOT NULL,
+ `CMINMSGS_CLOB_MSG` longtext NOT NULL,
+ `CMINMSGS_DATE_RECEIVED` datetime DEFAULT NULL,
+ `CMINMSGS_DATE_PROCESSED` datetime DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_NAME` varchar(4) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_SEQUENCE` int(6) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_DATE_SENT` datetime DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_SUBTYPE` varchar(4) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_TYPE` varchar(4) DEFAULT NULL,
+ `CMINMSGS_STATUS` varchar(20) DEFAULT NULL,
+ PRIMARY KEY (`CMINMSGS_ID`),
+ KEY `index_cminmsgs_date_processed` (`CMINMSGS_DATE_PROCESSED`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+
+ CREATE TABLE `CMINMSGS_HST_3` (
+ `CMINMSGS_ID` int(23) NOT NULL,
+ `CMINMSGS_CLOB_MSG` longtext NOT NULL,
+ `CMINMSGS_DATE_RECEIVED` datetime DEFAULT NULL,
+ `CMINMSGS_DATE_PROCESSED` datetime DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_NAME` varchar(4) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_SEQUENCE` int(6) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_DATE_SENT` datetime DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_SUBTYPE` varchar(4) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_TYPE` varchar(4) DEFAULT NULL,
+ `CMINMSGS_STATUS` varchar(20) DEFAULT NULL,
+ PRIMARY KEY (`CMINMSGS_ID`),
+ KEY `index_cminmsgs_date_processed` (`CMINMSGS_DATE_PROCESSED`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+
+ CREATE TABLE `CMINMSGS_HST_4` (
+ `CMINMSGS_ID` int(23) NOT NULL,
+ `CMINMSGS_CLOB_MSG` longtext NOT NULL,
+ `CMINMSGS_DATE_RECEIVED` datetime DEFAULT NULL,
+ `CMINMSGS_DATE_PROCESSED` datetime DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_NAME` varchar(4) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_SEQUENCE` int(6) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_DATE_SENT` datetime DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_SUBTYPE` varchar(4) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_TYPE` varchar(4) DEFAULT NULL,
+ `CMINMSGS_STATUS` varchar(20) DEFAULT NULL,
+ PRIMARY KEY (`CMINMSGS_ID`),
+ KEY `index_cminmsgs_date_processed` (`CMINMSGS_DATE_PROCESSED`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+
+ CREATE TABLE `CMINMSGS_HST_5` (
+ `CMINMSGS_ID` int(23) NOT NULL,
+ `CMINMSGS_CLOB_MSG` longtext NOT NULL,
+ `CMINMSGS_DATE_RECEIVED` datetime DEFAULT NULL,
+ `CMINMSGS_DATE_PROCESSED` datetime DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_NAME` varchar(4) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_SEQUENCE` int(6) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_DATE_SENT` datetime DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_SUBTYPE` varchar(4) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_TYPE` varchar(4) DEFAULT NULL,
+ `CMINMSGS_STATUS` varchar(20) DEFAULT NULL,
+ PRIMARY KEY (`CMINMSGS_ID`),
+ KEY `index_cminmsgs_date_processed` (`CMINMSGS_DATE_PROCESSED`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+
+ CREATE TABLE `CMINMSGS_HST_6` (
+ `CMINMSGS_ID` int(23) NOT NULL,
+ `CMINMSGS_CLOB_MSG` longtext NOT NULL,
+ `CMINMSGS_DATE_RECEIVED` datetime DEFAULT NULL,
+ `CMINMSGS_DATE_PROCESSED` datetime DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_NAME` varchar(4) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_SEQUENCE` int(6) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_DATE_SENT` datetime DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_SUBTYPE` varchar(4) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_TYPE` varchar(4) DEFAULT NULL,
+ `CMINMSGS_STATUS` varchar(20) DEFAULT NULL,
+ PRIMARY KEY (`CMINMSGS_ID`),
+ KEY `index_cminmsgs_date_processed` (`CMINMSGS_DATE_PROCESSED`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+
+ CREATE TABLE `CMINMSGS_HST_7` (
+ `CMINMSGS_ID` int(23) NOT NULL,
+ `CMINMSGS_CLOB_MSG` longtext NOT NULL,
+ `CMINMSGS_DATE_RECEIVED` datetime DEFAULT NULL,
+ `CMINMSGS_DATE_PROCESSED` datetime DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_NAME` varchar(4) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_SEQUENCE` int(6) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_DATE_SENT` datetime DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_SUBTYPE` varchar(4) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_TYPE` varchar(4) DEFAULT NULL,
+ `CMINMSGS_STATUS` varchar(20) DEFAULT NULL,
+ PRIMARY KEY (`CMINMSGS_ID`),
+ KEY `index_cminmsgs_date_processed` (`CMINMSGS_DATE_PROCESSED`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+
+ CREATE TABLE `CMINMSGS_HST_8` (
+ `CMINMSGS_ID` int(23) NOT NULL,
+ `CMINMSGS_CLOB_MSG` longtext NOT NULL,
+ `CMINMSGS_DATE_RECEIVED` datetime DEFAULT NULL,
+ `CMINMSGS_DATE_PROCESSED` datetime DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_NAME` varchar(4) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_SEQUENCE` int(6) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_DATE_SENT` datetime DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_SUBTYPE` varchar(4) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_TYPE` varchar(4) DEFAULT NULL,
+ `CMINMSGS_STATUS` varchar(20) DEFAULT NULL,
+ PRIMARY KEY (`CMINMSGS_ID`),
+ KEY `index_cminmsgs_date_processed` (`CMINMSGS_DATE_PROCESSED`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
+
+
+ CREATE TABLE `CMINMSGS_HST_9` (
+ `CMINMSGS_ID` int(23) NOT NULL,
+ `CMINMSGS_CLOB_MSG` longtext NOT NULL,
+ `CMINMSGS_DATE_RECEIVED` datetime DEFAULT NULL,
+ `CMINMSGS_DATE_PROCESSED` datetime DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_NAME` varchar(4) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_SEQUENCE` int(6) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_DATE_SENT` datetime DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_SUBTYPE` varchar(4) DEFAULT NULL,
+ `CMINMSGS_SUBSYSTEM_TYPE` varchar(4) DEFAULT NULL,
+ `CMINMSGS_STATUS` varchar(20) DEFAULT NULL,
+ PRIMARY KEY (`CMINMSGS_ID`),
+ KEY `index_cminmsgs_date_processed` (`CMINMSGS_DATE_PROCESSED`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8;
\ No newline at end of file
diff --git a/src/test/java/com/gzzn/omms/msgexchangeapi/service/cminmsgHstServiceTest.java b/src/test/java/com/gzzn/omms/msgexchangeapi/service/cminmsgHstServiceTest.java
new file mode 100644
index 00000000..2c3c1bcc
--- /dev/null
+++ b/src/test/java/com/gzzn/omms/msgexchangeapi/service/cminmsgHstServiceTest.java
@@ -0,0 +1,44 @@
+package com.gzzn.omms.msgexchangeapi.service;
+
+import java.util.Date;
+import java.util.List;
+
+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.data.domain.PageRequest;
+import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.util.CollectionUtils;
+
+import com.gzzn.omms.msgexchangeapi.dao.CminmsgDao;
+import com.gzzn.omms.msgexchangeapi.entity.Cminmsg;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+public class cminmsgHstServiceTest {
+ @Autowired
+ ICminmsgHstService cminmsgHstService;
+
+ @Autowired
+ CminmsgDao cminmsgDao;
+
+ @Test
+ public void insertIntoHst()
+ {
+ Date dateNow = new Date();
+ List lsCminmsg = null;
+ lsCminmsg = cminmsgDao.findByCminmsgsDateProcessedIsNotNullAndCminmsgsDateReceivedBefore
+ (
+ dateNow,new PageRequest(0,300)
+ );
+ if(CollectionUtils.isEmpty(lsCminmsg))
+ {
+ return;
+ }
+
+ cminmsgHstService.insert(
+ cminmsgHstService.toCminmsgHstLs(lsCminmsg)
+ );
+ } //end function
+}