package com.dev.lock.history;
|
|
import java.sql.ResultSet;
|
import java.sql.SQLException;
|
import java.util.ArrayList;
|
|
import com.dev.lock.data.ElectLock_Inf;
|
import com.dev.lock.data.ElectLock_RecordState;
|
import com.dev.lock.data.ElectLock_Report;
|
import com.sql.MysqlConnPool;
|
import com.sql.Sql_Mysql;
|
|
public class InsertDataToMysql_Task implements Runnable{
|
private ElectLock_Inf m_lock_rt = null;
|
private MysqlConnPool m_Conn_Pool;
|
|
|
public InsertDataToMysql_Task()
|
{
|
}
|
|
public InsertDataToMysql_Task(ElectLock_Inf rt_dat, MysqlConnPool pool) {
|
m_lock_rt = rt_dat;
|
m_Conn_Pool = pool;
|
|
}
|
@Override
|
public void run() {
|
Sql_Mysql sql = new Sql_Mysql(m_Conn_Pool.getConn());
|
try {
|
|
inserTestDataToDB(sql);
|
} catch (Exception e) {
|
sql.logger.error(e.toString(), e);
|
} finally {
|
sql.close_con();
|
m_lock_rt.clearStoreDataBusyTag();
|
}
|
}
|
|
|
private void inserTestDataToDB(Sql_Mysql sql_v) {
|
boolean result = true;
|
for(int c=0; c<3; c++) {
|
try {
|
sql_v.mysql_con.setAutoCommit(false);
|
//--------------------------------------------------------------//
|
if(m_lock_rt.lockRecordState.lock_state == ElectLock_RecordState.Lock_State_Open) {
|
//当前为开锁事件
|
m_lock_rt.lockReport.calNewOpenEvent(m_lock_rt.lockRecordState.record_time);
|
|
String sql_str = InsertDataToMysql_Task_SQL.getInsertLock_Report_TableDataStr(m_lock_rt.getLock_id(),m_lock_rt.lockReport);
|
|
sql_v.sqlMysqlExecute(sql_str);
|
}
|
|
|
String sql_str = InsertDataToMysql_Task_SQL.getInsertLock_His_TableDataStr(m_lock_rt.getLock_id(), m_lock_rt.lockRecordState);
|
//------------------------------------------------------------//
|
|
sql_v.sqlMysqlExecute(sql_str);
|
//------------------------------------------------------------//
|
sql_v.mysql_con.commit();
|
|
} catch (SQLException e) {
|
try {
|
sql_v.mysql_con.rollback();
|
} catch (SQLException e1) {
|
sql_v.logger.error("InsertDataToMysql_Task.inserTestDataToDB():" + e1.toString(), e1);
|
}
|
sql_v.logger.error("InsertDataToMysql_Task.-inserTestDataToDB():" + e.toString(), e);
|
result = false;
|
} finally {
|
|
if(true == result) {
|
m_lock_rt.lockRecordState.RecordHisOK();
|
break;
|
} else {
|
try {
|
Thread.sleep(1000);
|
} catch (Exception e) {
|
sql_v.logger.error("InsertDataToMysql_Task.inserTestDataToDB():" + e.toString(), e);
|
}
|
}
|
}
|
}
|
}
|
}
|