Files
msgexchange-api/src/main/java/com/gzzn/omms/msgexchangeapi/dao/CminmsgHstDaoImpl.java
T
2024-02-20 16:03:08 +08:00

138 lines
5.4 KiB
Java

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<CminmsgHst> 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
}
// 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
return true;
} //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
// }