From 48b0d8bf2db9a5a0950946ad03544504633a86d0 Mon Sep 17 00:00:00 2001 From: whyclxw <http://whyclxw@118.89.139.230:10101/r/~whyclxw/IdeaTest.git> Date: 星期三, 01 九月 2021 12:54:18 +0800 Subject: [PATCH] 一体机修改成多线程导入数据库并插入导入进度 --- BattMonitor_FGCD-A059NT/src/com/dev/fgcd/comm/FGCD_Task_Thread_SQL.java | 121 +++++++++++++++++++++++++++++++++++++++- 1 files changed, 118 insertions(+), 3 deletions(-) diff --git a/BattMonitor_FGCD-A059NT/src/com/dev/fgcd/comm/FGCD_Task_Thread_SQL.java b/BattMonitor_FGCD-A059NT/src/com/dev/fgcd/comm/FGCD_Task_Thread_SQL.java index d13e503..9aa3bad 100644 --- a/BattMonitor_FGCD-A059NT/src/com/dev/fgcd/comm/FGCD_Task_Thread_SQL.java +++ b/BattMonitor_FGCD-A059NT/src/com/dev/fgcd/comm/FGCD_Task_Thread_SQL.java @@ -16,7 +16,7 @@ import com.mchange.v2.resourcepool.ResourcePoolListener; public class FGCD_Task_Thread_SQL { - + /** * 插入FBO历史数据 * @param pool @@ -120,7 +120,110 @@ } return success; } - + //插入FBO——inf信息 + public static boolean insertFBOInfIntoTable(MysqlConnPool pool,FboDataInf fbo,int BattGoupId,int max_test_record_count) { + boolean flag=true; + if(fbo.getTestTimeLong() > 0) { + String sql_str="INSERT INTO " + Sql_Mysql.Tb_FboTestData_Inf_Table + + "(BattGroupId,test_record_count,test_starttime,test_timelong,device,test_type,hourrate,save_interval,monomervol,moncapstd,test_curr,test_cap,monvol_limit,gourpvol_limit,mon_count,monvol_limitcount,stop_type,download_time) " + + " VALUES(" + BattGoupId + + "," +max_test_record_count + + ",'" + Com.getDateTimeFormat(fbo.TestStartTime.getFBODateTime(), Com.DTF_YMDhms) + + "'," + fbo.getTestTimeLong() + + "," + fbo.Device + + "," + fbo.DataType + + "," + fbo.HourRate + + "," + fbo.SaveInterval + + "," + fbo.MonomerVol + + "," + fbo.STDCap + + "," + fbo.TestCur + + "," + fbo.TestCap + + "," + fbo.MVLLimit + + "," + fbo.SumVLLimit + + "," + fbo.BattSum + + "," + fbo.MVLLimitCount + + "," + fbo.StopType + + ",'" + Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms) + + "')"; + Sql_Mysql sql = new Sql_Mysql(pool); + ResultSet res = null; + try { + res = sql.sqlMysqlQuery(" SELECT * " + + " FROM " + Sql_Mysql.Tb_FboTestData_Inf_Table + + " WHERE BattGroupId = "+BattGoupId+" AND test_starttime = '"+Com.getDateTimeFormat(fbo.TestStartTime.getFBODateTime(), Com.DTF_YMDhms)+"'"); + if(!res.next()) { + //如果不存在则添加inf表记录 + sql.sqlMysqlExecute(sql_str); + }else { + //System.out.println("已存在当前测试数据"); + flag=false; + } + } catch (SQLException e) { + e.printStackTrace(); + } finally { + if(null != res) { + try { + res.close(); + } catch (SQLException e) { + e.printStackTrace(); + } + } + sql.close_con(); + } + } + return flag; + } + + //插入FBO历史数据 + public static boolean insertFBODataIntoTableByOneSql(MysqlConnPool pool,FboDataInf fbo,FboData data,int BattGoupId,int record_num,int max_test_record_count) { + boolean success = false; + if(fbo.getTestTimeLong() > 0) { + createTb_FboTestData_Table(pool, BattGoupId); + ArrayList<String> sql_strs = new ArrayList<>(); + String sql_str = "INSERT INTO "+Sql_Mysql.Tb_FboTestData_Table+BattGoupId+"(BattGroupId,test_record_count,test_starttime,test_timelong,record_time,record_num,online_vol,sum_vol,test_curr,test_cap,mon_num,mon_vol) " + + " VALUES"; + Date record_time = new Date(fbo.TestStartTime.getFBODateTime().getTime()+data.m_TestTime.getTestTimeLong()*1000); + if(data.BattSum > 0) { + //有单体时 + for(int k=0;k<data.BattSum && k<data.SingleVol.length;k++) { + sql_strs.add(sql_str + "(" + + "" + BattGoupId + + "," + max_test_record_count + + ",'" + Com.getDateTimeFormat(fbo.TestStartTime.getFBODateTime(), Com.DTF_YMDhms) + + "'," + data.m_TestTime.getTestTimeLong() + + ",'" + Com.getDateTimeFormat(record_time, Com.DTF_YMDhms) + + "'," + record_num + + "," + data.OnlineVol + + "," + data.SumVoltage + + "," + data.SumCurrent + + "," + data.AllCap + + "," + (k+1) + + "," + data.SingleVol[k] + + ")"); + } + }else { + //没有单体数据时 + sql_strs.add(sql_str + "(" + + "" + BattGoupId + + "," + max_test_record_count + + ",'" + Com.getDateTimeFormat(fbo.TestStartTime.getFBODateTime(), Com.DTF_YMDhms) + + "'," + data.m_TestTime.getTestTimeLong() + + ",'" + Com.getDateTimeFormat(record_time, Com.DTF_YMDhms) + + "'," +record_num + + "," + data.OnlineVol + + "," + data.SumVoltage + + "," + data.SumCurrent + + "," + data.AllCap + + "," + 0 + + "," + 0 + + ")"); + } + Sql_Mysql sql = new Sql_Mysql(pool); + success = sql.makeManualCommit(sql_strs); + sql.close_con(); + } + return success; + } /** * 创建FBO历史数据_ID表 @@ -187,7 +290,19 @@ return (test_record_count+1); } - + //文件导入进度修改 + public static void updateFBOGressByOneSql(MysqlConnPool pool,int file_sum,int file_block,FGCD_TestFBOFile fbofile) { + String sql_str = " update " + Sql_Mysql.Tb_Fgcd_Filedownload_Table + + " set now_data_block1="+file_block+",total_data_block1="+file_sum+" WHERE BattGroupId = " + fbofile.battgroupid+" and dev_id="+fbofile.dev_id; + Sql_Mysql sql = new Sql_Mysql(pool); + try { + sql.sqlMysqlExecute(sql_str); + } catch (SQLException e) { + e.printStackTrace(); + } finally { + sql.close_con(); + } + } public static void updateFBOFIleExportFlag(MysqlConnPool pool, FGCD_TestFBOFile fbofile) { String sql_str = " Update " + Sql_Mysql.Tb_Fgcd_Filedownload_Table + -- Gitblit v1.9.1