From c419ccc6386e5f9dd5cfabcef799515f57fa1a34 Mon Sep 17 00:00:00 2001 From: zhiqiang feng Date: Thu, 22 Feb 2024 01:17:34 +0000 Subject: [PATCH] Add moveToHistory method to CminmsgHstDao interface --- .../msgexchangeapi/dao/CminmsgHstDao.java | 4 +- .../msgexchangeapi/dao/CminmsgHstDaoImpl.java | 255 ++++++++++-------- 2 files changed, 153 insertions(+), 106 deletions(-) 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 80c44845..c3f50126 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgHstDao.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgHstDao.java @@ -13,5 +13,7 @@ public interface CminmsgHstDao { * @return true 成功 false 失败 */ public boolean insertToTable(String tableName,List lsCminmsgHsts); - + + public void moveToHistory() + } diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgHstDaoImpl.java b/src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgHstDaoImpl.java index 2e94d997..27250eb9 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgHstDaoImpl.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgHstDaoImpl.java @@ -18,120 +18,165 @@ public class CminmsgHstDaoImpl implements CminmsgHstDao { @PersistenceContext private EntityManager entityManager; - + + private static final String MOVE = "INSERT INTO cminmsgs_hst (" + + "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 )" + + " SELECT " + + "( 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)" + + " FROM cminmsgs src" + + " WHERE NOT EXISTS (" + + " SELECT 1 FROM cminmsgs_hst hist" + + " WHERE hist.CMINMSGS_ID = src.CMINMSGS_ID" + + ")" + + " AND src.CMINMSGS_DATE_RECEIVED < DATE_SUB(NOW(), INTERVAL 1 DAY)"; + + private static final String DELETE = "DELETE FROM " + + "cminmsgs " + + "WHERE " + + " CMINMSGS_DATE_RECEIVED < DATE_SUB(NOW(), INTERVAL 1 DAY)"; + /** * 保存到指定的表 + * * @return 成功或失败 */ @Transactional - public boolean insertToTable(String tableName,List lsCminmsgHsts) - { - if(CollectionUtils.isEmpty(lsCminmsgHsts)) - { + public boolean insertToTable(String tableName, List lsCminmsgHsts) { + if (CollectionUtils.isEmpty(lsCminmsgHsts)) { throw new RuntimeException("插入数据库内容不能为空"); } for (CminmsgHst cminmsgHst : lsCminmsgHsts) { - - try { - // Check if cminmsgs exist before insert - String checkSqlStr = "SELECT COUNT(*) FROM " + tableName + " WHERE CMINMSGS_ID = :CMINMSGS_ID"; - Query checkQuery = entityManager.createNativeQuery(checkSqlStr); - checkQuery.setParameter("CMINMSGS_ID", cminmsgHst.getCminmsgsId()); - Long count = (Long) checkQuery.getSingleResult(); - - if (count > 0) { - return true; // cminmsgs already exist, return true + + try { + // Check if cminmsgs exist before insert + String checkSqlStr = "SELECT COUNT(*) FROM " + tableName + " WHERE CMINMSGS_ID = :CMINMSGS_ID"; + Query checkQuery = entityManager.createNativeQuery(checkSqlStr); + checkQuery.setParameter("CMINMSGS_ID", cminmsgHst.getCminmsgsId()); + Long count = (Long) checkQuery.getSingleResult(); + + if (count > 0) { + return true; // cminmsgs already exist, return true + } + + // Insert cminmsgs + 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(); + + return true; + } catch (Exception e) { + TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return false; } - - // Insert cminmsgs - 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(); - - return true; - } catch (Exception e) { - TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - return false; - } - } //end for + } // end for return true; - } //end function + } // end function + + public void moveToHistory() { + entityManager.createNativeQuery(MOVE).executeUpdate(); + + entityManager.createNativeQuery(DELETE).executeUpdate(); + } } -// 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 +// 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 // }