package com.table.badbatt;
|
|
import java.awt.dnd.DropTargetListener;
|
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.Calendar;
|
import java.util.Date;
|
import java.util.Iterator;
|
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_thread 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_thread(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);*/
|
}
|
//´´½¨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);
|
}
|
//´´½¨badBattMon±íÈç¹ûûÓÐÔò´´½¨
|
public void insertBadBatt(MySqlPool m_ConnPool) {
|
//´´½¨Êý¾Ý±í
|
String 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 ' ',"
|
+ "`flag` int NOT NULL DEFAULT '4',"
|
+ "PRIMARY KEY (`num`),"
|
+ "KEY `index_num` (`battgroupid`)"
|
+ ")";
|
Connection conn=m_ConnPool.getConn();
|
Boolean bl=m_ConnPool.sqlMysqlUpdate(conn, createbadbatt_mon_flagSql);
|
}
|
//¼ì²â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;
|
}
|
//Ð޸Ľø³Ì¼à¿Ø±íÖеÄʵʱʱ¼ä
|
public boolean processupdateSql(Date nowdate,String ProcessName,MySqlPool m_ConnPool_){
|
String sql=" update "+Mysql_database_param.web_site+Mysql_database_param.tb_Process_survey+" "
|
+" set ProcessTime='"+BadBatt_thread.sdf.format(nowdate)
|
+"' where ProcessName='"+ProcessName+"'";
|
Connection conn=m_ConnPool_.getConn();
|
//System.out.println(sql);
|
boolean bl=m_ConnPool_.sqlMysqlUpdate(conn, sql);
|
return bl;
|
}
|
//»ñÈ¡µ±Ç°Ìì23µã59·Ö59ÃëµÄtime
|
public long getDateTIme() {
|
Calendar calendar2 = Calendar.getInstance();
|
|
calendar2.set(calendar2.get(Calendar.YEAR), calendar2.get(Calendar.MONTH), calendar2.get(Calendar.DAY_OF_MONTH),
|
23,59, 0);
|
Date endOfDate = calendar2.getTime();
|
//String time=BadBatt_thread.sdf.format(endOfDate);
|
long time=endOfDate.getTime();
|
return time;
|
}
|
//²éѯµç³Ø¸æ¾¯²ÎÊý±í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+" and alm_low_en=1 ";
|
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 List Batt_selectBadSql(int battgroupid,int recourd_count,int record_num,String record_time,MySqlPool m_ConnPool){
|
String usesql=tdata+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_num="+record_num+" and record_time='"+record_time+"'";
|
//System.out.println(sql);
|
List<Batttestdatastop> list=new ArrayList();
|
Connection conn=m_ConnPool.getConn();
|
ResultSet rs=m_ConnPool.sqlMysqlQuery(conn, sql);
|
try {
|
while(rs.next()){
|
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"));
|
list.add(tstop);
|
}
|
} 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;
|
}
|
//1.²éѯËùÓÐµÄµç³Ø×é
|
public List<BattInf> getAllBinf(MySqlPool m_ConnPool){
|
String sql="select distinct * from db_battinf.tb_battinf order by BattGroupId asc ";
|
List list=new ArrayList();
|
Connection conn=m_ConnPool.getConn();
|
ResultSet rs=m_ConnPool.sqlMysqlQuery(conn, sql);
|
try {
|
while(rs.next()){
|
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"));
|
binf.setMonCount(rs.getInt("moncount"));
|
list.add(binf);
|
}
|
} 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;
|
|
}
|
//2.²éѯÿ¸öµç³Ø×éµÄÓÐЧ·Åµç¼Ç¼£¬Èç¹ûÕÒ²»µ½½«Õû×éµ¥Ìå±ê¼ÇΪ"ÎÞ·¨ÅжÏ"£¬½«
|
public Batttestdata_inf getEffectiveTinf(int battGroupId,MySqlPool m_ConnPool) {
|
String sql="select tb_batttestdata_inf.BattGroupId ,test_record_count,record_num, test_curr, max_monvol, min_monvol, test_cap"
|
+ " , test_starttime,record_time, test_timelong"
|
+ " from db_batt_testdata.tb_batttestdata_inf "
|
+ " where db_batt_testdata.tb_batttestdata_inf.data_available = 1 "
|
+ " and test_type = 3 "
|
+ " and (test_stoptype in (3, 4, 6) "
|
+ " or (test_stoptype = 2 and test_timelong >= 7200)) "
|
+ " and BattGroupId="+battGroupId
|
+ " ORDER BY tb_batttestdata_inf.BattGroupId asc, test_starttime desc "
|
+ " limit 1";
|
//System.out.println(sql);
|
List<Batttestdata_inf> list=new ArrayList<>();
|
Connection conn=m_ConnPool.getConn();
|
ResultSet rs=m_ConnPool.sqlMysqlQuery(conn, sql);
|
try {
|
while(rs.next()){
|
Batttestdata_inf tinf=new Batttestdata_inf();
|
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_timelong(rs.getInt("test_timelong"));
|
tinf.setTest_cap(rs.getFloat("test_cap"));
|
tinf.setMax_monvol(rs.getFloat("max_monvol"));
|
tinf.setMin_monvol(rs.getFloat("min_monvol"));
|
tinf.setTest_curr(rs.getFloat("test_curr"));
|
tinf.setTest_record_count(rs.getInt("test_record_count"));
|
tinf.setRecord_num(rs.getInt("record_num"));
|
list.add(tinf);
|
}
|
} 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();
|
}
|
}
|
if(list.size()>0) {
|
return list.get(list.size()-1);
|
}else {
|
return null;
|
}
|
|
}
|
//±ê¼ÇΪÎÞ·¨ÅжϣºflagΪ4²¢²åÈë
|
public void insertUnjudge(BattInf binf,String note,int flag,MySqlPool m_ConnPool) {
|
ArrayList sql_str=new ArrayList();
|
String deletebadbatt_monSql="DELETE FROM "+bad_mon+" WHERE battgroupid="+binf.getBattGroupId()+" ";
|
sql_str.add(deletebadbatt_monSql);
|
String insertbadbatt_monSql="insert into "+bad_mon+" "
|
+ "("
|
+ "battgroupid,"
|
+ "mon_num,"
|
+ "record_num,"
|
+ "test_starttime,"
|
+ "group_vol,"
|
+ "test_curr,"
|
+ "mon_vol,"
|
+ "real_cap,"
|
+ "stdcap,"
|
+ "note,"
|
+ "flag"
|
+ ") "
|
+ " values ";
|
for(int i=0;i<binf.getMonCount();i++){
|
if(i>0){
|
insertbadbatt_monSql+=" , ";
|
}
|
insertbadbatt_monSql=insertbadbatt_monSql
|
+ "("
|
+ binf.getBattGroupId()+","
|
+ (i+1)+","
|
+ 0+","
|
+ "'1972-01-01 00:00:00',"
|
+ 0+","
|
+ 0+","
|
+ 0+","
|
+ 0+","
|
+ binf.getMonCapStd()+","
|
+ "'"+note+"',"
|
+ flag+""
|
+ ")";//Èç¹û¶ÔÓ¦ÊÇ×Ö·û¼¸¸ö´øÉϵ¥ÒýºÅ
|
}
|
sql_str.add(insertbadbatt_monSql);
|
MySqlPool.makeManualCommit(m_ConnPool.getConn(), sql_str);
|
}
|
//¼ÆËã³öÂäºóµ¥Ìå
|
public List calculatorBadBatt(int battGroupId,double monCapStd,double monVolStd,double maxVol,List<Batttestdatastop> stopList,MySqlPool m_ConnPool) {
|
//²éѯ¸æ¾¯ÂäºóºÍ¸ü»»µÄ²ÎÊýÖµ
|
float aparam=1;
|
int Caplevel=1;
|
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;//ÈÝÁ¿¸ü»»¸æ¾¯²ÎÊý
|
int Changelevel=0;//¸æ¾¯µÈ¼¶
|
List<Alarm_param> listC1=batt_alarmparamSql(AlarmDaoFactory.Alarm_CapChange, m_ConnPool);
|
if(listC1!=null&&listC1.size()>0){
|
Cparam=listC1.get(listC1.size()-1).getAlm_low_coe();
|
Changelevel=listC1.get(listC1.size()-1).getAlm_low_level();
|
}
|
List<BadbattMon> list=new ArrayList<>();
|
if(stopList!=null&&stopList.size()>0){
|
for(int i=0;i<stopList.size();i++){
|
Batttestdatastop stop=stopList.get(i);
|
if(i%12==0){
|
//Ð޸Ľø³Ì¼à¿Ø±íÖеÄʵʱʱ¼ä
|
boolean b=processupdateSql(new Date(),Mysql_database_param.BMS_FBSDEV_BADBATT_MON, m_ConnPool);
|
}
|
STDAH=monCapStd;
|
MonomerVolType=monVolStd;
|
current=stop.getTest_curr();
|
SumAH=stop.getTest_cap();
|
MaxMonomerVol=maxVol;//×éÄÚ×î´óµçѹ
|
MonomerVol=stop.getMon_vol();
|
//СʱÂÊ
|
hourRate=BattCapFactory.GetHourRate(STDAH, current);
|
//ʵ¼ÊÈÝÁ¿
|
realCap=BattCapFactory.GetMonomerCap(STDAH, hourRate, SumAH, MaxMonomerVol, MonomerVol, MonomerVolType, BattCapFactory.CapType_Real);
|
int flag=1;//±êʶλ
|
flag=BattCapFactory.JudgeAlarm(realCap, aparam,Cparam, STDAH);
|
BadbattMon badMon=new BadbattMon();
|
badMon.setBattgroupid(stop.getBattGroupId());
|
badMon.setMonNum(stop.getMon_num());
|
badMon.setRecordNum(stop.getRecord_num());
|
badMon.setTestStarttime(stop.getTest_starttime());
|
badMon.setGroupVol(stop.getGroup_vol());
|
badMon.setTestCurr(stop.getTest_curr());
|
badMon.setMonVol(stop.getMon_vol());
|
badMon.setStdcap((float) monCapStd);
|
badMon.setRealCap((float) realCap);
|
badMon.setNote(String.valueOf(flag));
|
switch (flag) {
|
case 1:badMon.setFlag(3);break;
|
case BattCapFactory.Alarm_CapAlarm:badMon.setFlag(2);break;
|
case BattCapFactory.Alarm_CapChange:badMon.setFlag(1);break;
|
}
|
list.add(badMon);
|
}
|
}else {
|
BattInf binf=new BattInf();
|
binf.setBattGroupId(battGroupId);
|
binf.setMonCapStd((float) monCapStd);
|
insertUnjudge(binf,"2",4,m_ConnPool);
|
}
|
try {
|
Thread.sleep(10);
|
} catch (InterruptedException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
return list;
|
}
|
|
//4.½«Êý¾Ý²åÈëbadBattMon±í
|
public void insertBadBatt(List<BadbattMon> badList,MySqlPool m_ConnPool) {
|
ArrayList sql_str=new ArrayList();
|
String insertbadbatt_monSql="insert into "+bad_mon+" "
|
+ "("
|
+ "battgroupid,"
|
+ "mon_num,"
|
+ "record_num,"
|
+ "test_starttime,"
|
+ "group_vol,"
|
+ "test_curr,"
|
+ "mon_vol,"
|
+ "real_cap,"
|
+ "stdcap,"
|
+ "note,"
|
+ "flag"
|
+ ") "
|
+ " values ";
|
for(int i=0;i<badList.size();i++){
|
BadbattMon badMon=badList.get(i);
|
if(i>0){
|
insertbadbatt_monSql+=" , ";
|
}else {
|
String deletebadbatt_monSql="DELETE FROM "+bad_mon+" WHERE battgroupid="+badMon.getBattgroupid()+" ";
|
sql_str.add(deletebadbatt_monSql);
|
}
|
insertbadbatt_monSql=insertbadbatt_monSql
|
+ "("
|
+ badMon.getBattgroupid()+","
|
+ badMon.getMonNum()+","
|
+ badMon.getRecordNum()+","
|
+ "'"+badMon.getTestStarttime()+"',"
|
+ badMon.getGroupVol()+","
|
+ badMon.getTestCurr()+","
|
+ badMon.getMonVol()+","
|
+ badMon.getRealCap()+","
|
+ badMon.getStdcap()+","
|
+ badMon.getNote()+","
|
+ badMon.getFlag()+""
|
+ ")";//Èç¹û¶ÔÓ¦ÊÇ×Ö·û¼¸¸ö´øÉϵ¥ÒýºÅ
|
}
|
sql_str.add(insertbadbatt_monSql);
|
MySqlPool.makeManualCommit(m_ConnPool.getConn(), sql_str);
|
}
|
//ɽÎ÷Ì«¹©×îаæÊµ¼ÊÈÝÁ¿Ëã·¨
|
public void serchBadBattandInsert_TG(){
|
//1.²éѯËùÓÐµÄµç³Ø×é
|
List<BattInf> binfList=getAllBinf(m_ConnPool);
|
//2.²éѯÿ¸öµç³Ø×éµÄÓÐЧ·Åµç¼Ç¼£¬Èç¹ûÕÒ²»µ½½«Õû×éµ¥Ìå±ê¼ÇΪ"ÎÞ·¨ÅжÏ"£¬½«
|
for (BattInf binf : binfList) {
|
Batttestdata_inf tinf=getEffectiveTinf(binf.getBattGroupId(),m_ConnPool);
|
if(tinf!=null) {
|
//3.¼ÆËãÿ¸öµ¥ÌåµÄʵ¼ÊÈÝÁ¿²¢ÅжÏÊÇ·ñΪ¸æ¾¯»ò¸ü»»»òÓÅÐã(1,2,3)
|
List<Batttestdatastop> stopList=Batt_selectBadSql(binf.getBattGroupId(), tinf.getTest_record_count(),tinf.getRecord_num(),BadBatt_thread.sdf.format(tinf.getRecord_time()), m_ConnPool );
|
//¼ÆËã³öÂäºóµ¥Ìå
|
List<BadbattMon> badList=calculatorBadBatt(binf.getBattGroupId(),binf.getMonCapStd(),binf.getMonVolStd(),tinf.getMax_monvol(),stopList,m_ConnPool);
|
//4.½«Êý¾Ý²åÈëbadBattMon±í
|
insertBadBatt(badList,m_ConnPool);
|
}else {
|
//±ê¼ÇΪÎÞ·¨ÅжϣºflagΪ4²¢²åÈë
|
insertUnjudge(binf,"0",4,m_ConnPool);
|
}
|
}
|
}
|
public void run(){
|
System.out.println("Æô¶¯¶¨Ê±²éѯÂäºóµ¥ÌåÐÅÏ¢±íºÍÂäºó¸æ¾¯²åÈë±í!------badbatt_threadÆô¶¯");
|
serchBadBattandInsert_TG();
|
//long tenHouerAgo=(new Date()).getTime()-12*60*60*1000;
|
while(true){
|
badBatt_Mon_flagcreate(m_ConnPool);
|
boolean bl=badBatt_Mon_flagsearch(m_ConnPool);
|
System.out.println("¼ì²âbadBatt_Mon_flag±íÊý¾ÝÁ¿: "+bl+" "+BadBatt_thread.sdf.format(new Date()));
|
//Ð޸Ľø³Ì¼à¿Ø±íÖеÄʵʱʱ¼ä
|
boolean b=processupdateSql(new Date(),Mysql_database_param.BMS_FBSDEV_BADBATT_MON, m_ConnPool);
|
if(bl){
|
serchBadBattandInsert_TG();
|
}else{
|
try {
|
Thread.sleep(60*1000);
|
} catch (InterruptedException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
}
|
//Date now=new Date();
|
//String nowtime=BadBatt_thread.sdf.format(now);
|
long nowtime=new Date().getTime();
|
//System.out.println(getDateTIme()+" "+nowtime);
|
if(Math.abs((getDateTIme()-nowtime))<30*1000) {
|
serchBadBattandInsert_TG();
|
}
|
/*if((nowtime-tenHouerAgo)>=12*60*60*1000){
|
serchBadBattandInsert();
|
tenHouerAgo=nowtime;
|
}*/
|
}
|
}
|
public static void main(String[] args) {
|
MySqlPool mPool=new MySqlPool();
|
Connection conn=mPool.getConn();
|
BadBatt_thread bd_t=new BadBatt_thread(mPool);
|
//bd_t.Batt_selecteffectiveBatt();
|
//bd_t.start();
|
bd_t.serchBadBattandInsert_TG();
|
}
|
}
|