package com.table.badbatt;
|
|
import java.sql.Connection;
|
import java.sql.ResultSet;
|
import java.sql.SQLException;
|
import java.sql.Timestamp;
|
import java.text.ParseException;
|
import java.text.SimpleDateFormat;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.UUID;
|
|
import com.mysql_param.Mysql_database_param;
|
import com.table.alarm.AlarmDaoFactory;
|
import com.table.alarm.Alarm_param;
|
import com.table.alarm.Battalarm_data;
|
import com.table_sql.CallBack;
|
import com.table_sql.MySqlPool;
|
|
public class BadBatt_thread2 extends Thread{
|
private MySqlPool m_ConnPool = null;
|
private Connection conn=null;
|
private String selecteffectiveBatt="";//²éѯ³öµç³Ø·Åµç×îÐÂÓÐЧ²âÊÔ
|
private String selectBadSql="";//²éѯ³öÂäºóµ¥Ìå
|
private String insertalarmSql="";//Ïò¸æ¾¯±íÖвåÈëÒòµ¥ÌåÂäºóµ¼Öµĸ澯
|
private String updatealarmSql="";//Âäºóµ¥Ìåɸѡ³öÀ´ºóÐÞ¸ÄͬÀàÐ͵ĸ澯
|
private String deletealarmSql="";//ɾ³ýͬÖÖµ¥ÌåͬÖÖÀàÐ͵¥ÌåÂäºóµ¼Öµĸ澯ʵʱµÄ
|
private String selectParamSql="";//²éѯbatt_param_low±íÖеIJÎÊý
|
private String selectAlarmparamSql="";//²éѯµç³Ø×鏿¾¯²ÎÊý±íÖÐÐÅÏ¢
|
private String deletebadbatt_monSql="";//Çå³ýÂäºóµ¥Ìå±íÖеÄÊý¾Ý
|
private String createbadbatt_monSql="";//´´½¨Âäºóµ¥Ìå±í
|
private String createbadbatt_mon_flagSql="";//´´½¨Âäºóµ¥Ìå±íʾ±í
|
private String deletebadbatt_mon_flagSql="";//Çå¿ÕÂäºóµ¥Ìå±íʾ±í
|
private String searchbadbatt_mon_flagSql="";//¼ì²âÂäºóµ¥Ìå±íʾ±í
|
private String insertbadbatt_monSql="";//ÏòÂäºóµ¥Ìå±íÖвåÈëÊý¾Ý
|
//battinf±í
|
private static String binf=Mysql_database_param.db_battinf+Mysql_database_param.tb_battinf;
|
//testdata_inf±í
|
private static String tinf=Mysql_database_param.db_batt_testdata+Mysql_database_param.tb_batttestdata_inf;
|
//testdatastop±í
|
private static String tstop=Mysql_database_param.db_batt_testdata+Mysql_database_param.tb_batttestdatastop;
|
//batt_param_low±í
|
private static String bparam=Mysql_database_param.web_site+Mysql_database_param.tb_batt_param_low;
|
//tb_alarm_param±í
|
private static String aparam=Mysql_database_param.db_param+Mysql_database_param.tb_alarm_param;
|
//tb_badbatt_mon±í
|
private static String bad_mon=Mysql_database_param.web_site+Mysql_database_param.tb_badbatt_mon;
|
//tb_battalarm_data±í
|
private static String balarm=Mysql_database_param.db_alarm+Mysql_database_param.tb_battalarm_data;
|
//tb_batttestdata_id±í
|
private static String tdata=Mysql_database_param.db_batt_testdata+Mysql_database_param.tb_batttestdata;
|
//tb_badbatt_mon_flag±í£¨Âäºóµ¥Ìåºǫ́¹¦ÄÜÆô¶¯µÄ±êÖ¾±í£©
|
private static String bad_mon_flag=Mysql_database_param.web_site+Mysql_database_param.tb_badbatt_mon_flag;
|
//tb_fbs9100_state±í
|
private static String fbs9100_state=Mysql_database_param.db_ram_db+Mysql_database_param.tb_fbs9100_state;
|
|
public static SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
public static int number=0;//×ܵ¥ÌåÊý-----------
|
public static int hourRate=0;//СʱÂÊ
|
public static double current=0;//µ±Ç°µçÁ÷
|
public static double SumAH=0;//²âÊÔÈÝÁ¿
|
public static double MaxMonomerVol=0;//×î´óµçѹ
|
public static double MonomerVol=0; //×îСµçѹ
|
public static double MonomerVolType=0;//µç³ØµçѹÀàÐÍ
|
public static double realCap=0;//ʵ¼ÊÈÝÁ¿
|
public static float param=0;//ÈÝÁ¿ÓÐЧ²ÎÊý
|
public static double STDAH=0;//±ê´æÈÝÁ¿
|
public BadBatt_thread2(MySqlPool m_ConnPool) {
|
super();
|
this.m_ConnPool = m_ConnPool;
|
/*System.out.println("binf: "+binf);
|
System.out.println("tinf: "+tinf);
|
System.out.println("tstop: "+tstop);
|
System.out.println("bparam: "+bparam);
|
System.out.println("aparam: "+aparam);
|
System.out.println("bad_mon: "+bad_mon);
|
System.out.println("bad_mon_flag: "+bad_mon_flag);
|
System.out.println("fbs9100_state: "+fbs9100_state);*/
|
}
|
//²éѯ³öµç³Ø·ÅµçËùÓзŵç²âÊÔ
|
public List Batt_selecteffectiveBatt(MySqlPool m_ConnPool){
|
|
String sql="select DISTINCT("+tinf+".BattGroupId),"+tinf+".test_starttime,"+tinf+".record_time,"+tinf+".test_cap,"+tinf+".max_monvol,"+tinf+".min_monvol,"+tinf+".test_record_count,"+tinf+".test_curr, "
|
+ " "+binf+".battgroupid,"+binf+".stationname1,"+binf+".stationname,"+binf+".battproducer,"+binf+".battinusedate,"+binf+".MonCapStd,"+binf+".monvolstd,"+binf+".battgroupname "
|
+ " FROM "+tinf+","+binf+","+fbs9100_state+" "
|
+ " WHERE "+tinf+".BattGroupId="+binf+".BattGroupId "
|
+ " and "+binf+".FBSDeviceId="+fbs9100_state+".dev_id "
|
+ " and test_type="+BattCapFactory.test3+" and test_starttype="+BattCapFactory.test_start3+" "
|
+ " and dev_workstate=0 "
|
+ " ORDER BY "+tinf+".battgroupid asc,"+tinf+".test_starttime desc ";
|
//System.out.println(sql);
|
List list=new ArrayList();
|
Connection conn=m_ConnPool.getConn();
|
ResultSet rs=m_ConnPool.sqlMysqlQuery(conn, sql);
|
try {
|
while(rs.next()){
|
Batt_Maint_Dealarm bmd =new Batt_Maint_Dealarm();
|
Batttestdata_inf tinf=new Batttestdata_inf();
|
BattInf binf=new BattInf();
|
binf.setBattGroupId(rs.getInt("battGroupId"));
|
binf.setStationName1(rs.getString("stationName1"));
|
binf.setStationName(rs.getString("stationName"));
|
binf.setBattProducer(rs.getString("battProducer"));
|
if(rs.getString("battInUseDate")!=null)
|
binf.setBattInUseDate(rs.getDate("battInUseDate"));
|
binf.setMonVolStd(rs.getFloat("monVolStd"));
|
binf.setMonCapStd(rs.getFloat("monCapStd"));
|
|
binf.setBattGroupName(rs.getString("battGroupName"));
|
tinf.setBattGroupId(rs.getInt("battGroupId"));
|
if(rs.getString("test_starttime")!=null)
|
tinf.setTest_starttime(rs.getTimestamp("test_starttime"));
|
if(rs.getString("record_time")!=null)
|
tinf.setRecord_time(rs.getTimestamp("record_time"));
|
tinf.setTest_cap(rs.getFloat("test_cap"));
|
tinf.setMax_monvol(rs.getFloat("max_monvol"));
|
tinf.setMin_monvol(rs.getFloat("min_monvol"));
|
tinf.setTest_record_count(rs.getInt("test_record_count"));
|
tinf.setTest_curr(rs.getFloat("test_curr"));
|
|
bmd.setBinf(binf);
|
bmd.setTinf(tinf);
|
list.add(bmd);
|
}
|
} catch (SQLException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
} finally{
|
try {
|
if(rs != null){
|
rs.close();
|
}
|
m_ConnPool.close_con(conn);
|
} catch (SQLException e) {
|
e.printStackTrace();
|
}
|
}
|
return list;
|
}
|
//²éѯ³öÂäºóµ¥Ìå
|
public List Batt_selectBadSql(int battgroupid,int recourd_count,String record_time,MySqlPool m_ConnPool){
|
String usesql=tstop+battgroupid;
|
String sql="select num,BattGroupId,test_record_count,test_type,data_new,data_available,record_num,test_starttime,record_time,test_timelong,group_vol,test_curr,test_cap,mon_num,mon_vol "
|
+ " from "+usesql
|
+ " where test_record_count="+recourd_count+" and record_time='"+record_time+"'";
|
List<Batt_Maint_Dealarm> list=new ArrayList();
|
Connection conn=m_ConnPool.getConn();
|
ResultSet rs=m_ConnPool.sqlMysqlQuery(conn, sql);
|
try {
|
while(rs.next()){
|
Batt_Maint_Dealarm bmd=new Batt_Maint_Dealarm();
|
BattInf binf=new BattInf();
|
Batttestdatastop tstop=new Batttestdatastop();
|
tstop.setNum(rs.getInt("num"));
|
tstop.setBattGroupId(rs.getInt("BattGroupId"));
|
tstop.setTest_record_count(rs.getInt("test_record_count"));
|
tstop.setTest_type(rs.getInt("test_type"));
|
tstop.setData_new(rs.getInt("data_new"));
|
tstop.setData_available(rs.getInt("data_available"));
|
tstop.setRecord_num(rs.getInt("record_num"));
|
tstop.setTest_starttime(rs.getTimestamp("test_starttime"));
|
tstop.setRecord_time(rs.getTimestamp("record_time"));
|
tstop.setTest_timelong(rs.getInt("test_timelong"));
|
tstop.setGroup_vol(rs.getFloat("group_vol"));
|
tstop.setTest_curr(rs.getFloat("test_curr"));
|
tstop.setTest_cap(rs.getFloat("test_cap"));
|
tstop.setMon_num(rs.getInt("mon_num"));
|
tstop.setMon_vol(rs.getFloat("mon_vol"));
|
bmd.setBinf(binf);
|
bmd.setTstop(tstop);
|
list.add(bmd);
|
}
|
} catch (SQLException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}finally {
|
try {
|
if(rs != null){
|
rs.close();
|
}
|
m_ConnPool.close_con(conn);
|
} catch (SQLException e) {
|
e.printStackTrace();
|
}
|
}
|
/*for (Batt_Maint_Dealarm b : list) {
|
System.out.println(b.getTstop());
|
}*/
|
return list;
|
}
|
//Ïò¸æ¾¯±íÖвåÈëÒòµ¥ÌåÂäºóµ¼Öµĸ澯
|
public ArrayList Batt_insertalarmSql(Object obj,MySqlPool m_ConnPool){
|
List<Batt_Maint_Dealarm> list=(List<Batt_Maint_Dealarm>) obj;
|
ArrayList sql_str=new ArrayList();
|
|
if(list.size()>0&&list!=null){
|
|
for(int i=0;i<list.size();i++){
|
Battalarm_data adata = new Battalarm_data();
|
Batttestdatastop tstop=(Batttestdatastop) list.get(i).getTstop();
|
adata.setBattGroupId(tstop.getBattGroupId());
|
adata.setMonNum(tstop.getMon_num());
|
adata.setRecord_Id(UUID.randomUUID().getLeastSignificantBits());
|
adata.setAlm_id(tstop.getNum());
|
//System.out.println("tstop.getNum():"+tstop.getNum());
|
adata.setAlm_signal_id(tstop.getTest_type());//´æ·Å¸æ¾¯ÀàÐ͵ĸߵ͸澯
|
adata.setAlm_level(tstop.getData_available());//ĬÈÏΪ±íÖе±Ç°¸æ¾¯ÀàÐ͵ĸ澯µÈ¼¶
|
adata.setAlm_start_time(new Date());//µ±Ç°¼Ç¼µÄʱ¼ä
|
adata.setAlm_end_time(new Date());
|
adata.setAlm_value(tstop.getTest_cap());//ĬÈÏΪµ±Ç°¸æ¾¯ÀàÐ͵Äʵ¼ÊÖµ
|
adata.setAlm_is_confirmed(0);
|
adata.setAlm_confirmed_time(new Date());//ĬÈÏΪµ±Ç°Ê±¼ä
|
adata.setAlm_cleared_type(0);//ĬÈÏΪʵʱ¸æ¾¯0
|
adata.setUsr_Id(0);
|
int flag=judge(adata, m_ConnPool);//ÅÐ¶Ï¸Äµç³Ø×é¸Ãµ¥ÌåÊÇ·ñ´æÔÚÈÝÁ¿¸æ¾¯¸æ¾¯ºÍÈÝÁ¿¸ü»»¸æ¾¯
|
if(flag==1){
|
//System.out.println(adata.getBattGroupId());
|
updatealarmSql = "update "+balarm+" set Record_Id="+adata.getRecord_Id()+",alm_signal_id="+adata.getAlm_signal_id()+",alm_level="+adata.getAlm_level()
|
+",alm_start_time='"+BadBatt_thread2.sdf.format(adata.getAlm_start_time())+"',alm_end_time='"+BadBatt_thread2.sdf.format(adata.getAlm_end_time())+"',alm_value="+adata.getAlm_value()+",alm_is_confirmed="+adata.getAlm_is_confirmed()
|
+",alm_confirmed_time='"+BadBatt_thread2.sdf.format(adata.getAlm_confirmed_time())+"',usr_Id="+adata.getUsr_Id()
|
+",alm_id="+adata.getAlm_id()
|
+" where BattGroupId="+adata.getBattGroupId()+" and MonNum="+adata.getMonNum()+" and alm_id in("+AlarmDaoFactory.Alarm_CapAlarm+","+AlarmDaoFactory.Alarm_CapChange+") and alm_cleared_type="+adata.getAlm_cleared_type();
|
sql_str.add(updatealarmSql);
|
}else{
|
insertalarmSql="insert into "+balarm+" "
|
+ "("
|
+ "BattGroupId,"
|
+ "MonNum,"
|
+ "Record_Id,"
|
+ "alm_id,"
|
+ "alm_signal_id,"
|
+ "alm_level,"
|
+ "alm_start_time,"
|
+ "alm_end_time,"
|
+ "alm_value,"
|
+ "alm_is_confirmed,"
|
+ "alm_confirmed_time,"
|
+ "alm_cleared_type,"
|
+ "usr_Id"
|
+ ") "
|
+ " values("
|
+ adata.getBattGroupId()+","
|
+ adata.getMonNum()+","
|
+ adata.getRecord_Id()+","
|
+ adata.getAlm_id()+","
|
+ adata.getAlm_signal_id()+","
|
+ adata.getAlm_level()+","
|
+"'"+BadBatt_thread2.sdf.format(adata.getAlm_start_time())+"',"
|
+"'"+BadBatt_thread2.sdf.format(adata.getAlm_end_time())+"',"
|
+ adata.getAlm_value()+","
|
+ adata.getAlm_is_confirmed()+","
|
+"'"+BadBatt_thread2.sdf.format(adata.getAlm_confirmed_time())+"',"
|
+ adata.getAlm_cleared_type()+","
|
+ adata.getUsr_Id()
|
+ ")";//Èç¹û¶ÔÓ¦ÊÇ×Ö·û¼¸¸ö´øÉϵ¥ÒýºÅ
|
sql_str.add(insertalarmSql);
|
}
|
}
|
}
|
return sql_str;
|
}
|
//7.2Âäºóµ¥Ìåɸѡ³öÀ´ºó£¬Íù¸æ¾¯±íÌí¼ÓǰµÄÅжÏ
|
public int judge(Object obj,MySqlPool m_ConnPool){
|
Battalarm_data adata = (Battalarm_data) obj;
|
String sql=" SELECT COUNT(num) AS nums FROM "+balarm+" WHERE battgroupid="+adata.getBattGroupId()+" and monnum="+adata.getMonNum()+" and alm_id in("+AlarmDaoFactory.Alarm_CapAlarm+","+AlarmDaoFactory.Alarm_CapChange+") and alm_cleared_type="+adata.getAlm_cleared_type();
|
//System.out.println(sql);
|
List list=new ArrayList();
|
Connection conn=m_ConnPool.getConn();
|
ResultSet rs=m_ConnPool.sqlMysqlQuery(conn, sql);
|
try {
|
while(rs.next()){
|
int nums=rs.getInt("nums");
|
list.add(nums);
|
}
|
} catch (SQLException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}finally{
|
try {
|
if(rs != null){
|
rs.close();
|
}
|
m_ConnPool.close_con(conn);
|
} catch (SQLException e) {
|
e.printStackTrace();
|
}
|
}
|
int flag=0;//·µ»Ø±êʶ·û
|
if(list!=null&&list.size()>0){
|
int nums=(Integer) list.get(list.size()-1);
|
if(nums>0){
|
flag=1;
|
}else{
|
flag=0;
|
}
|
}
|
//System.out.println(adata.getBattGroupId()+" "+adata.getMonNum()+" "+adata.getAlm_id()+" "+flag);
|
return flag;
|
}
|
//²éѯ±íbatt_param_lowÖеIJÎÊý
|
public List batt_paramsearchSql(Batt_param_low param,MySqlPool m_ConnPool){
|
String sql="select "+bparam+".num,"+bparam+".low_type,"+bparam+".low_nametype,"+bparam+".low_value,"+bparam+".low_method from "+bparam+" where "+bparam+".low_type="+param.getLow_type()+" and "+bparam+".low_nametype="+param.getLow_nametype()+" limit 1";
|
//System.out.println(sql);
|
List list=new ArrayList();
|
Connection conn=m_ConnPool.getConn();
|
ResultSet rs=m_ConnPool.sqlMysqlQuery(conn, sql);
|
try {
|
while(rs.next()){
|
Batt_param_low blow=new Batt_param_low();
|
blow.setNum(rs.getInt("num"));
|
blow.setLow_type(rs.getInt("low_type"));
|
blow.setLow_nametype(rs.getInt("low_nametype"));
|
blow.setLow_value(rs.getFloat("low_value"));
|
blow.setLow_method(rs.getInt("low_method"));
|
list.add(blow);
|
}
|
} catch (SQLException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}finally {
|
try {
|
if(rs != null){
|
rs.close();
|
}
|
m_ConnPool.close_con(conn);
|
} catch (SQLException e) {
|
e.printStackTrace();
|
}
|
}
|
return list;
|
|
}
|
//²éѯµç³Ø¸æ¾¯²ÎÊý±íalarm_param
|
public List batt_alarmparamSql(int alm_id,MySqlPool m_ConnPool){
|
String sql="select num,alm_id,alm_name,alm_high_coe,alm_low_coe,alm_high_level,alm_low_level,alm_high_en,alm_low_en from "+aparam+" where alm_id="+alm_id;
|
List list=new ArrayList();
|
Connection conn=m_ConnPool.getConn();
|
ResultSet rs=m_ConnPool.sqlMysqlQuery(conn, sql);
|
try {
|
while(rs.next()){
|
Alarm_param ap=new Alarm_param();
|
ap.setNum(rs.getInt("num"));
|
ap.setAlm_id(rs.getInt("alm_id"));
|
ap.setAlm_name(rs.getString("alm_name"));
|
ap.setAlm_high_coe(rs.getFloat("alm_high_coe"));
|
ap.setAlm_low_coe(rs.getFloat("alm_low_coe"));
|
ap.setAlm_high_level(rs.getInt("alm_high_level"));
|
ap.setAlm_low_level(rs.getInt("alm_low_level"));
|
ap.setAlm_high_en(rs.getInt("alm_high_en"));
|
ap.setAlm_low_en(rs.getInt("alm_low_en"));
|
list.add(ap);
|
}
|
} catch (SQLException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}finally {
|
try {
|
if(rs != null){
|
rs.close();
|
}
|
m_ConnPool.close_con(conn);
|
} catch (SQLException e) {
|
e.printStackTrace();
|
}
|
}
|
return list;
|
}
|
//Åжϴ˴εÄɸѡ³öÀ´µÄ·Åµç¼Ç¼ÓëÊý¾Ý¿âÖдæ·ÅµÄÊÇ·ñÒ»ÖÂ
|
public int badbatt_judgeInorNotSql(Object obj,MySqlPool m_ConnPool){
|
Batttestdata_inf tinf=(Batttestdata_inf) obj;
|
String sql="select count(num) as nums from "+bad_mon+" "
|
+ " WHERE "+bad_mon+".battgroupid="+tinf.getBattGroupId()+" "
|
+ " and "+bad_mon+".test_starttime='"+BadBatt_thread2.sdf.format(tinf.getTest_starttime())+"' LIMIT 1";
|
Connection conn=m_ConnPool.getConn();
|
ResultSet rs=m_ConnPool.sqlMysqlQuery(conn, sql);
|
int nums=0;//±íʾλ
|
try {
|
while(rs.next()){
|
nums=rs.getInt("nums");
|
}
|
} catch (SQLException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}finally {
|
try {
|
if(rs != null){
|
rs.close();
|
}
|
m_ConnPool.close_con(conn);
|
} catch (SQLException e) {
|
e.printStackTrace();
|
}
|
}
|
return nums;
|
}
|
//´´½¨µ¥ÌåÂäºóµÄ±íbadBatt_Mon
|
public ArrayList badBatt_Moninsert(Object obj){
|
List<Batt_Maint_Dealarm> list=(List) obj;
|
ArrayList sql_str=new ArrayList();
|
|
//´´½¨Êý¾Ý±í
|
createbadbatt_monSql="CREATE TABLE IF NOT EXISTS "+bad_mon+" "
|
+ "("
|
+ "`num` int(11) NOT NULL AUTO_INCREMENT,"
|
+ "`battgroupid` int NOT NULL DEFAULT '0',"
|
+ " `mon_num` int NOT NULL DEFAULT '0',"
|
+ "`record_num` int NOT NULL DEFAULT '0',"
|
+ "`test_starttime` datetime NOT NULL DEFAULT '1982-01-01 00:00:00',"
|
+ "`group_vol` float NOT NULL DEFAULT '0',"
|
+ "`test_curr` float NOT NULL DEFAULT '0',"
|
+ "`mon_vol` float NOT NULL DEFAULT '0',"
|
+ "`real_cap` float NOT NULL DEFAULT '0',"
|
+ "`stdcap` float NOT NULL DEFAULT '0',"
|
+ "`note` varchar(64) COLLATE utf8_unicode_ci NOT NULL DEFAULT ' ',"
|
+ "PRIMARY KEY (`num`),"
|
+ "KEY `index_num` (`battgroupid`)"
|
+ ")";
|
sql_str.add(createbadbatt_monSql);
|
|
//ɾ³ýÊý¾Ý±í
|
// deletebadbatt_monSql="DELETE FROM "+bad_mon+" WHERE num>0";//truncate table ....
|
//sql_str.add(deletebadbatt_monSql);
|
|
//Ïòtb_badbatt_mon±íÖвåÈëÊý¾Ý
|
if(list.size()>0&&list!=null){
|
|
insertbadbatt_monSql="insert into "+bad_mon+" "
|
+ "("
|
+ "battgroupid,"
|
+ "mon_num,"
|
+ "record_num,"
|
+ "test_starttime,"
|
+ "group_vol,"
|
+ "test_curr,"
|
+ "mon_vol,"
|
+ "real_cap,"
|
+ "stdcap"
|
+ ") "
|
+ " values ";
|
for(int i=0;i<list.size();i++){
|
Batttestdatastop tsop=list.get(i).getTstop();
|
int battgroupid=0;
|
if(i>0){
|
deletebadbatt_monSql="DELETE FROM "+bad_mon+" WHERE battgroupid="+tsop.getBattGroupId()+" ";
|
if(battgroupid!=tsop.getBattGroupId()){
|
battgroupid=tsop.getBattGroupId();
|
sql_str.add(deletebadbatt_monSql);
|
}
|
insertbadbatt_monSql+=" , ";
|
insertbadbatt_monSql=insertbadbatt_monSql
|
+ "("
|
+ tsop.getBattGroupId()+","
|
+ tsop.getMon_num()+","
|
+ tsop.getRecord_num()+","
|
+ "'"+BadBatt_thread2.sdf.format(tsop.getTest_starttime())+"',"
|
+ tsop.getGroup_vol()+","
|
+ tsop.getTest_curr()+","
|
+ tsop.getMon_vol()+","
|
+ tsop.getTest_cap()+","
|
+ list.get(i).getBinf().getMonCapStd()+""
|
+ ")";//Èç¹û¶ÔÓ¦ÊÇ×Ö·û¼¸¸ö´øÉϵ¥ÒýºÅ
|
}
|
}
|
//System.out.println("insertbadbatt_monSql:"+insertbadbatt_monSql);
|
sql_str.add(insertbadbatt_monSql);
|
|
}
|
return sql_str;
|
}
|
//´´½¨badBatt_Mon_flag±í
|
public void badBatt_Mon_flagcreate(MySqlPool m_ConnPool){
|
//´´½¨Âäºóµ¥ÌåµÄ±íʾ±í
|
createbadbatt_mon_flagSql="CREATE TABLE IF NOT EXISTS "+bad_mon_flag+" "
|
+ "("
|
+ "`num` int(11) NOT NULL AUTO_INCREMENT,"
|
+ "`count` int NOT NULL DEFAULT '0',"
|
+ "PRIMARY KEY (`num`)"
|
+ ")";
|
Connection conn=m_ConnPool.getConn();
|
Boolean bl=m_ConnPool.sqlMysqlUpdate(conn, createbadbatt_mon_flagSql);
|
System.out.println("createbadbatt_mon_flagSql:"+bl);
|
}
|
//Çå¿ÕbadBatt_Mon_flag±í
|
public boolean badBatt_Mon_flagdelete(MySqlPool m_ConnPool){
|
deletebadbatt_mon_flagSql="DELETE FROM "+bad_mon_flag+" WHERE num>0";
|
Connection conn=m_ConnPool.getConn();
|
Boolean bl=m_ConnPool.sqlMysqlUpdate(conn, deletebadbatt_mon_flagSql);
|
return bl;
|
}
|
//¼ì²âbadBatt_Mon_flag±íÊý¾ÝÁ¿
|
public boolean badBatt_Mon_flagsearch(MySqlPool m_ConnPool){
|
searchbadbatt_mon_flagSql=" select count(num) as nums from "+bad_mon_flag+" limit 1";
|
Connection conn=m_ConnPool.getConn();
|
ResultSet rs=m_ConnPool.sqlMysqlQuery(conn, searchbadbatt_mon_flagSql);
|
boolean bl=false;
|
try {
|
while(rs.next()){
|
int nums=rs.getInt("nums");
|
if(nums>0){
|
bl=true;
|
}
|
}
|
} catch (SQLException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}finally {
|
try {
|
if(rs != null){
|
rs.close();
|
}
|
m_ConnPool.close_con(conn);
|
} catch (SQLException e) {
|
e.printStackTrace();
|
}
|
}
|
return bl;
|
}
|
//7.1Âäºóµ¥ÌåɸѡÖе±µ¥Ìåµç<±ê´æµçѹ*0.9ʱµÄ²âÊÔµçÈݾÍÊÇʵ¼ÊµçÈÝ
|
public float Batt_serchRealCap(int battgroupid,int test_record_count,float mon_vol,int mon_num,MySqlPool m_ConnPool){
|
String sql="select test_cap from "+tdata+battgroupid+" "+
|
" WHERE test_record_count="+test_record_count+" and mon_vol>"+mon_vol+" and mon_num="+mon_num+" " +
|
" order by record_time DESC " +
|
" LIMIT 1 ";
|
List list=new ArrayList();
|
Connection conn=m_ConnPool.getConn();
|
ResultSet rs=m_ConnPool.sqlMysqlQuery(conn, sql);
|
try {
|
while(rs.next()){
|
float test_cap=rs.getFloat("test_cap");
|
list.add(Math.abs(test_cap));
|
}
|
} catch (SQLException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}finally{
|
try {
|
if(rs != null){
|
rs.close();
|
}
|
m_ConnPool.close_con(conn);
|
} catch (SQLException e) {
|
e.printStackTrace();
|
}
|
}
|
float test_cap=0f;
|
if(list!=null&&list.size()>0){
|
test_cap=(Float) list.get(list.size()-1);
|
}
|
return test_cap;
|
|
}
|
//µç³Øµ¥Ìå²éѯ²¢´´½¨
|
public void serchBadBattandInsert(){
|
List<Batt_Maint_Dealarm> listE=Batt_selecteffectiveBatt(m_ConnPool);
|
Batt_param_low capLow=new Batt_param_low();
|
capLow.setLow_type(BattCapFactory.CapType_type);//2
|
capLow.setLow_nametype(BattCapFactory.CapType_name);//1
|
capLow.setLow_method(BattCapFactory.CapType_method);//0
|
|
List<Batt_param_low> listC=batt_paramsearchSql(capLow, m_ConnPool);
|
if(listC!=null&&listC.size()>0){
|
param=listC.get(listC.size()-1).getLow_value();//0.01
|
}
|
int flag=0;//¸Ã´Î·ÅµçÊÇ·ñÓÐЧÅжÏ
|
List<Batt_Maint_Dealarm> list=new ArrayList();//´æ·Å·ÅµçÓÐЧµÄ²âÊÔ
|
if(listE!=null&&listE.size()>0){
|
for(int i=0;i<listE.size();i++){
|
STDAH=listE.get(i).getBinf().getMonCapStd();
|
float testCap=listE.get(i).getTinf().getTest_cap();//´Ë´Î·ÅµçÁ¿Í³¼Æ
|
flag=BattCapFactory.Judge(testCap, param, STDAH);
|
//System.out.println("testCap:"+testCap+" param:"+param+" STDAH:"+STDAH);
|
if(flag==1){
|
if(list.size()>0){
|
int tdata_battgroupid=listE.get(i).getTinf().getBattGroupId();
|
int e_battgroupid=list.get(list.size()-1).getTinf().getBattGroupId();
|
if(tdata_battgroupid!=e_battgroupid){
|
list.add(listE.get(i));
|
}else{
|
continue;
|
}
|
}else{
|
list.add(listE.get(i));
|
}
|
flag=0;
|
}
|
}
|
}
|
|
System.out.println("list¿ªÊ¼---------------------");
|
//List listAll=new ArrayList();//´æ·Å×îºó²éѯ³öÀ´µÄËùÓÐÂäºóµç³Ø×éµÄÂäºóµ¥Ìå
|
float aparam=0;
|
int Caplevel=0;
|
int Changelevel=0;//¸æ¾¯µÈ¼¶
|
//System.out.println(selectAlarmparamSql);
|
List<Alarm_param> listA=batt_alarmparamSql(AlarmDaoFactory.Alarm_CapAlarm, m_ConnPool);
|
if(listA!=null&&listA.size()>0){
|
aparam=listA.get(listA.size()-1).getAlm_low_coe();
|
Caplevel=listA.get(listA.size()-1).getAlm_low_level();
|
}
|
float Cparam=0;//ÈÝÁ¿¸ü»»¸æ¾¯²ÎÊý
|
List<Alarm_param> listC1=batt_alarmparamSql(AlarmDaoFactory.Alarm_CapChange, m_ConnPool);
|
if(listC1!=null&&listA.size()>0){
|
Cparam=listC1.get(listC1.size()-1).getAlm_low_coe();
|
Changelevel=listC1.get(listC1.size()-1).getAlm_low_level();
|
}
|
List<Batt_Maint_Dealarm> listB=new ArrayList();//´æ·ÅÂäºóµ¥Ìå
|
for (int j = 0; j < list.size(); j++) {
|
//Åжϴ˴εÄɸѡ³öÀ´µÄ·Åµç¼Ç¼ÓëÊý¾Ý¿âÖдæ·ÅµÄÊÇ·ñÒ»ÖÂ
|
int badbattInorNot=badbatt_judgeInorNotSql(list.get(j).getTinf(),m_ConnPool);
|
if(badbattInorNot!=0){
|
System.out.println("badbattInorNot: "+list.get(j).getTinf().getBattGroupId()+" "+badbattInorNot);
|
break;
|
}
|
//System.out.println(list.get(j).getBinf().getBattGroupId()+" "+list.get(j).getTinf().getBattGroupId()+" "+BadBatt_thread.sdf.format(list.get(j).getTinf().getRecord_time())+" "+list.get(j).getTinf().getTest_cap()+" "+list.get(j).getTinf().getTest_record_count());
|
List<Batt_Maint_Dealarm> listT=Batt_selectBadSql(list.get(j).getTinf().getBattGroupId(), list.get(j).getTinf().getTest_record_count(),BadBatt_thread2.sdf.format(list.get(j).getTinf().getRecord_time()), m_ConnPool );
|
//System.out.println(listT.get(listT.size()-1).getTstop().getBattGroupId()+" "+"listT.size():"+listT.size());
|
BattInf binf=list.get(j).getBinf();//´æÈ¡Çóʵ¼ÊÈÝÁ¿µÄ²ÎÊý
|
Batttestdata_inf tinf=list.get(j).getTinf();
|
|
if(listT!=null&&listT.size()>0){
|
for(int z=0;z<listT.size();z++){
|
STDAH=binf.getMonCapStd();
|
MonomerVolType=binf.getMonVolStd();
|
|
current=listT.get(z).getTstop().getTest_curr();
|
SumAH=listT.get(z).getTstop().getTest_cap();
|
MaxMonomerVol=tinf.getMax_monvol();//×î´óµçѹ
|
MonomerVol=listT.get(z).getTstop().getMon_vol();
|
hourRate=BattCapFactory.GetHourRate(STDAH, current);
|
//System.out.println(listT.get(z).getTstop().getBattGroupId()+" "+listT.get(z).getTstop().getTest_record_count()+" "+listT.get(z).getTstop().getMon_num()+" "+listT.get(z).getTstop().getMon_vol()+" "+binf.getMonVolStd()*BattCapFactory.test_stop);
|
if(listT.get(z).getTstop().getMon_vol()>binf.getMonVolStd()*BattCapFactory.test_stop){
|
realCap=BattCapFactory.GetMonomerCap(STDAH, hourRate, SumAH, MaxMonomerVol, MonomerVol, MonomerVolType, BattCapFactory.CapType_Real);
|
}else{
|
realCap=Batt_serchRealCap(listT.get(z).getTstop().getBattGroupId(),listT.get(z).getTstop().getTest_record_count(),binf.getMonVolStd()*BattCapFactory.test_stop,listT.get(z).getTstop().getMon_num(),m_ConnPool);
|
//System.out.println("111: "+listT.get(z).getTstop().getBattGroupId()+" "+listT.get(z).getTstop().getTest_record_count()+" "+listT.get(z).getTstop().getMon_vol()+" "+binf.getMonVolStd()*BattCapFactory.test_stop+" "+listT.get(z).getTstop().getMon_num());
|
}
|
//System.out.println(listT.get(z).getTstop().getBattGroupId()+" realCap:"+realCap+" STDAH:"+STDAH+" MonomerVolType:"+MonomerVolType+" current:"+current+" SumAH:"+SumAH+" MaxMonomerVol:"+MaxMonomerVol+" MonomerVol:"+MonomerVol+" hourRate:"+hourRate);
|
flag=BattCapFactory.JudgeAlarm(realCap, aparam,Cparam, STDAH);
|
if(flag!=1){
|
listT.get(z).getTstop().setNum(flag);
|
listT.get(z).setBinf(binf);//½«µç³Ø×éÐÅÏ¢ÉèÖýøÈ¥
|
if(flag==AlarmDaoFactory.Alarm_CapAlarm){
|
listT.get(z).getTstop().setData_available(Caplevel);//´æ·Å¸æ¾¯µÈ¼¶
|
listT.get(z).getTstop().setTest_type(AlarmDaoFactory.Alarm_IGNAL_ID_CapAlarmLow);//´æ·Åalm_signal_id
|
listT.get(z).getTstop().setTest_cap(Float.parseFloat(String.valueOf(realCap)));
|
}else if(flag==AlarmDaoFactory.Alarm_CapChange){
|
listT.get(z).getTstop().setData_available(Changelevel);//´æ·Å¸æ¾¯µÈ¼¶
|
listT.get(z).getTstop().setTest_type(AlarmDaoFactory.Alarm_IGNAL_ID_CapChangeLow);//´æ·Åalm_signal_id
|
listT.get(z).getTstop().setTest_cap(Float.parseFloat(String.valueOf(realCap)));
|
}
|
listB.add(listT.get(z));
|
}
|
flag=1;
|
}
|
}
|
try {
|
Thread.sleep(10);
|
} catch (InterruptedException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
}
|
/*for (Batt_Maint_Dealarm b : listB) {
|
System.out.println(b.getTstop());
|
}*/
|
System.out.println(listB.size());
|
ArrayList sql_str=badBatt_Moninsert(listB);
|
boolean b=MySqlPool.makeManualCommit(m_ConnPool.getConn(), sql_str);
|
System.out.println("ÊÇ·ñ½«Âäºóµ¥Ìå²åÈëµ½±íÖÐ"+b);
|
//System.out.println("number:"+listB.size());
|
boolean bflag=badBatt_Mon_flagdelete(m_ConnPool);
|
System.out.println("Çå¿ÕÂäºóµ¥Ìå±íʾ±í"+bflag);
|
|
ArrayList sql_str1=Batt_insertalarmSql(listB,m_ConnPool);//¸æ¾¯²åÈëÓï¾ä
|
//System.out.println(sql_str1);
|
boolean bla=MySqlPool.makeManualCommit(m_ConnPool.getConn(), sql_str1);
|
System.out.println("½«Âäºó¸æ¾¯Ìå²åÈëµ½¸æ¾¯±íÖÐ:"+bla);
|
}
|
public void run(){
|
System.out.println("Æô¶¯¶¨Ê±²éѯÂäºóµ¥ÌåÐÅÏ¢±íºÍÂäºó¸æ¾¯²åÈë±í!------badbatt_threadÆô¶¯");
|
long tenHouerAgo=(new Date()).getTime()-10*60*1000;
|
while(true){
|
badBatt_Mon_flagcreate(m_ConnPool);
|
boolean bl=badBatt_Mon_flagsearch(m_ConnPool);
|
System.out.println("¼ì²âbadBatt_Mon_flag±íÊý¾ÝÁ¿: "+bl+" "+new Date());
|
if(bl){
|
serchBadBattandInsert();
|
}else{
|
try {
|
Thread.sleep(5*1000);
|
} catch (InterruptedException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
}
|
long nowtime=(new Date()).getTime();
|
if((nowtime-tenHouerAgo)>=10*60*1000){
|
serchBadBattandInsert();
|
tenHouerAgo=nowtime;
|
}
|
}
|
|
}
|
public static void main(String[] args) {
|
MySqlPool mPool=new MySqlPool();
|
Connection conn=mPool.getConn();
|
BadBatt_thread2 bd_t=new BadBatt_thread2(mPool);
|
//bd_t.Batt_selecteffectiveBatt();
|
bd_t.start();
|
}
|
}
|