whyclxw
2020-08-19 3bde0e9ee5b1e584c29e516fdfc9a99376d228d3
水冷提交
8个文件已添加
3个文件已修改
3225 ■■■■■ 已修改文件
WaterSystem_MonitorServer/config.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
WaterSystem_MonitorServer/src/com/sql/Sql_Mysql.java 1819 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WaterSystem_MonitorServer/src/com/watersystem/monitor/Water_Task_SQL.java 265 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WaterSystem_MonitorServer/src/com/watersystem/monitor/Water_brach.java 303 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WaterSystem_MonitorServer/src/com/watersystem/monitor/Water_inf.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WaterSystem_MonitorServer/src/com/watersystem/monitor/Water_rt.java 126 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WaterSystem_MonitorServer/src/com/watersystem/monitor/Water_state.java 168 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WaterSystem_MonitorServer/src/com/watersystem/monitor/Watersystem_ModbusAddress.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WaterSystem_MonitorServer/src/com/watersystem/monitor/Watersystem_ServerSocket_Thread.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WaterSystem_MonitorServer/src/com/watersystem/monitor/Watersystem_SocketClient_Thread.java 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WaterSystem_MonitorServer/src/main/main_WaterSystem_MonitorServer.java 210 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
WaterSystem_MonitorServer/config.xml
@@ -2,7 +2,7 @@
<root>
  <mysql_ramdb_recreate_en>false</mysql_ramdb_recreate_en>
  <mysql_server_ip>127.0.0.1</mysql_server_ip>
  <mysql_server_ip>118.89.139.230</mysql_server_ip>
  <!--SOURCE_BATTDATA_TYPE_FBSDEV = 0-->
  <!--SOURCE_BATTDATA_TYPE_SQLSERVER = 1-->
  <!--SOURCE_BATTDATA_TYPE_C_INTERFACE = 2-->
WaterSystem_MonitorServer/src/com/sql/Sql_Mysql.java
@@ -1,905 +1,914 @@
package com.sql;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import com.base.Com;
/**
 *     创建数据库以及表格
 * @author 军
 *
 */
public class Sql_Mysql
{
    //--------------------------------------------------------------------------------------------//
    final public static String DB_AppSys = "`db_app_sys`";
    final public static String DB_BATT_INF = "`db_battinf`";
    final public static String DB_BATT_TESTDATA = "`db_batt_testdata`";
    final public static String DB_PARAM = "`db_param`";
    final public static String DB_ALARM = "`db_alarm`";
    final public static String DB_USER = "`db_user`";
    final public static String DB_RamDB = "`db_ram_db`";
    final public static String DB_RamDB_BATT_RT = "`db_ram_batt_rt`";
    final public static String DB_LD9_TESTDATA = "`db_ld9_testdata`";
    final public static String WEB_Site = "web_site";
    final public static String DB_Equipstand = "`db_equipstand`";                                        //独立设备信息数据库
    final public static String DB_Equip_History = "`db_equip_history`";                                    //独立设备历史数据数据库
    final public static String DB_Equip_Alarm = "`db_equip_alarm`";
    final public static String DB_DynamicSystem = "`db_dynamicsystem`";
    final public static String DB_Elemachinery = "`db_elemachinery`";
    final public static String DB_Motor_Realhistory = "`db_motor_realhistory`";
    final public static String DB_ElectricSystem = "`db_electricsystem`";
    //--------------------------------------------------------------------------------------------//
    public final static String TB_HardDevSmsState = "tb_hard_dev_sms_state";
    //--------------------------------------------------------------------------------------------//
    public final static String TB_AppSys = "tb_app_sys";
    public final static String TB_BattTestDataInf = "tb_batttestdata_inf";
    public final static String TB_Ld9testdata_inf=DB_LD9_TESTDATA+".tb_ld9testdata_inf";
    public final static String TB_Ld9testdata=DB_LD9_TESTDATA+".tb_ld9testdata_";
    public final static String TB_Ld9testdatastop=DB_LD9_TESTDATA+".tb_ld9testdatastop_";
    public final static String TB_UserInf = "tb_user_inf";
    public final static String TB_UserLog = "tb_user_log";
    public final static String TB_UserBattGroup_BaoJiGroup = "tb_user_battgroup_baojigroup";
    public final static String TB_UserBattGroup_BaoJiGroup_BattGroup = "tb_user_battgroup_baojigroup_battgroup";
    public final static String TB_UserBattGroup_BaoJiGroup_Usr = "tb_user_battgroup_baojigroup_usr";
    public final static String TB_UserTaskTemplate = "tb_user_task_batt_template";
    public final static String TB_UserTask = "tb_user_task";
    public final static String TB_UserPaiXiu = "tb_user_paixiu";
    public final static String TB_UserListForTask = "tb_user_task_user_list";
    public final static String TB_UserTaskParam = "tb_user_task_param";
    public final static String TB_UserBattCkeckTask = "tb_user_task_batt_check";
    public final static String TB_UserBattTestTask = "tb_user_task_batt_test";
    public final static String TB_UserBattTaskChange = "tb_user_task_change";
    public final static String TB_UserSms = "tb_user_sms";
    public final static String TB_UserSmsFormat = "tb_user_sms_format";
    public final static String TB_UserPermitGroup = "tb_user_permitgroup";
    public final static String TB_UserPermitGroupData = "tb_user_permitgroup_data";
    public final static String TB_UserJieJiaRi = "tb_user_jiejiari";
    //--------------------------------------------------------------------------------------------//
    //--------------------------------------------------------------------------------------------//
    public final static String ServerState_Table = DB_RamDB + ".`tb_server_state`";
    public final static String BattRtData_Table = DB_RamDB + ".`tb_batt_rtdata`";
    public final static String BattRtState_Table = DB_RamDB + ".`tb_batt_rtstate`";
    public final static String LD9_State_Table =DB_RamDB+".tb_LD9_state";
    public final static String LD9_Setparam_Table =DB_RamDB+".tb_LD9_setparam";
    public final static String CInterfaceState_Table = DB_RamDB + ".`tb_cinterface_state`";
    public final static String HardDevSmsState_Table = DB_RamDB + ".`tb_hard_dev_sms_state`";
    public final static String FBS9100State_Table = DB_RamDB + ".`tb_fbs9100_state`";
    public final static String FBS9100S_DcDcState_Table = DB_RamDB + ".`tb_fbs9100s_dcdc_state`";
    public final static String FBS9100SetParam_Table = DB_RamDB + ".`tb_fbs9100_setparam`";
    public final static String FBS9100S_DFUState_Table = DB_RamDB + ".`tb_fbs9100s_DFU_state`";
    public final static String BMP7100State_Table = DB_RamDB + ".`tb_bpm7100_state`";
    public final static String FBS9600State_Table = DB_RamDB + ".`tb_fbs9600_state`";
    public final static String FBS9600SetParam_Table = DB_RamDB + ".`tb_fbs9600_setparam`";
    //public final static String FBS9600Param_Table = DB_RamDB + ".`tb_fbs9600_param`";
    public final static String SocketClientStateTable = DB_RamDB + ".`tb_socketclient_state`";
    public final static String RamDB_CMCC_POWER_Data = DB_RamDB + ".`cmcc_power_data`";
    public final static String RamLD9_UpdateStatue_Table = DB_RamDB + ".`tb_ld9_updatestatue`";                //9度设备升级表
    public final static String LD9_ConcentratorParam_Table = DB_RamDB + ".`tb_ld9_ConcentrateParam`";         //9度汇集器参数表
    public final static String LD9_ConcentratorState_Table = DB_RamDB + ".`tb_ld9_ConcentrateState`";         //9度汇集器状态表
    public final static String BTSGPRSState_Table = DB_RamDB + ".`tb_bts_gprs_state`";
    //--------------------------------------------------------------------------------------------//
    //--------------------------------------------------------------------------------------------//
    public final static String AppSys_Table = DB_AppSys + ".`tb_app_sys`";
    public final static String FBSDevStateChangeInf_Table = DB_AppSys + ".`tb_fbsdev_statechange_inf`";
    public final static String BattInf_Table = DB_BATT_INF + ".`tb_battinf`";
    public final static String BattCurrInf_Table = DB_BATT_INF + ".`tb_battcurr_inf`";
    public final static String BattMainInf_Table = DB_BATT_INF + ".`tb_batt_maint_inf`";
    public final static String BattMainProcess_Table = DB_BATT_INF + ".`tb_batt_maint_process`";
    public final static String BattTestDataInf_Table = DB_BATT_TESTDATA + ".`tb_batttestdata_inf`";
    public final static String BattResData_Table = DB_BATT_TESTDATA + ".`tb_BattResData`";
    public final static String BattResDataInf_Table = DB_BATT_TESTDATA + ".`tb_battresdata_inf`";
    public final static String UserInfTable = DB_USER + ".`tb_user_inf`";
    public final static String UserLogTable = DB_USER + ".`tb_user_log`";
    public final static String UserBattGroup_BaoJiGroup_Table = DB_USER + ".`tb_user_battgroup_baojigroup`";
    public final static String UserBattGroup_BaoJiGroup_BattGroupTable = DB_USER + ".`tb_user_battgroup_baojigroup_battgroup`";
    public final static String UserBattGroup_BaoJiGroup_UsrTable = DB_USER + ".`tb_user_battgroup_baojigroup_usr`";
    public final static String UserTaskTemplateTable = DB_USER + ".`tb_user_task_batt_template`";
    public final static String UserTaskTable = DB_USER + ".`tb_user_task`";
    public final static String UserPaiXiuTable = DB_USER + ".`tb_user_paixiu`";
    public final static String UserListForTaskTable = DB_USER + ".`tb_user_task_user_list`";
    public final static String UserTaskParamTable = DB_USER + ".`tb_user_task_param`";
    public final static String UserBattCheckTaskTable = DB_USER + ".`tb_user_task_batt_check`";
    public final static String UserBattTestTaskTable = DB_USER + ".`tb_user_task_batt_test`";
    public final static String UserBattTaskChangeTable = DB_USER + ".`tb_user_task_change`";
    public final static String UsrBattMaintCheck_Table = DB_USER + ".`tb_user_battmaint_check`";
    public final static String UsrBattMaintCheckProcess_Table = DB_USER + ".`tb_user_battmaint_check_process`";
    public final static String UserSmsTable = DB_USER + ".`tb_user_sms`";
    public final static String UserSmsFormatTable = DB_USER + ".`tb_user_sms_format`";
    public final static String UserPermitGroupTable = DB_USER + ".`tb_user_permitgroup`";
    public final static String UserPermitGroupDataTable = DB_USER + ".`tb_user_permitgroup_data`";
    public final static String UserJieJiaRiTable = DB_USER + ".`tb_user_jiejiari`";
    //--------------------------------------------------------------------------------------------//
    public final static String Tb_BattDischarge_ParamTable = WEB_Site+".tb_battdischarge_param";        //电池放电计划参数表
    public final static String Tb_BattMap_InformationTable = WEB_Site+".tb_battmap_information";        //电池定位信息表
    public final static String Tb_Batt_DevDischargeTable = WEB_Site+".tb_batt_devdischarge";            //几种运营商的电压电流情况表
    public final static String Tb_BattDischarge_PlanTable = WEB_Site+".tb_battdischarge_plan";            //电池放电计划表
    public final static String Tb_Batt_ElectricityTable = WEB_Site+".tb_batt_electricity";                //运营商设备的用电量表
    public final static String Tb_Batt_Devdischarge_ParamTable = WEB_Site+".tb_batt_devdischarge_param";    //运营商设备记录的参数表
    public final static String Tb_Batt_Devdischarge_CMTable = WEB_Site+".tb_batt_devdischarge_CM";            //移动每个时间戳的电压电流功率表
    public final static String Tb_Batt_Devdischarge_CTTable = WEB_Site+".tb_batt_devdischarge_CT";            //电信每个时间戳的电压电流功率表
    public final static String Tb_Batt_Devdischarge_CUTable = WEB_Site+".tb_batt_devdischarge_CU";            //联通每个时间戳的电压电流功率表
    public final static String Tb_CustomPageTable = WEB_Site + ".tb_custompage";                            //页面导航表
    public final static String Tb_Vip_UserTable = WEB_Site + ".tb_vip_user";                                //超级管理员表
    public final static String Tb_Batt_Param_LowTable = WEB_Site + ".tb_batt_param_low";                    //蓄电池各种告警更换参数表
    public final static String Tb_AnnounceTable = WEB_Site + ".tb_announce";                                //公告信息表
    public final static String Tb_ProcessSurvey = WEB_Site + ".tb_process_survey";                            //线程监控表
    //--------------------------------------------------------------------------------------------//
    public final static String Tb_Device_InfTable = DB_Equipstand + ".tb_device_inf";                        //独立设备-设备信息表
    public final static String Tb_DevData_Rt = DB_Equipstand + ".tb_devdata_rt_";                            //独立设备-实时状态表
    public final static String Tb_DevData_Rt_Cfg = DB_Equipstand + ".tb_devdata_rt_cfg";                    //独立设备-实时/历史状态配置表
    public final static String Tb_Devdata_Backup_Cfg = DB_Equipstand + ".tb_devdata_backup_cfg";            //独立设备-FTP文件备份信息表
    //--------------------------------------------------------------------------------------------//
    public final static String Tb_DevData_historyTable = DB_Equip_History + ".tb_devdata_history_";            //独立设备-历史实时数据记录表
    public final static String Tb_DevAlarm_Data = DB_Equip_Alarm + ".tb_devalarm_data_";                    //独立设备-实时告警数据记录表
    public final static String Tb_DevAlarm_Data_History = DB_Equip_Alarm + ".tb_devalarm_data_history_";    //独立设备-历史告警数据记录表
    //--------------------------------------------------------------------------------------------//
    public final static String Tb_Dynamicload_inf = DB_DynamicSystem + ".tb_dynamicload_inf";                //设备信息表
    public final static String Tb_Dynamicload_State_rt = DB_DynamicSystem + ".tb_dynamicload_state_rt";        //设备状态表
    public final static String Tb_Dynamicload_Button_Rt = DB_DynamicSystem +".tb_dynamicload_button_rt";    //按钮反馈表
    public final static String Tb_Dynamicload_Control = DB_DynamicSystem + ".tb_dynamicload_control";        //电源柜控制表
    //--------------------------------------------------------------------------------------------//
    public final static String Tb_Motor_inf = DB_Elemachinery + ".tb_motor_inf";                            //电机信息表
    public final static String Tb_Motor_control = DB_Elemachinery + ".tb_motor_control";                    //电机控制表
    public final static String Tb_Load_Motor_state = DB_Elemachinery + ".tb_load_motor_state";                //加载电机状态表
    public final static String Tb_Subject_Motor_state = DB_Elemachinery + ".tb_subject_motor_state";        //受试电机状态表
    public final static String Tb_Devalarm_Rt = DB_Elemachinery + ".tb_devalaram_rt";                        //电机实时告警记录表
    public final static String Tb_Devalarm_History = DB_Elemachinery + ".tb_devalaram_history";                //电机历史告警记录表
    public final static String Tb_Motor_Readdata = DB_Motor_Realhistory + ".tb_motor_readdata_";            //电机历史实时记录表
    //--------------------------------------------------------------------------------------------//
    /***            电源控制相关表                                        *****/
    public final static String Tb_Electric_Control_Single = DB_ElectricSystem + ".tb_electric_control_single";        //电源单点控制表
    public final static String Tb_Electric_Power = DB_ElectricSystem + ".tb_electric_power";                        //电源控制状态表
    public final static String Tb_Electric_Rt = DB_ElectricSystem + ".tb_electric_rt";
    public final static String Tb_Electric_State = DB_ElectricSystem + ".tb_electric_state";
    public final static String Tb_Electric_Switch = DB_ElectricSystem + ".tb_electric_switch";
    //--------------------------------------------------------------------------------------------//
    public Connection mysql_con;
    public Sql_Mysql(Connection conn)
    {
        mysql_con = conn;
    }
    /*
    public static Connection getConnection() throws SQLException, java.lang.ClassNotFoundException{
        String url = "jdbc:mysql://192.168.48.128:3306/studentinfo";
        Class.forName("com.mysql.jdbc.Driver");
        String userName = "root";
        String password = "lmx8688139";
        Connection con = DriverManager.getConnection(url,userName,password);
        return con;
    }
    */
    public void close_con()
    {
        try {
            mysql_con.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    public void checkAndCreateDB() throws SQLException
    {
        sqlMysqlExecute("CREATE DATABASE IF NOT EXISTS " + DB_AppSys);
        sqlMysqlExecute("CREATE DATABASE IF NOT EXISTS " + DB_BATT_INF);
        sqlMysqlExecute("CREATE DATABASE IF NOT EXISTS " + DB_BATT_TESTDATA);
        sqlMysqlExecute("CREATE DATABASE IF NOT EXISTS " + DB_PARAM);
        sqlMysqlExecute("CREATE DATABASE IF NOT EXISTS " + DB_ALARM);
        sqlMysqlExecute("CREATE DATABASE IF NOT EXISTS " + DB_USER);
        sqlMysqlExecute("CREATE DATABASE IF NOT EXISTS " + DB_RamDB);
        sqlMysqlExecute("DROP DATABASE IF EXISTS " + DB_RamDB_BATT_RT);
        //sqlMysqlExecute("CREATE DATABASE IF NOT EXISTS " + DB_RamDB_BATT_RT);
        sqlMysqlExecute("CREATE DATABASE IF NOT EXISTS " + WEB_Site);
        String table_0 = "CREATE TABLE IF NOT EXISTS " + AppSys_Table
                        + " ( `num` INT NOT NULL AUTO_INCREMENT,"
                        + "`SqlDB_Version` FLOAT NOT NULL DEFAULT '1.0',"
                        + "`SqlDB_BackUpTime` DATETIME NOT NULL DEFAULT '2000-1-1 00:00:00',"
                        + "`SqlDB_BackUpManual_EN` BOOLEAN NOT NULL DEFAULT false, "
                        + "`AppServer_Version` FLOAT NOT NULL DEFAULT '1.0',"
                        + "`AppClient_Version` FLOAT NOT NULL DEFAULT '1.0',"
                        + "`AppName` VARCHAR(50) NOT NULL DEFAULT '0',"
                        + " PRIMARY KEY (`num`)) "
                        + " ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        String table_1 = "CREATE TABLE IF NOT EXISTS " + BattInf_Table
                        + " ( `num` INT NOT NULL AUTO_INCREMENT,"
                        + "`StationId` VARCHAR(20) NOT NULL DEFAULT '0',"
                        + "`StationName` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`StationName1` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`StationName2` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`StationName3` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`StationName4` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`StationName5` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`StationName6` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`StationName7` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`StationName8` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`StationName9` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`StationIP` VARCHAR(20) NOT NULL DEFAULT '0',"
                        + "`FBSDeviceId` BIGINT NOT NULL DEFAULT '0',"
                        + "`FBSDeviceIp` VARCHAR(50) NOT NULL DEFAULT '192.168.0.88',"
                        + "`FBSDeviceName` VARCHAR(100) NOT NULL DEFAULT '0',"
                        + "`GroupIndexInFBSDevice` INT NOT NULL DEFAULT '0',"
                        + "`BattModel` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`BattGroupId` INT NOT NULL DEFAULT '0',"
                        + "`BattGroupNum` INT NOT NULL DEFAULT '0',"
                        + "`BattGroupName` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`BattGroupName1` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`BattGroupName2` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`BattGroupName3` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`BattGroupName4` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`BattGroupName5` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`BattGroupName6` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`FloatVolLevel` FLOAT NOT NULL DEFAULT '1.12',"
                        + "`OfflineVolLevel` FLOAT NOT NULL DEFAULT '1.06',"
                        + "`BattFloatCurrent` FLOAT NOT NULL DEFAULT '0',"
                        + "`DeviceId` VARCHAR(20) NOT NULL DEFAULT '0',"
                        + "`DeviceName` VARCHAR(100) NOT NULL DEFAULT '0',"
                        + "`MonCount` INT NOT NULL DEFAULT '0',"
                        + "`MonCapStd` FLOAT NOT NULL DEFAULT '0',"
                        + "`MonVolStd` FLOAT NOT NULL DEFAULT '0',"
                        + "`MonResStd` FLOAT NOT NULL DEFAULT '0',"
                        + "`MonSerStd` FLOAT NOT NULL DEFAULT '0',"
                        + "`MonTmpStd` FLOAT NOT NULL DEFAULT '0',"
                        + "`MonVolLowToAvg` FLOAT NOT NULL DEFAULT '0',"
                        + "`MonNum` INT NOT NULL DEFAULT '0',"
                        + "`BattProducer` VARCHAR(45) NOT NULL DEFAULT '0',"
                        + "`BattProductDate` DATE NOT NULL DEFAULT '2006-07-06',"
                        + "`BattInUseDate` DATE NOT NULL DEFAULT '2006-07-06',"
                        + "`BattGuarantDayCount` INT NOT NULL DEFAULT '1095',"
                        + "`SignalId` VARCHAR(20) NOT NULL DEFAULT '0',"
                        + "`CInterFaceId` INT NOT NULL DEFAULT '0',"
                        + "`SignalName` VARCHAR(50) NOT NULL DEFAULT '0',"
                        + "INDEX index_station_id (`StationId`), "
                        + "INDEX index_battgroup_id (`BattGroupId`), "
                        + "INDEX index_station_name (`StationName`), "
                        + "INDEX index_battgroup_name (`BattGroupName`), "
                        + "PRIMARY KEY (`num`)) "
                        + "ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        String table_2 = "CREATE TABLE IF NOT EXISTS " + BattCurrInf_Table
                        + " ( `num` INT NOT NULL AUTO_INCREMENT,"
                        + "`StationId` VARCHAR(20) NOT NULL DEFAULT '0',"
                        + "`BattGroupId` VARCHAR(20) NOT NULL DEFAULT '0',"
                        + "`BattGroupName` VARCHAR(100) NOT NULL DEFAULT '0',"
                        + "`CurrDeviceId` VARCHAR(20) NOT NULL DEFAULT '0',"
                        + "`CurrDeviceName` VARCHAR(100) NOT NULL DEFAULT '0',"
                        + "`CurrValueId` VARCHAR(20) NOT NULL DEFAULT '0',"
                        + "`CurrValueName` VARCHAR(100) NOT NULL DEFAULT '0',"
                        + "PRIMARY KEY (`num`)) "
                        + "ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        String table_3 = "CREATE TABLE IF NOT EXISTS " + BattMainInf_Table
                        + " ( `num` BIGINT NOT NULL AUTO_INCREMENT, "
                        + "`BattGroupId` INT NOT NULL DEFAULT 0, "
                        + "`usr_id` INT NOT NULL DEFAULT 0, "
                        + "`fault_type_id` INT NOT NULL DEFAULT 0, "
                        + "`fault_type` VARCHAR(50) NOT NULL DEFAULT ' ', "
                        + "`fault_level` INT NOT NULL DEFAULT 0, "
                        + "`fault_caption` VARCHAR(200) NOT NULL DEFAULT ' ', "
                        + "`fault_time` DATETIME NOT NULL DEFAULT '2005-1-1 00:00:00', "
                        + "`record_uid` INT NOT NULL DEFAULT 0, "
                        + "`record_time` DATETIME NOT NULL DEFAULT '2005-1-1 00:00:00', "
                        + "`maint_time_limit` DATETIME NOT NULL DEFAULT '2005-1-1 00:00:00', "
                        + "`maint_type_id` INT NOT NULL DEFAULT 0, "
                        + "`maint_type` VARCHAR(50) NOT NULL DEFAULT ' ', "
                        + "`maint_result` VARCHAR(100) NOT NULL DEFAULT ' ', "
                        + "`maint_done` BOOLEAN NOT NULL DEFAULT false, "
                        + "`maint_done_time` DATETIME DEFAULT '2005-1-1 00:00:00', "
                        + "`maint_close` BOOLEAN NOT NULL DEFAULT false, "
                        + "`master_id` INT NOT NULL DEFAULT 0, "
                        + "`master_audit` INT NOT NULL DEFAULT 0, "                //领导审核
                        + "`appoint_uid` INT NOT NULL DEFAULT 0, "                 //指派给谁
                        + "`copy_uids` VARCHAR(200) NOT NULL DEFAULT ' ', "        //抄送给谁
                        + "`master_check` VARCHAR(100) NOT NULL DEFAULT ' ', "
                        + "`remark` VARCHAR(200) NOT NULL DEFAULT ' ', "
                        + "INDEX index_battgroup_id (`BattGroupId`), "
                        + "INDEX index_user_id (`usr_id`), "
                        + "INDEX index_fault_type_id (`fault_type_id`), "
                        + "INDEX index_maint_type_id (`maint_type_id`), "
                        + "PRIMARY KEY (`num`)) "
                        + "ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        String table_3_1 = "CREATE TABLE IF NOT EXISTS " + BattMainProcess_Table
                        + " ( `num` BIGINT NOT NULL AUTO_INCREMENT, "
                        + "`batt_maint_rec_id` BIGINT NOT NULL DEFAULT 0, "
                        + "`usr_id` INT NOT NULL DEFAULT 0, "
                        + "`work_caption` VARCHAR(200) NOT NULL DEFAULT ' ', "
                        + "`work_caption_time` DATETIME DEFAULT '2005-1-1 00:00:00', "
                        + "INDEX index_batt_maint_rec_id (`batt_maint_rec_id`), "
                        + " PRIMARY KEY (`num`)) "
                        + "ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        String table_3_2 = "CREATE TABLE IF NOT EXISTS " + UsrBattMaintCheck_Table
                        + " ( `num` BIGINT NOT NULL AUTO_INCREMENT, "
                        + "`StationId` INT NOT NULL DEFAULT 0, "
                        + "`usr_id` INT NOT NULL DEFAULT 0, "
                        + "`master_id` INT NOT NULL DEFAULT 0, "
                        + "`appoint_uid` INT NOT NULL DEFAULT 0, "                 //指派给谁
                        + "`copy_uids` VARCHAR(200) NOT NULL DEFAULT ' ', "        //抄送给谁
                        + "`task_type_id` INT NOT NULL DEFAULT 0, "
                        + "`task_level` INT NOT NULL DEFAULT 0, "
                        + "`task_caption` VARCHAR(200) NOT NULL DEFAULT ' ', "
                        + "`task_time_start` DATETIME NOT NULL DEFAULT '2005-1-1 00:00:00', "
                        + "`task_time_end` DATETIME NOT NULL DEFAULT '2005-1-1 00:00:00', "
                        + "`task_process` VARCHAR(200) NOT NULL DEFAULT ' ', "
                        + "`task_done` BOOLEAN NOT NULL DEFAULT false, "
                        + "`task_done_time` DATETIME DEFAULT '2005-1-1 00:00:00', "
                        + "`origin_usr_work_mark` INT NOT NULL DEFAULT 0, "
                        + "`task_done_confirm` BOOLEAN NOT NULL DEFAULT false, "
                        + "`master_audit` INT NOT NULL DEFAULT 0, "                //领导审核
                        + "`remark` VARCHAR(200) NOT NULL DEFAULT ' ', "
                        + "INDEX index_station_id (`StationId`), "
                        + "INDEX index_user_id (`usr_id`), "
                        + "INDEX index_task_type_id (`task_type_id`), "
                        + "PRIMARY KEY (`num`)) "
                        + "ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        String table_3_2_1 = "CREATE TABLE IF NOT EXISTS " + UsrBattMaintCheckProcess_Table
                        + " ( `num` BIGINT NOT NULL AUTO_INCREMENT, "
                        + "`task_rec_id` BIGINT NOT NULL DEFAULT 0, "
                        + "`usr_id` INT NOT NULL DEFAULT 0, "
                        + "`work_caption` VARCHAR(200) NOT NULL DEFAULT ' ', "
                        + "`work_caption_time` DATETIME DEFAULT '2005-1-1 00:00:00', "
                        + "INDEX index_task_rec_id (`task_rec_id`), "
                        + " PRIMARY KEY (`num`)) "
                        + "ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        String table_4 = "CREATE TABLE IF NOT EXISTS " + BattTestDataInf_Table
                        + " ( `num` BIGINT NOT NULL AUTO_INCREMENT, "
                        + "`BattGroupId` INT NOT NULL DEFAULT 0, "
                        + "`test_record_count` INT NOT NULL DEFAULT 0, "
                        + "`test_record_count_ex` INT NOT NULL DEFAULT 0, "
                        + "`test_type` INT NOT NULL DEFAULT 0, "
                        + "`record_time_interval` INT NOT NULL DEFAULT 0, "
                        + "`data_new` BOOLEAN NOT NULL DEFAULT false, "
                        + "`data_available` BOOLEAN NOT NULL DEFAULT false, "
                        + "`record_num` INT NOT NULL DEFAULT 0, "
                        + "`test_starttime` DATETIME NOT NULL DEFAULT '1982-01-01 00:00:00', "
                        + "`test_starttime_ex` DATETIME NOT NULL DEFAULT '1982-01-01 00:00:00', "
                        + "`test_starttype` INT NOT NULL DEFAULT 0, "
                        + "`record_time` DATETIME NOT NULL DEFAULT '1982-01-01 00:00:00', "
                        + "`test_timelong` INT NOT NULL DEFAULT 0, "
                        + "`test_stoptype` INT NOT NULL DEFAULT 0, "
                        + "`group_vol` FLOAT NOT NULL DEFAULT 0, "
                        + "`test_curr` FLOAT NOT NULL DEFAULT 0, "
                        + "`test_cap` FLOAT NOT NULL DEFAULT 0, "
                        + "`max_monnum` INT NOT NULL DEFAULT 0, "
                        + "`max_monvol` FLOAT NOT NULL DEFAULT 0, "
                        + "`min_monnum` INT NOT NULL DEFAULT 0, "
                        + "`min_monvol` FLOAT NOT NULL DEFAULT 0, "
                        + "`mon_num` INT NOT NULL DEFAULT 0, "
                        + "`mon_vol` FLOAT NOT NULL DEFAULT 0, "
                        + "`upload_usr_id` INT NOT NULL DEFAULT 0, "
                        + "`upload_data_ext` INT NOT NULL DEFAULT 0, "
                        + "`upload_client_type` INT NOT NULL DEFAULT 0, "
                        + "INDEX index_battgroup_id (`BattGroupId`), "
                        + "INDEX index_test_record_count (`test_record_count`), "
                        + "INDEX index_test_type (`test_type`), "
                        + "INDEX index_test_starttime (`test_starttime`), "
                        + "PRIMARY KEY (`num`)) "
                        + "ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        String table_5 = "CREATE TABLE IF NOT EXISTS " + BattResDataInf_Table
                        + " ( `num` BIGINT NOT NULL AUTO_INCREMENT, "
                        + "`BattGroupId` INT NOT NULL DEFAULT 0, "
                        + "`test_record_count` INT NOT NULL DEFAULT 0, "
                        + "`test_record_count_ex` INT NOT NULL DEFAULT 0, "
                        + "`test_type` INT NOT NULL DEFAULT 0, "
                        + "`data_new` BOOLEAN NOT NULL DEFAULT false, "
                        + "`data_available` BOOLEAN NOT NULL DEFAULT false, "
                        + "`test_starttime` DATETIME NOT NULL DEFAULT '1982-01-01 00:00:00', "
                        + "`test_starttime_ex` DATETIME NOT NULL DEFAULT '1982-01-01 00:00:00', "
                        + "`test_devtype` INT NOT NULL DEFAULT 0, "
                        + "`record_time` DATETIME NOT NULL DEFAULT '1982-01-01 00:00:00', "
                        + "`group_vol` FLOAT NOT NULL DEFAULT 0, "
                        + "`test_curr` FLOAT NOT NULL DEFAULT 0, "
                        + "`upload_usr_id` INT NOT NULL DEFAULT 0, "
                        + "`upload_client_type` INT NOT NULL DEFAULT 0, "
                        + "INDEX index_battgroup_id (`BattGroupId`), "
                        + "INDEX index_test_record_count (`test_record_count`), "
                        + "INDEX index_test_starttime (`test_starttime`), "
                        + "PRIMARY KEY (`num`)) "
                        + "ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        String table_6 = "DROP TABLE IF EXISTS " + SocketClientStateTable + "; ";
        String table_7 = "CREATE TABLE IF NOT EXISTS " + SocketClientStateTable
                        + "(`num` BIGINT NOT NULL AUTO_INCREMENT, "
                        + "`uId` INT NOT NULL DEFAULT 0, "
                        + "`client_type` INT NOT NULL DEFAULT 0, "
                        + "`client_id` BIGINT NOT NULL DEFAULT 0, "
                        + "`BattGroupId` INT NOT NULL DEFAULT 0, "
                        + "`client_is_connected` BOOLEAN NOT NULL DEFAULT false, "
                        + "`client_ip` VARCHAR(64) NOT NULL DEFAULT ' ', "
                        + "`client_conn_time` DATETIME NOT NULL DEFAULT '1980-01-01', "
                        + "`client_disconn_time` DATETIME NOT NULL DEFAULT '1980-01-01', "
                        + "INDEX index_user_id (`uId`), "
                        + "INDEX index_client_type (`client_type`), "
                        + "PRIMARY KEY (`num`)) "
                        + "ENGINE=MEMORY DEFAULT CHARSET=utf8;";
        String table_8 = "CREATE TABLE IF NOT EXISTS " + FBSDevStateChangeInf_Table
                        + "(`num` BIGINT NOT NULL AUTO_INCREMENT, "
                        + "`dev_id` INT NOT NULL DEFAULT 0, "
                        + "`rec_time` DATETIME NOT NULL DEFAULT '1980-01-01', "
                        + "`last_stat` INT NOT NULL DEFAULT 0, "
                        + "`now_stat` INT NOT NULL DEFAULT 0, "
                        + "`state_change_reason` INT NOT NULL DEFAULT 0, "
                        + "`dev_alarm` INT NOT NULL DEFAULT 0, "
                        + "INDEX index_dev_id (`dev_id`), "
                        + "PRIMARY KEY (`num`)) "
                        + "ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        //-------------------------------------------------------------------------------------//
        //-------------------------------------------------------------------------------------//
        sqlMysqlUseDB(Sql_Mysql.DB_AppSys);
        if(false == sqlMysqlCheckIfTableExist(TB_AppSys))
        {
            sqlMysqlExecute(table_0);
            sqlMysqlExecute("INSERT INTO " + Sql_Mysql.AppSys_Table
                                + " (AppName) VALUES ('蓄电池组综合管理系统')");
        }
        //-------------------------------------------------------------------------------------//
        {
            ResultSet rest = sqlMysqlQuery("SELECT AppServer_Version FROM " + Sql_Mysql.AppSys_Table);
            if(rest.next()) {
                float ser_version = rest.getFloat(1);
                if(ser_version < 1.387) {
                    sqlMysqlExecute("UPDATE " + Sql_Mysql.AppSys_Table + " SET AppServer_Version=1.388");
                    sqlMysqlExecute("USE db_batt_testdata");
                    sqlMysqlExecute("UPDATE tb_batttestdata_inf SET "
                                    + " test_starttime=date_sub(test_starttime, interval 1 month) "
                                    + " WHERE upload_usr_id>0");
                }
            }
        }
        //---------------------------------------------------------------------------------------------//
        ResultSet res0 = sqlMysqlQuery("SELECT * FROM information_schema.columns"
                                + " WHERE table_schema='db_app_sys'"
                                + " AND table_name='tb_app_sys'"
                                + " AND column_name='SqlDB_BackUpTime'");
        if(false == res0.next()) {
            sqlMysqlExecute("ALTER TABLE " + AppSys_Table
                            + " ADD COLUMN `SqlDB_BackUpTime` DATETIME NOT NULL DEFAULT '2000-1-1 00:00:00'"
                            + " AFTER `SqlDB_Version`,"
                            + " ADD COLUMN `SqlDB_BackUpManual_EN` BOOLEAN NOT NULL DEFAULT false"
                            + " AFTER `SqlDB_BackUpTime`");
        }
        res0 = sqlMysqlQuery("SELECT * FROM information_schema.columns"
                            + " WHERE table_schema='db_app_sys'"
                            + " AND table_name='tb_app_sys'"
                            + " AND column_name='SqlDB_BackUpManual_EN'");
        if(false == res0.next()) {
            sqlMysqlExecute("ALTER TABLE " + AppSys_Table
                            + " ADD COLUMN `SqlDB_BackUpManual_EN` BOOLEAN NOT NULL DEFAULT false"
                            + " AFTER `SqlDB_BackUpTime`");
        }
        //---------------------------------------------------------------------------------------------//
        sqlMysqlExecute(table_1);
        sqlMysqlExecute(table_2);
        sqlMysqlExecute(table_3);
        sqlMysqlExecute(table_3_1);
        sqlMysqlExecute(table_3_2);
        sqlMysqlExecute(table_3_2_1);
        sqlMysqlExecute(table_4);
        sqlMysqlExecute(table_5);
        sqlMysqlExecute(table_6);
        sqlMysqlExecute(table_7);
        sqlMysqlExecute(table_8);
        //---------------------------------------------------------------------------------------------//
        ResultSet res = sqlMysqlQuery("show index from " + BattInf_Table + " where column_name='BattGroupId'");
        if(false == res.next())
        {
            sqlMysqlExecute("ALTER TABLE " + BattInf_Table + " ADD INDEX `index_station_id` (`StationId` ASC);");
            sqlMysqlExecute("ALTER TABLE " + BattInf_Table + " ADD INDEX `index_battgroup_id` (`BattGroupId` ASC);");
            sqlMysqlExecute("ALTER TABLE " + BattInf_Table + " ADD INDEX `index_station_name` (`StationName` ASC);");
            sqlMysqlExecute("ALTER TABLE " + BattInf_Table + " ADD INDEX `index_battgroup_name` (`BattGroupName` ASC);");
        }
        //---------------------------------------------------------------------------------------------//
        //-------------------------------- 2017-06-06 by mxpopstar ------------------------------------//
                res = sqlMysqlQuery("SELECT * FROM information_schema.columns"
                                        + " WHERE table_schema='db_battinf'"
                                        + " AND table_name='tb_battinf'"
                                        + " AND column_name='BattGuarantDayCount'");
                if(false == res.next()) {
                    sqlMysqlExecute("ALTER TABLE " + BattInf_Table
                                    + " ADD COLUMN `BattGuarantDayCount` INT NOT NULL DEFAULT 1095 AFTER `BattInUseDate`");
                }
                //---------------------------------------------------------------------------------------------//
        //---------------------------------------------------------------------------------------------//
        res = sqlMysqlQuery("SELECT * FROM information_schema.columns"
                                + " WHERE table_schema='db_battinf'"
                                + " AND table_name='tb_batt_maint_inf'"
                                + " AND column_name='master_audit'");
        if(false == res.next()) {
            sqlMysqlExecute("ALTER TABLE " + BattMainInf_Table
                            + " ADD COLUMN `fault_type_id` INT NOT NULL DEFAULT 0 AFTER `usr_id`,"
                            + " ADD COLUMN `maint_type_id` INT NOT NULL DEFAULT 0 AFTER `maint_time_limit`,"
                            + " ADD COLUMN `master_audit` INT NOT NULL DEFAULT 0 AFTER `master_id`,"
                            + " ADD COLUMN `maint_close` BOOLEAN NOT NULL DEFAULT FALSE AFTER `maint_done_time`,"
                            + " ADD COLUMN `appoint_uid` INT NOT NULL DEFAULT 0 AFTER `master_audit`,"
                            + " ADD COLUMN `copy_uids` VARCHAR(200) NOT NULL DEFAULT ' ' AFTER `master_audit`");
        }
        //---------------------------------------------------------------------------------------------//
        //---------------------------------------------------------------------------------------------//
        res = sqlMysqlQuery("show index from " + BattTestDataInf_Table + " where column_name='test_starttime'");
        if(false == res.next())
        {
            sqlMysqlExecute("ALTER TABLE " + BattTestDataInf_Table + " ADD INDEX `index_test_record_count` (`test_record_count` ASC);");
            sqlMysqlExecute("ALTER TABLE " + BattTestDataInf_Table + " ADD INDEX `index_test_type` (`test_type` ASC);");
            sqlMysqlExecute("ALTER TABLE " + BattTestDataInf_Table + " ADD INDEX `index_test_starttime` (`test_starttime` ASC);");
        }
        //---------------------------------------------------------------------------------------------//
        //---------------------------------------------------------------------------------------------//
        res = sqlMysqlQuery("show index from " + BattResDataInf_Table + " where column_name='test_starttime'");
        if(false == res.next())
        {
            sqlMysqlExecute("ALTER TABLE " + BattResDataInf_Table + " ADD INDEX `index_test_record_count` (`test_record_count` ASC);");
            sqlMysqlExecute("ALTER TABLE " + BattResDataInf_Table + " ADD INDEX `index_test_type` (`test_type` ASC);");
            sqlMysqlExecute("ALTER TABLE " + BattResDataInf_Table + " ADD INDEX `index_test_starttime` (`test_starttime` ASC);");
        }
        //---------------------------------------------------------------------------------------------//
        res = sqlMysqlQuery("SELECT * FROM information_schema.columns"
                                        + " WHERE table_schema='db_batt_testdata'"
                                        + " AND table_name='tb_batttestdata_inf'"
                                        + " AND column_name='test_record_count_ex'");
        if(false == res.next())
        {
            sqlMysqlExecute("ALTER TABLE " + BattTestDataInf_Table
                            + " ADD COLUMN `test_record_count_ex` INT NOT NULL DEFAULT 0 AFTER `test_record_count`,"
                            + " ADD COLUMN `test_starttime_ex` DATETIME NOT NULL DEFAULT '1920-01-01 00:00:00' AFTER `test_starttime`,"
                            + " ADD COLUMN `upload_usr_id` INT NOT NULL DEFAULT 0 AFTER `mon_vol`");
        }
        //---------------------------------------------------------------------------------------------//
        //---------------------------------------------------------------------------------------------//
        res = sqlMysqlQuery("SELECT * FROM information_schema.columns"
                                                + " WHERE table_schema='db_batt_testdata'"
                                                + " AND table_name='tb_batttestdata_inf'"
                                                + " AND column_name='upload_data_ext'");
        if(false == res.next())
        {
            sqlMysqlExecute("ALTER TABLE " + BattTestDataInf_Table
                            + " ADD COLUMN `upload_data_ext` INT NOT NULL DEFAULT 0 AFTER `upload_usr_id`,"
                            + " ADD COLUMN `upload_client_type` INT NOT NULL DEFAULT 0 AFTER `upload_data_ext`");
            sqlMysqlExecute("ALTER TABLE " + BattResDataInf_Table
                            + " ADD COLUMN `upload_client_type` INT NOT NULL DEFAULT 0 AFTER `upload_usr_id`");
        }
        //---------------------------------------------------------------------------------------------//
        //----------------------------将num自增字段改为bigint类型---------------------------------------//
        res = sqlMysqlQuery("SELECT DATA_TYPE FROM information_schema.columns"
                                        + " WHERE table_schema='db_batt_testdata'"
                                        + " AND table_name='tb_batttestdata_inf'"
                                        + " AND column_name='num'");
        if(true == res.next()) {
            if(false == "bigint".equals(res.getString("DATA_TYPE").toLowerCase())) {
                sqlMysqlExecute("ALTER TABLE " + BattTestDataInf_Table + " MODIFY COLUMN num BIGINT NOT NULL AUTO_INCREMENT;");
                sqlMysqlExecute("ALTER TABLE " + BattResDataInf_Table + " MODIFY COLUMN num BIGINT NOT NULL AUTO_INCREMENT;");
            }
        }
        //---------------------------------------------------------------------------------------------//
    }
    //使用db数据库
    public void sqlMysqlUseDB(String db) throws SQLException
    {
        sqlMysqlExecute("use " + db);
    }
    //获取电池组机房的个数
    public int getBattStationCount()
    {
        int st_count = 0;
        try {
            sqlMysqlUseDB(Sql_Mysql.DB_BATT_INF);
            String sql_str = "SELECT DISTINCT StationId FROM " + BattInf_Table;
            ResultSet res = sqlMysqlQuery(sql_str);
            while(res.next())
            {
                st_count++;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return st_count;
    }
    /**
     * 检查tb表是否存在
     * @param tb
     * @return
     * @throws SQLException
     */
    public boolean sqlMysqlCheckIfTableExist(String tb) throws SQLException
    {
        String sql_str = "SHOW TABLES LIKE '" + tb + "'";
        ResultSet res = sqlMysqlQuery(sql_str);
        boolean exist = false;
        while(res.next())
        {
            exist = true;
            break;
        }
        return exist;
    }
    //执行sql语句
    public void sqlMysqlExecute(String sql_str) throws SQLException
    {
        Statement sql = mysql_con.createStatement();
        sql.setQueryTimeout(30);
        sql.execute(sql_str);
    }
    //在事物中执行多条sql语句
    public boolean makeManualCommit(ArrayList<String> al_sql_strs)
    {
        boolean exe_res = true;
        try {
            mysql_con.setAutoCommit(false);
            for(int n=0; n<al_sql_strs.size(); n++) {
                sqlMysqlExecute(al_sql_strs.get(n));
            }
            if(true == exe_res) {
                mysql_con.commit();
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            exe_res = false;
        } finally {
            try {
                if(false == exe_res) {
                    mysql_con.rollback();
                }
                mysql_con.setAutoCommit(true);
            } catch (SQLException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
        }
        return exe_res;
    }
    //根据sql语句执行sql查询语句
    public ResultSet sqlMysqlQuery(String sql_str)
    {
        ResultSet res = null;
        try
        {
            Statement sql = mysql_con.createStatement();
            sql.setQueryTimeout(30);
            String query = sql_str;
            res =  sql.executeQuery(query);
        }
        catch(SQLException ex)
        {
            System.err.println("SQLException:" + ex.getMessage());
        }
        return res;
    }
    //根据sql语句执行sql更新语句
    public void sqlMysqlUpdate(String sql_str)
    {
        try
        {
            Statement sql = mysql_con.createStatement();
            sql.setQueryTimeout(30);
            String query = sql_str;
            sql.execute(query);
        }
        catch(SQLException ex)
        {
            System.out.println("SQLException:" + ex.getMessage());
        }
    }
    //根据电池组id 获取机房名称
    public String getStationName(int bg_id)
    {
        String stname = " ";
        String sql_str = "SELECT DISTINCT StationName FROM "
                            + Sql_Mysql.BattInf_Table + " WHERE BattGroupId=" + bg_id;
        ResultSet res = sqlMysqlQuery(sql_str);
        try {
            if(res.next())
            {
                stname = res.getString("StationName");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return stname;
    }
    //根据电池组id 获取电池组名称
    public String getBattGroupName(int bg_id)
    {
        String bgname = " ";
        String sql_str = "SELECT DISTINCT BattGroupName FROM "
                            + Sql_Mysql.BattInf_Table + " WHERE BattGroupId=" + bg_id;
        ResultSet res = sqlMysqlQuery(sql_str);
        try {
            if(res.next())
            {
                bgname = res.getString("BattGroupName");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return bgname;
    }
    //根据用户的id获取用户的名称
    public String getUsrName(int uid)
    {
        String usrname = " ";
        String sql_str = "SELECT uName FROM " + Sql_Mysql.UserInfTable + " WHERE uId=" + uid;
        ResultSet res = sqlMysqlQuery(sql_str);
        try {
            if(res.next())
            {
                usrname = res.getString("uName");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return usrname;
    }
    //根据format_type 获取format_str 的样式
    public String getTaskSmsFormatStr(String format_type)
    {
        String str = "";
        String sql_str = "SELECT DISTINCT "
                        + Sql_Mysql.UserSmsFormatTable + ".format_str"
                        + " FROM " + Sql_Mysql.UserSmsFormatTable
                        + " WHERE "
                        + Sql_Mysql.UserSmsFormatTable + ".format_type='" + format_type + "'";
        ResultSet sql_res = sqlMysqlQuery(sql_str);
        try {
            if(sql_res.next())
            {
                str = sql_res.getString("format_str");
            }
        } catch (SQLException e1) {
            // TODO Auto-generated catch block
            //e1.printStackTrace();
        }
        return str;
    }
    //根据作业id获取作业的名称
    public String getUsrTaskName(int taskid)
    {
        String taskname = " ";
        String sql_str = "SELECT task_name FROM " + Sql_Mysql.UserTaskTable + " WHERE task_id=" + taskid;
        ResultSet res = sqlMysqlQuery(sql_str);
        try {
            if(res.next()) {
                taskname = res.getString("task_name");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return taskname;
    }
    //根据作业id获取用户作业的创建时间
    public String getUsrTaskCreateTime(int taskid)
    {
        String taskcreatetime = " ";
        String sql_str = "SELECT task_create_date FROM " + Sql_Mysql.UserTaskTable + " WHERE task_id=" + taskid;
        ResultSet res = sqlMysqlQuery(sql_str);
        try {
            if(res.next())
            {
                taskcreatetime = Com.getDateTimeFormat(res.getTimestamp("task_create_date"), Com.DTF_YMDhms);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return taskcreatetime;
    }
    //获取新创建的记录的testrecordcount的值
    public int getBattTestRecordCountNew(int bg_id, String table)
    {
        int count = 0;
        boolean res_exe = true;
        String sql_str0 = "SELECT test_record_count_ex FROM " + table
                            + " WHERE BattGroupId=" + bg_id  + " FOR UPDATE";
        String sql_str1 = "UPDATE " + table + " SET test_record_count_ex=test_record_count+1"
                            + " WHERE BattGroupId=" + bg_id;
        String sql_str2 = "SELECT MAX(test_record_count_ex) FROM " + table
                            + " WHERE BattGroupId=" + bg_id;
        String sql_str3 = "INSERT INTO " + table + " (BattGroupId,test_record_count, test_record_count_ex) "
                            + " VALUES (" + bg_id + "," + 1 + "," + 1 + ")";
        try {
            mysql_con.setAutoCommit(false);
            ResultSet res = sqlMysqlQuery(sql_str0);
            if(res.next()) {
                sqlMysqlExecute(sql_str1);
                res = sqlMysqlQuery(sql_str2);
                if(res.next()) {
                    count = res.getInt(1);
                }
            } else {
                count = 1;
                sqlMysqlExecute(sql_str3);
            }
            mysql_con.commit();
        } catch (SQLException e) {
            e.printStackTrace();
            res_exe = false;
        } finally {
            if(false == res_exe) {
                try {
                    mysql_con.rollback();
                    mysql_con.setAutoCommit(true);
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
        return count;
    }
}
package com.sql;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import com.base.Com;
/**
 *     创建数据库以及表格
 * @author 军
 *
 */
public class Sql_Mysql
{
    //--------------------------------------------------------------------------------------------//
    final public static String DB_AppSys = "`db_app_sys`";
    final public static String DB_BATT_INF = "`db_battinf`";
    final public static String DB_BATT_TESTDATA = "`db_batt_testdata`";
    final public static String DB_PARAM = "`db_param`";
    final public static String DB_ALARM = "`db_alarm`";
    final public static String DB_USER = "`db_user`";
    final public static String DB_RamDB = "`db_ram_db`";
    final public static String DB_RamDB_BATT_RT = "`db_ram_batt_rt`";
    final public static String DB_LD9_TESTDATA = "`db_ld9_testdata`";
    final public static String WEB_Site = "web_site";
    final public static String DB_Equipstand = "`db_equipstand`";                                        //独立设备信息数据库
    final public static String DB_Equip_History = "`db_equip_history`";                                    //独立设备历史数据数据库
    final public static String DB_Equip_Alarm = "`db_equip_alarm`";
    final public static String DB_DynamicSystem = "`db_dynamicsystem`";
    final public static String DB_Elemachinery = "`db_elemachinery`";
    final public static String DB_Motor_Realhistory = "`db_motor_realhistory`";
    final public static String DB_ElectricSystem = "`db_electricsystem`";
    final public static String DB_Watersystem = "`db_watersystem`";
    //--------------------------------------------------------------------------------------------//
    public final static String TB_HardDevSmsState = "tb_hard_dev_sms_state";
    //--------------------------------------------------------------------------------------------//
    public final static String TB_AppSys = "tb_app_sys";
    public final static String TB_BattTestDataInf = "tb_batttestdata_inf";
    public final static String TB_Ld9testdata_inf=DB_LD9_TESTDATA+".tb_ld9testdata_inf";
    public final static String TB_Ld9testdata=DB_LD9_TESTDATA+".tb_ld9testdata_";
    public final static String TB_Ld9testdatastop=DB_LD9_TESTDATA+".tb_ld9testdatastop_";
    public final static String TB_UserInf = "tb_user_inf";
    public final static String TB_UserLog = "tb_user_log";
    public final static String TB_UserBattGroup_BaoJiGroup = "tb_user_battgroup_baojigroup";
    public final static String TB_UserBattGroup_BaoJiGroup_BattGroup = "tb_user_battgroup_baojigroup_battgroup";
    public final static String TB_UserBattGroup_BaoJiGroup_Usr = "tb_user_battgroup_baojigroup_usr";
    public final static String TB_UserTaskTemplate = "tb_user_task_batt_template";
    public final static String TB_UserTask = "tb_user_task";
    public final static String TB_UserPaiXiu = "tb_user_paixiu";
    public final static String TB_UserListForTask = "tb_user_task_user_list";
    public final static String TB_UserTaskParam = "tb_user_task_param";
    public final static String TB_UserBattCkeckTask = "tb_user_task_batt_check";
    public final static String TB_UserBattTestTask = "tb_user_task_batt_test";
    public final static String TB_UserBattTaskChange = "tb_user_task_change";
    public final static String TB_UserSms = "tb_user_sms";
    public final static String TB_UserSmsFormat = "tb_user_sms_format";
    public final static String TB_UserPermitGroup = "tb_user_permitgroup";
    public final static String TB_UserPermitGroupData = "tb_user_permitgroup_data";
    public final static String TB_UserJieJiaRi = "tb_user_jiejiari";
    //--------------------------------------------------------------------------------------------//
    //--------------------------------------------------------------------------------------------//
    public final static String ServerState_Table = DB_RamDB + ".`tb_server_state`";
    public final static String BattRtData_Table = DB_RamDB + ".`tb_batt_rtdata`";
    public final static String BattRtState_Table = DB_RamDB + ".`tb_batt_rtstate`";
    public final static String LD9_State_Table =DB_RamDB+".tb_LD9_state";
    public final static String LD9_Setparam_Table =DB_RamDB+".tb_LD9_setparam";
    public final static String CInterfaceState_Table = DB_RamDB + ".`tb_cinterface_state`";
    public final static String HardDevSmsState_Table = DB_RamDB + ".`tb_hard_dev_sms_state`";
    public final static String FBS9100State_Table = DB_RamDB + ".`tb_fbs9100_state`";
    public final static String FBS9100S_DcDcState_Table = DB_RamDB + ".`tb_fbs9100s_dcdc_state`";
    public final static String FBS9100SetParam_Table = DB_RamDB + ".`tb_fbs9100_setparam`";
    public final static String FBS9100S_DFUState_Table = DB_RamDB + ".`tb_fbs9100s_DFU_state`";
    public final static String BMP7100State_Table = DB_RamDB + ".`tb_bpm7100_state`";
    public final static String FBS9600State_Table = DB_RamDB + ".`tb_fbs9600_state`";
    public final static String FBS9600SetParam_Table = DB_RamDB + ".`tb_fbs9600_setparam`";
    //public final static String FBS9600Param_Table = DB_RamDB + ".`tb_fbs9600_param`";
    public final static String SocketClientStateTable = DB_RamDB + ".`tb_socketclient_state`";
    public final static String RamDB_CMCC_POWER_Data = DB_RamDB + ".`cmcc_power_data`";
    public final static String RamLD9_UpdateStatue_Table = DB_RamDB + ".`tb_ld9_updatestatue`";                //9度设备升级表
    public final static String LD9_ConcentratorParam_Table = DB_RamDB + ".`tb_ld9_ConcentrateParam`";         //9度汇集器参数表
    public final static String LD9_ConcentratorState_Table = DB_RamDB + ".`tb_ld9_ConcentrateState`";         //9度汇集器状态表
    public final static String BTSGPRSState_Table = DB_RamDB + ".`tb_bts_gprs_state`";
    //--------------------------------------------------------------------------------------------//
    //--------------------------------------------------------------------------------------------//
    public final static String AppSys_Table = DB_AppSys + ".`tb_app_sys`";
    public final static String FBSDevStateChangeInf_Table = DB_AppSys + ".`tb_fbsdev_statechange_inf`";
    public final static String BattInf_Table = DB_BATT_INF + ".`tb_battinf`";
    public final static String BattCurrInf_Table = DB_BATT_INF + ".`tb_battcurr_inf`";
    public final static String BattMainInf_Table = DB_BATT_INF + ".`tb_batt_maint_inf`";
    public final static String BattMainProcess_Table = DB_BATT_INF + ".`tb_batt_maint_process`";
    public final static String BattTestDataInf_Table = DB_BATT_TESTDATA + ".`tb_batttestdata_inf`";
    public final static String BattResData_Table = DB_BATT_TESTDATA + ".`tb_BattResData`";
    public final static String BattResDataInf_Table = DB_BATT_TESTDATA + ".`tb_battresdata_inf`";
    public final static String UserInfTable = DB_USER + ".`tb_user_inf`";
    public final static String UserLogTable = DB_USER + ".`tb_user_log`";
    public final static String UserBattGroup_BaoJiGroup_Table = DB_USER + ".`tb_user_battgroup_baojigroup`";
    public final static String UserBattGroup_BaoJiGroup_BattGroupTable = DB_USER + ".`tb_user_battgroup_baojigroup_battgroup`";
    public final static String UserBattGroup_BaoJiGroup_UsrTable = DB_USER + ".`tb_user_battgroup_baojigroup_usr`";
    public final static String UserTaskTemplateTable = DB_USER + ".`tb_user_task_batt_template`";
    public final static String UserTaskTable = DB_USER + ".`tb_user_task`";
    public final static String UserPaiXiuTable = DB_USER + ".`tb_user_paixiu`";
    public final static String UserListForTaskTable = DB_USER + ".`tb_user_task_user_list`";
    public final static String UserTaskParamTable = DB_USER + ".`tb_user_task_param`";
    public final static String UserBattCheckTaskTable = DB_USER + ".`tb_user_task_batt_check`";
    public final static String UserBattTestTaskTable = DB_USER + ".`tb_user_task_batt_test`";
    public final static String UserBattTaskChangeTable = DB_USER + ".`tb_user_task_change`";
    public final static String UsrBattMaintCheck_Table = DB_USER + ".`tb_user_battmaint_check`";
    public final static String UsrBattMaintCheckProcess_Table = DB_USER + ".`tb_user_battmaint_check_process`";
    public final static String UserSmsTable = DB_USER + ".`tb_user_sms`";
    public final static String UserSmsFormatTable = DB_USER + ".`tb_user_sms_format`";
    public final static String UserPermitGroupTable = DB_USER + ".`tb_user_permitgroup`";
    public final static String UserPermitGroupDataTable = DB_USER + ".`tb_user_permitgroup_data`";
    public final static String UserJieJiaRiTable = DB_USER + ".`tb_user_jiejiari`";
    //--------------------------------------------------------------------------------------------//
    public final static String Tb_BattDischarge_ParamTable = WEB_Site+".tb_battdischarge_param";        //电池放电计划参数表
    public final static String Tb_BattMap_InformationTable = WEB_Site+".tb_battmap_information";        //电池定位信息表
    public final static String Tb_Batt_DevDischargeTable = WEB_Site+".tb_batt_devdischarge";            //几种运营商的电压电流情况表
    public final static String Tb_BattDischarge_PlanTable = WEB_Site+".tb_battdischarge_plan";            //电池放电计划表
    public final static String Tb_Batt_ElectricityTable = WEB_Site+".tb_batt_electricity";                //运营商设备的用电量表
    public final static String Tb_Batt_Devdischarge_ParamTable = WEB_Site+".tb_batt_devdischarge_param";    //运营商设备记录的参数表
    public final static String Tb_Batt_Devdischarge_CMTable = WEB_Site+".tb_batt_devdischarge_CM";            //移动每个时间戳的电压电流功率表
    public final static String Tb_Batt_Devdischarge_CTTable = WEB_Site+".tb_batt_devdischarge_CT";            //电信每个时间戳的电压电流功率表
    public final static String Tb_Batt_Devdischarge_CUTable = WEB_Site+".tb_batt_devdischarge_CU";            //联通每个时间戳的电压电流功率表
    public final static String Tb_CustomPageTable = WEB_Site + ".tb_custompage";                            //页面导航表
    public final static String Tb_Vip_UserTable = WEB_Site + ".tb_vip_user";                                //超级管理员表
    public final static String Tb_Batt_Param_LowTable = WEB_Site + ".tb_batt_param_low";                    //蓄电池各种告警更换参数表
    public final static String Tb_AnnounceTable = WEB_Site + ".tb_announce";                                //公告信息表
    public final static String Tb_ProcessSurvey = WEB_Site + ".tb_process_survey";                            //线程监控表
    //--------------------------------------------------------------------------------------------//
    public final static String Tb_Device_InfTable = DB_Equipstand + ".tb_device_inf";                        //独立设备-设备信息表
    public final static String Tb_DevData_Rt = DB_Equipstand + ".tb_devdata_rt_";                            //独立设备-实时状态表
    public final static String Tb_DevData_Rt_Cfg = DB_Equipstand + ".tb_devdata_rt_cfg";                    //独立设备-实时/历史状态配置表
    public final static String Tb_Devdata_Backup_Cfg = DB_Equipstand + ".tb_devdata_backup_cfg";            //独立设备-FTP文件备份信息表
    //--------------------------------------------------------------------------------------------//
    public final static String Tb_DevData_historyTable = DB_Equip_History + ".tb_devdata_history_";            //独立设备-历史实时数据记录表
    public final static String Tb_DevAlarm_Data = DB_Equip_Alarm + ".tb_devalarm_data_";                    //独立设备-实时告警数据记录表
    public final static String Tb_DevAlarm_Data_History = DB_Equip_Alarm + ".tb_devalarm_data_history_";    //独立设备-历史告警数据记录表
    //--------------------------------------------------------------------------------------------//
    public final static String Tb_Dynamicload_inf = DB_DynamicSystem + ".tb_dynamicload_inf";                //设备信息表
    public final static String Tb_Dynamicload_State_rt = DB_DynamicSystem + ".tb_dynamicload_state_rt";        //设备状态表
    public final static String Tb_Dynamicload_Button_Rt = DB_DynamicSystem +".tb_dynamicload_button_rt";    //按钮反馈表
    public final static String Tb_Dynamicload_Control = DB_DynamicSystem + ".tb_dynamicload_control";        //电源柜控制表
    //--------------------------------------------------------------------------------------------//
    public final static String Tb_Motor_inf = DB_Elemachinery + ".tb_motor_inf";                            //电机信息表
    public final static String Tb_Motor_control = DB_Elemachinery + ".tb_motor_control";                    //电机控制表
    public final static String Tb_Load_Motor_state = DB_Elemachinery + ".tb_load_motor_state";                //加载电机状态表
    public final static String Tb_Subject_Motor_state = DB_Elemachinery + ".tb_subject_motor_state";        //受试电机状态表
    public final static String Tb_Devalarm_Rt = DB_Elemachinery + ".tb_devalaram_rt";                        //电机实时告警记录表
    public final static String Tb_Devalarm_History = DB_Elemachinery + ".tb_devalaram_history";                //电机历史告警记录表
    public final static String Tb_Motor_Readdata = DB_Motor_Realhistory + ".tb_motor_readdata_";            //电机历史实时记录表
    //--------------------------------------------------------------------------------------------//
    /***            电源控制相关表                                        *****/
    public final static String Tb_Electric_Control_Single = DB_ElectricSystem + ".tb_electric_control_single";        //电源单点控制表
    public final static String Tb_Electric_Power = DB_ElectricSystem + ".tb_electric_power";                        //电源控制状态表
    public final static String Tb_Electric_Rt = DB_ElectricSystem + ".tb_electric_rt";
    public final static String Tb_Electric_State = DB_ElectricSystem + ".tb_electric_state";
    public final static String Tb_Electric_Switch = DB_ElectricSystem + ".tb_electric_switch";
    //-----------------------------------------------------------------------------------------------//
    /*             水冷系统相关表                                                                                                  */
    public final static String Tb_water_inf = DB_Watersystem + ".tb_water_inf";        //水冷系统信息
    public final static String Tb_water_rt = DB_Watersystem + ".tb_water_rt";        //水冷系统实时数据
    public final static String Tb_water_brach = DB_Watersystem + ".tb_water_brach"; //水冷系统分支实时数据
    public final static String Tb_water_state = DB_Watersystem + ".tb_water_state";    //水冷系统实时状态
    //--------------------------------------------------------------------------------------------//
    public Connection mysql_con;
    public Sql_Mysql(Connection conn)
    {
        mysql_con = conn;
    }
    /*
    public static Connection getConnection() throws SQLException, java.lang.ClassNotFoundException{
        String url = "jdbc:mysql://192.168.48.128:3306/studentinfo";
        Class.forName("com.mysql.jdbc.Driver");
        String userName = "root";
        String password = "lmx8688139";
        Connection con = DriverManager.getConnection(url,userName,password);
        return con;
    }
    */
    public void close_con()
    {
        try {
            mysql_con.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    public void checkAndCreateDB() throws SQLException
    {
        sqlMysqlExecute("CREATE DATABASE IF NOT EXISTS " + DB_AppSys);
        sqlMysqlExecute("CREATE DATABASE IF NOT EXISTS " + DB_BATT_INF);
        sqlMysqlExecute("CREATE DATABASE IF NOT EXISTS " + DB_BATT_TESTDATA);
        sqlMysqlExecute("CREATE DATABASE IF NOT EXISTS " + DB_PARAM);
        sqlMysqlExecute("CREATE DATABASE IF NOT EXISTS " + DB_ALARM);
        sqlMysqlExecute("CREATE DATABASE IF NOT EXISTS " + DB_USER);
        sqlMysqlExecute("CREATE DATABASE IF NOT EXISTS " + DB_RamDB);
        sqlMysqlExecute("DROP DATABASE IF EXISTS " + DB_RamDB_BATT_RT);
        //sqlMysqlExecute("CREATE DATABASE IF NOT EXISTS " + DB_RamDB_BATT_RT);
        sqlMysqlExecute("CREATE DATABASE IF NOT EXISTS " + WEB_Site);
        String table_0 = "CREATE TABLE IF NOT EXISTS " + AppSys_Table
                        + " ( `num` INT NOT NULL AUTO_INCREMENT,"
                        + "`SqlDB_Version` FLOAT NOT NULL DEFAULT '1.0',"
                        + "`SqlDB_BackUpTime` DATETIME NOT NULL DEFAULT '2000-1-1 00:00:00',"
                        + "`SqlDB_BackUpManual_EN` BOOLEAN NOT NULL DEFAULT false, "
                        + "`AppServer_Version` FLOAT NOT NULL DEFAULT '1.0',"
                        + "`AppClient_Version` FLOAT NOT NULL DEFAULT '1.0',"
                        + "`AppName` VARCHAR(50) NOT NULL DEFAULT '0',"
                        + " PRIMARY KEY (`num`)) "
                        + " ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        String table_1 = "CREATE TABLE IF NOT EXISTS " + BattInf_Table
                        + " ( `num` INT NOT NULL AUTO_INCREMENT,"
                        + "`StationId` VARCHAR(20) NOT NULL DEFAULT '0',"
                        + "`StationName` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`StationName1` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`StationName2` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`StationName3` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`StationName4` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`StationName5` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`StationName6` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`StationName7` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`StationName8` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`StationName9` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`StationIP` VARCHAR(20) NOT NULL DEFAULT '0',"
                        + "`FBSDeviceId` BIGINT NOT NULL DEFAULT '0',"
                        + "`FBSDeviceIp` VARCHAR(50) NOT NULL DEFAULT '192.168.0.88',"
                        + "`FBSDeviceName` VARCHAR(100) NOT NULL DEFAULT '0',"
                        + "`GroupIndexInFBSDevice` INT NOT NULL DEFAULT '0',"
                        + "`BattModel` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`BattGroupId` INT NOT NULL DEFAULT '0',"
                        + "`BattGroupNum` INT NOT NULL DEFAULT '0',"
                        + "`BattGroupName` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`BattGroupName1` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`BattGroupName2` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`BattGroupName3` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`BattGroupName4` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`BattGroupName5` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`BattGroupName6` VARCHAR(100) NOT NULL DEFAULT ' ',"
                        + "`FloatVolLevel` FLOAT NOT NULL DEFAULT '1.12',"
                        + "`OfflineVolLevel` FLOAT NOT NULL DEFAULT '1.06',"
                        + "`BattFloatCurrent` FLOAT NOT NULL DEFAULT '0',"
                        + "`DeviceId` VARCHAR(20) NOT NULL DEFAULT '0',"
                        + "`DeviceName` VARCHAR(100) NOT NULL DEFAULT '0',"
                        + "`MonCount` INT NOT NULL DEFAULT '0',"
                        + "`MonCapStd` FLOAT NOT NULL DEFAULT '0',"
                        + "`MonVolStd` FLOAT NOT NULL DEFAULT '0',"
                        + "`MonResStd` FLOAT NOT NULL DEFAULT '0',"
                        + "`MonSerStd` FLOAT NOT NULL DEFAULT '0',"
                        + "`MonTmpStd` FLOAT NOT NULL DEFAULT '0',"
                        + "`MonVolLowToAvg` FLOAT NOT NULL DEFAULT '0',"
                        + "`MonNum` INT NOT NULL DEFAULT '0',"
                        + "`BattProducer` VARCHAR(45) NOT NULL DEFAULT '0',"
                        + "`BattProductDate` DATE NOT NULL DEFAULT '2006-07-06',"
                        + "`BattInUseDate` DATE NOT NULL DEFAULT '2006-07-06',"
                        + "`BattGuarantDayCount` INT NOT NULL DEFAULT '1095',"
                        + "`SignalId` VARCHAR(20) NOT NULL DEFAULT '0',"
                        + "`CInterFaceId` INT NOT NULL DEFAULT '0',"
                        + "`SignalName` VARCHAR(50) NOT NULL DEFAULT '0',"
                        + "INDEX index_station_id (`StationId`), "
                        + "INDEX index_battgroup_id (`BattGroupId`), "
                        + "INDEX index_station_name (`StationName`), "
                        + "INDEX index_battgroup_name (`BattGroupName`), "
                        + "PRIMARY KEY (`num`)) "
                        + "ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        String table_2 = "CREATE TABLE IF NOT EXISTS " + BattCurrInf_Table
                        + " ( `num` INT NOT NULL AUTO_INCREMENT,"
                        + "`StationId` VARCHAR(20) NOT NULL DEFAULT '0',"
                        + "`BattGroupId` VARCHAR(20) NOT NULL DEFAULT '0',"
                        + "`BattGroupName` VARCHAR(100) NOT NULL DEFAULT '0',"
                        + "`CurrDeviceId` VARCHAR(20) NOT NULL DEFAULT '0',"
                        + "`CurrDeviceName` VARCHAR(100) NOT NULL DEFAULT '0',"
                        + "`CurrValueId` VARCHAR(20) NOT NULL DEFAULT '0',"
                        + "`CurrValueName` VARCHAR(100) NOT NULL DEFAULT '0',"
                        + "PRIMARY KEY (`num`)) "
                        + "ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        String table_3 = "CREATE TABLE IF NOT EXISTS " + BattMainInf_Table
                        + " ( `num` BIGINT NOT NULL AUTO_INCREMENT, "
                        + "`BattGroupId` INT NOT NULL DEFAULT 0, "
                        + "`usr_id` INT NOT NULL DEFAULT 0, "
                        + "`fault_type_id` INT NOT NULL DEFAULT 0, "
                        + "`fault_type` VARCHAR(50) NOT NULL DEFAULT ' ', "
                        + "`fault_level` INT NOT NULL DEFAULT 0, "
                        + "`fault_caption` VARCHAR(200) NOT NULL DEFAULT ' ', "
                        + "`fault_time` DATETIME NOT NULL DEFAULT '2005-1-1 00:00:00', "
                        + "`record_uid` INT NOT NULL DEFAULT 0, "
                        + "`record_time` DATETIME NOT NULL DEFAULT '2005-1-1 00:00:00', "
                        + "`maint_time_limit` DATETIME NOT NULL DEFAULT '2005-1-1 00:00:00', "
                        + "`maint_type_id` INT NOT NULL DEFAULT 0, "
                        + "`maint_type` VARCHAR(50) NOT NULL DEFAULT ' ', "
                        + "`maint_result` VARCHAR(100) NOT NULL DEFAULT ' ', "
                        + "`maint_done` BOOLEAN NOT NULL DEFAULT false, "
                        + "`maint_done_time` DATETIME DEFAULT '2005-1-1 00:00:00', "
                        + "`maint_close` BOOLEAN NOT NULL DEFAULT false, "
                        + "`master_id` INT NOT NULL DEFAULT 0, "
                        + "`master_audit` INT NOT NULL DEFAULT 0, "                //领导审核
                        + "`appoint_uid` INT NOT NULL DEFAULT 0, "                 //指派给谁
                        + "`copy_uids` VARCHAR(200) NOT NULL DEFAULT ' ', "        //抄送给谁
                        + "`master_check` VARCHAR(100) NOT NULL DEFAULT ' ', "
                        + "`remark` VARCHAR(200) NOT NULL DEFAULT ' ', "
                        + "INDEX index_battgroup_id (`BattGroupId`), "
                        + "INDEX index_user_id (`usr_id`), "
                        + "INDEX index_fault_type_id (`fault_type_id`), "
                        + "INDEX index_maint_type_id (`maint_type_id`), "
                        + "PRIMARY KEY (`num`)) "
                        + "ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        String table_3_1 = "CREATE TABLE IF NOT EXISTS " + BattMainProcess_Table
                        + " ( `num` BIGINT NOT NULL AUTO_INCREMENT, "
                        + "`batt_maint_rec_id` BIGINT NOT NULL DEFAULT 0, "
                        + "`usr_id` INT NOT NULL DEFAULT 0, "
                        + "`work_caption` VARCHAR(200) NOT NULL DEFAULT ' ', "
                        + "`work_caption_time` DATETIME DEFAULT '2005-1-1 00:00:00', "
                        + "INDEX index_batt_maint_rec_id (`batt_maint_rec_id`), "
                        + " PRIMARY KEY (`num`)) "
                        + "ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        String table_3_2 = "CREATE TABLE IF NOT EXISTS " + UsrBattMaintCheck_Table
                        + " ( `num` BIGINT NOT NULL AUTO_INCREMENT, "
                        + "`StationId` INT NOT NULL DEFAULT 0, "
                        + "`usr_id` INT NOT NULL DEFAULT 0, "
                        + "`master_id` INT NOT NULL DEFAULT 0, "
                        + "`appoint_uid` INT NOT NULL DEFAULT 0, "                 //指派给谁
                        + "`copy_uids` VARCHAR(200) NOT NULL DEFAULT ' ', "        //抄送给谁
                        + "`task_type_id` INT NOT NULL DEFAULT 0, "
                        + "`task_level` INT NOT NULL DEFAULT 0, "
                        + "`task_caption` VARCHAR(200) NOT NULL DEFAULT ' ', "
                        + "`task_time_start` DATETIME NOT NULL DEFAULT '2005-1-1 00:00:00', "
                        + "`task_time_end` DATETIME NOT NULL DEFAULT '2005-1-1 00:00:00', "
                        + "`task_process` VARCHAR(200) NOT NULL DEFAULT ' ', "
                        + "`task_done` BOOLEAN NOT NULL DEFAULT false, "
                        + "`task_done_time` DATETIME DEFAULT '2005-1-1 00:00:00', "
                        + "`origin_usr_work_mark` INT NOT NULL DEFAULT 0, "
                        + "`task_done_confirm` BOOLEAN NOT NULL DEFAULT false, "
                        + "`master_audit` INT NOT NULL DEFAULT 0, "                //领导审核
                        + "`remark` VARCHAR(200) NOT NULL DEFAULT ' ', "
                        + "INDEX index_station_id (`StationId`), "
                        + "INDEX index_user_id (`usr_id`), "
                        + "INDEX index_task_type_id (`task_type_id`), "
                        + "PRIMARY KEY (`num`)) "
                        + "ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        String table_3_2_1 = "CREATE TABLE IF NOT EXISTS " + UsrBattMaintCheckProcess_Table
                        + " ( `num` BIGINT NOT NULL AUTO_INCREMENT, "
                        + "`task_rec_id` BIGINT NOT NULL DEFAULT 0, "
                        + "`usr_id` INT NOT NULL DEFAULT 0, "
                        + "`work_caption` VARCHAR(200) NOT NULL DEFAULT ' ', "
                        + "`work_caption_time` DATETIME DEFAULT '2005-1-1 00:00:00', "
                        + "INDEX index_task_rec_id (`task_rec_id`), "
                        + " PRIMARY KEY (`num`)) "
                        + "ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        String table_4 = "CREATE TABLE IF NOT EXISTS " + BattTestDataInf_Table
                        + " ( `num` BIGINT NOT NULL AUTO_INCREMENT, "
                        + "`BattGroupId` INT NOT NULL DEFAULT 0, "
                        + "`test_record_count` INT NOT NULL DEFAULT 0, "
                        + "`test_record_count_ex` INT NOT NULL DEFAULT 0, "
                        + "`test_type` INT NOT NULL DEFAULT 0, "
                        + "`record_time_interval` INT NOT NULL DEFAULT 0, "
                        + "`data_new` BOOLEAN NOT NULL DEFAULT false, "
                        + "`data_available` BOOLEAN NOT NULL DEFAULT false, "
                        + "`record_num` INT NOT NULL DEFAULT 0, "
                        + "`test_starttime` DATETIME NOT NULL DEFAULT '1982-01-01 00:00:00', "
                        + "`test_starttime_ex` DATETIME NOT NULL DEFAULT '1982-01-01 00:00:00', "
                        + "`test_starttype` INT NOT NULL DEFAULT 0, "
                        + "`record_time` DATETIME NOT NULL DEFAULT '1982-01-01 00:00:00', "
                        + "`test_timelong` INT NOT NULL DEFAULT 0, "
                        + "`test_stoptype` INT NOT NULL DEFAULT 0, "
                        + "`group_vol` FLOAT NOT NULL DEFAULT 0, "
                        + "`test_curr` FLOAT NOT NULL DEFAULT 0, "
                        + "`test_cap` FLOAT NOT NULL DEFAULT 0, "
                        + "`max_monnum` INT NOT NULL DEFAULT 0, "
                        + "`max_monvol` FLOAT NOT NULL DEFAULT 0, "
                        + "`min_monnum` INT NOT NULL DEFAULT 0, "
                        + "`min_monvol` FLOAT NOT NULL DEFAULT 0, "
                        + "`mon_num` INT NOT NULL DEFAULT 0, "
                        + "`mon_vol` FLOAT NOT NULL DEFAULT 0, "
                        + "`upload_usr_id` INT NOT NULL DEFAULT 0, "
                        + "`upload_data_ext` INT NOT NULL DEFAULT 0, "
                        + "`upload_client_type` INT NOT NULL DEFAULT 0, "
                        + "INDEX index_battgroup_id (`BattGroupId`), "
                        + "INDEX index_test_record_count (`test_record_count`), "
                        + "INDEX index_test_type (`test_type`), "
                        + "INDEX index_test_starttime (`test_starttime`), "
                        + "PRIMARY KEY (`num`)) "
                        + "ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        String table_5 = "CREATE TABLE IF NOT EXISTS " + BattResDataInf_Table
                        + " ( `num` BIGINT NOT NULL AUTO_INCREMENT, "
                        + "`BattGroupId` INT NOT NULL DEFAULT 0, "
                        + "`test_record_count` INT NOT NULL DEFAULT 0, "
                        + "`test_record_count_ex` INT NOT NULL DEFAULT 0, "
                        + "`test_type` INT NOT NULL DEFAULT 0, "
                        + "`data_new` BOOLEAN NOT NULL DEFAULT false, "
                        + "`data_available` BOOLEAN NOT NULL DEFAULT false, "
                        + "`test_starttime` DATETIME NOT NULL DEFAULT '1982-01-01 00:00:00', "
                        + "`test_starttime_ex` DATETIME NOT NULL DEFAULT '1982-01-01 00:00:00', "
                        + "`test_devtype` INT NOT NULL DEFAULT 0, "
                        + "`record_time` DATETIME NOT NULL DEFAULT '1982-01-01 00:00:00', "
                        + "`group_vol` FLOAT NOT NULL DEFAULT 0, "
                        + "`test_curr` FLOAT NOT NULL DEFAULT 0, "
                        + "`upload_usr_id` INT NOT NULL DEFAULT 0, "
                        + "`upload_client_type` INT NOT NULL DEFAULT 0, "
                        + "INDEX index_battgroup_id (`BattGroupId`), "
                        + "INDEX index_test_record_count (`test_record_count`), "
                        + "INDEX index_test_starttime (`test_starttime`), "
                        + "PRIMARY KEY (`num`)) "
                        + "ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        String table_6 = "DROP TABLE IF EXISTS " + SocketClientStateTable + "; ";
        String table_7 = "CREATE TABLE IF NOT EXISTS " + SocketClientStateTable
                        + "(`num` BIGINT NOT NULL AUTO_INCREMENT, "
                        + "`uId` INT NOT NULL DEFAULT 0, "
                        + "`client_type` INT NOT NULL DEFAULT 0, "
                        + "`client_id` BIGINT NOT NULL DEFAULT 0, "
                        + "`BattGroupId` INT NOT NULL DEFAULT 0, "
                        + "`client_is_connected` BOOLEAN NOT NULL DEFAULT false, "
                        + "`client_ip` VARCHAR(64) NOT NULL DEFAULT ' ', "
                        + "`client_conn_time` DATETIME NOT NULL DEFAULT '1980-01-01', "
                        + "`client_disconn_time` DATETIME NOT NULL DEFAULT '1980-01-01', "
                        + "INDEX index_user_id (`uId`), "
                        + "INDEX index_client_type (`client_type`), "
                        + "PRIMARY KEY (`num`)) "
                        + "ENGINE=MEMORY DEFAULT CHARSET=utf8;";
        String table_8 = "CREATE TABLE IF NOT EXISTS " + FBSDevStateChangeInf_Table
                        + "(`num` BIGINT NOT NULL AUTO_INCREMENT, "
                        + "`dev_id` INT NOT NULL DEFAULT 0, "
                        + "`rec_time` DATETIME NOT NULL DEFAULT '1980-01-01', "
                        + "`last_stat` INT NOT NULL DEFAULT 0, "
                        + "`now_stat` INT NOT NULL DEFAULT 0, "
                        + "`state_change_reason` INT NOT NULL DEFAULT 0, "
                        + "`dev_alarm` INT NOT NULL DEFAULT 0, "
                        + "INDEX index_dev_id (`dev_id`), "
                        + "PRIMARY KEY (`num`)) "
                        + "ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        //-------------------------------------------------------------------------------------//
        //-------------------------------------------------------------------------------------//
        sqlMysqlUseDB(Sql_Mysql.DB_AppSys);
        if(false == sqlMysqlCheckIfTableExist(TB_AppSys))
        {
            sqlMysqlExecute(table_0);
            sqlMysqlExecute("INSERT INTO " + Sql_Mysql.AppSys_Table
                                + " (AppName) VALUES ('蓄电池组综合管理系统')");
        }
        //-------------------------------------------------------------------------------------//
        {
            ResultSet rest = sqlMysqlQuery("SELECT AppServer_Version FROM " + Sql_Mysql.AppSys_Table);
            if(rest.next()) {
                float ser_version = rest.getFloat(1);
                if(ser_version < 1.387) {
                    sqlMysqlExecute("UPDATE " + Sql_Mysql.AppSys_Table + " SET AppServer_Version=1.388");
                    sqlMysqlExecute("USE db_batt_testdata");
                    sqlMysqlExecute("UPDATE tb_batttestdata_inf SET "
                                    + " test_starttime=date_sub(test_starttime, interval 1 month) "
                                    + " WHERE upload_usr_id>0");
                }
            }
        }
        //---------------------------------------------------------------------------------------------//
        ResultSet res0 = sqlMysqlQuery("SELECT * FROM information_schema.columns"
                                + " WHERE table_schema='db_app_sys'"
                                + " AND table_name='tb_app_sys'"
                                + " AND column_name='SqlDB_BackUpTime'");
        if(false == res0.next()) {
            sqlMysqlExecute("ALTER TABLE " + AppSys_Table
                            + " ADD COLUMN `SqlDB_BackUpTime` DATETIME NOT NULL DEFAULT '2000-1-1 00:00:00'"
                            + " AFTER `SqlDB_Version`,"
                            + " ADD COLUMN `SqlDB_BackUpManual_EN` BOOLEAN NOT NULL DEFAULT false"
                            + " AFTER `SqlDB_BackUpTime`");
        }
        res0 = sqlMysqlQuery("SELECT * FROM information_schema.columns"
                            + " WHERE table_schema='db_app_sys'"
                            + " AND table_name='tb_app_sys'"
                            + " AND column_name='SqlDB_BackUpManual_EN'");
        if(false == res0.next()) {
            sqlMysqlExecute("ALTER TABLE " + AppSys_Table
                            + " ADD COLUMN `SqlDB_BackUpManual_EN` BOOLEAN NOT NULL DEFAULT false"
                            + " AFTER `SqlDB_BackUpTime`");
        }
        //---------------------------------------------------------------------------------------------//
        sqlMysqlExecute(table_1);
        sqlMysqlExecute(table_2);
        sqlMysqlExecute(table_3);
        sqlMysqlExecute(table_3_1);
        sqlMysqlExecute(table_3_2);
        sqlMysqlExecute(table_3_2_1);
        sqlMysqlExecute(table_4);
        sqlMysqlExecute(table_5);
        sqlMysqlExecute(table_6);
        sqlMysqlExecute(table_7);
        sqlMysqlExecute(table_8);
        //---------------------------------------------------------------------------------------------//
        ResultSet res = sqlMysqlQuery("show index from " + BattInf_Table + " where column_name='BattGroupId'");
        if(false == res.next())
        {
            sqlMysqlExecute("ALTER TABLE " + BattInf_Table + " ADD INDEX `index_station_id` (`StationId` ASC);");
            sqlMysqlExecute("ALTER TABLE " + BattInf_Table + " ADD INDEX `index_battgroup_id` (`BattGroupId` ASC);");
            sqlMysqlExecute("ALTER TABLE " + BattInf_Table + " ADD INDEX `index_station_name` (`StationName` ASC);");
            sqlMysqlExecute("ALTER TABLE " + BattInf_Table + " ADD INDEX `index_battgroup_name` (`BattGroupName` ASC);");
        }
        //---------------------------------------------------------------------------------------------//
        //-------------------------------- 2017-06-06 by mxpopstar ------------------------------------//
                res = sqlMysqlQuery("SELECT * FROM information_schema.columns"
                                        + " WHERE table_schema='db_battinf'"
                                        + " AND table_name='tb_battinf'"
                                        + " AND column_name='BattGuarantDayCount'");
                if(false == res.next()) {
                    sqlMysqlExecute("ALTER TABLE " + BattInf_Table
                                    + " ADD COLUMN `BattGuarantDayCount` INT NOT NULL DEFAULT 1095 AFTER `BattInUseDate`");
                }
                //---------------------------------------------------------------------------------------------//
        //---------------------------------------------------------------------------------------------//
        res = sqlMysqlQuery("SELECT * FROM information_schema.columns"
                                + " WHERE table_schema='db_battinf'"
                                + " AND table_name='tb_batt_maint_inf'"
                                + " AND column_name='master_audit'");
        if(false == res.next()) {
            sqlMysqlExecute("ALTER TABLE " + BattMainInf_Table
                            + " ADD COLUMN `fault_type_id` INT NOT NULL DEFAULT 0 AFTER `usr_id`,"
                            + " ADD COLUMN `maint_type_id` INT NOT NULL DEFAULT 0 AFTER `maint_time_limit`,"
                            + " ADD COLUMN `master_audit` INT NOT NULL DEFAULT 0 AFTER `master_id`,"
                            + " ADD COLUMN `maint_close` BOOLEAN NOT NULL DEFAULT FALSE AFTER `maint_done_time`,"
                            + " ADD COLUMN `appoint_uid` INT NOT NULL DEFAULT 0 AFTER `master_audit`,"
                            + " ADD COLUMN `copy_uids` VARCHAR(200) NOT NULL DEFAULT ' ' AFTER `master_audit`");
        }
        //---------------------------------------------------------------------------------------------//
        //---------------------------------------------------------------------------------------------//
        res = sqlMysqlQuery("show index from " + BattTestDataInf_Table + " where column_name='test_starttime'");
        if(false == res.next())
        {
            sqlMysqlExecute("ALTER TABLE " + BattTestDataInf_Table + " ADD INDEX `index_test_record_count` (`test_record_count` ASC);");
            sqlMysqlExecute("ALTER TABLE " + BattTestDataInf_Table + " ADD INDEX `index_test_type` (`test_type` ASC);");
            sqlMysqlExecute("ALTER TABLE " + BattTestDataInf_Table + " ADD INDEX `index_test_starttime` (`test_starttime` ASC);");
        }
        //---------------------------------------------------------------------------------------------//
        //---------------------------------------------------------------------------------------------//
        res = sqlMysqlQuery("show index from " + BattResDataInf_Table + " where column_name='test_starttime'");
        if(false == res.next())
        {
            sqlMysqlExecute("ALTER TABLE " + BattResDataInf_Table + " ADD INDEX `index_test_record_count` (`test_record_count` ASC);");
            sqlMysqlExecute("ALTER TABLE " + BattResDataInf_Table + " ADD INDEX `index_test_type` (`test_type` ASC);");
            sqlMysqlExecute("ALTER TABLE " + BattResDataInf_Table + " ADD INDEX `index_test_starttime` (`test_starttime` ASC);");
        }
        //---------------------------------------------------------------------------------------------//
        res = sqlMysqlQuery("SELECT * FROM information_schema.columns"
                                        + " WHERE table_schema='db_batt_testdata'"
                                        + " AND table_name='tb_batttestdata_inf'"
                                        + " AND column_name='test_record_count_ex'");
        if(false == res.next())
        {
            sqlMysqlExecute("ALTER TABLE " + BattTestDataInf_Table
                            + " ADD COLUMN `test_record_count_ex` INT NOT NULL DEFAULT 0 AFTER `test_record_count`,"
                            + " ADD COLUMN `test_starttime_ex` DATETIME NOT NULL DEFAULT '1920-01-01 00:00:00' AFTER `test_starttime`,"
                            + " ADD COLUMN `upload_usr_id` INT NOT NULL DEFAULT 0 AFTER `mon_vol`");
        }
        //---------------------------------------------------------------------------------------------//
        //---------------------------------------------------------------------------------------------//
        res = sqlMysqlQuery("SELECT * FROM information_schema.columns"
                                                + " WHERE table_schema='db_batt_testdata'"
                                                + " AND table_name='tb_batttestdata_inf'"
                                                + " AND column_name='upload_data_ext'");
        if(false == res.next())
        {
            sqlMysqlExecute("ALTER TABLE " + BattTestDataInf_Table
                            + " ADD COLUMN `upload_data_ext` INT NOT NULL DEFAULT 0 AFTER `upload_usr_id`,"
                            + " ADD COLUMN `upload_client_type` INT NOT NULL DEFAULT 0 AFTER `upload_data_ext`");
            sqlMysqlExecute("ALTER TABLE " + BattResDataInf_Table
                            + " ADD COLUMN `upload_client_type` INT NOT NULL DEFAULT 0 AFTER `upload_usr_id`");
        }
        //---------------------------------------------------------------------------------------------//
        //----------------------------将num自增字段改为bigint类型---------------------------------------//
        res = sqlMysqlQuery("SELECT DATA_TYPE FROM information_schema.columns"
                                        + " WHERE table_schema='db_batt_testdata'"
                                        + " AND table_name='tb_batttestdata_inf'"
                                        + " AND column_name='num'");
        if(true == res.next()) {
            if(false == "bigint".equals(res.getString("DATA_TYPE").toLowerCase())) {
                sqlMysqlExecute("ALTER TABLE " + BattTestDataInf_Table + " MODIFY COLUMN num BIGINT NOT NULL AUTO_INCREMENT;");
                sqlMysqlExecute("ALTER TABLE " + BattResDataInf_Table + " MODIFY COLUMN num BIGINT NOT NULL AUTO_INCREMENT;");
            }
        }
        //---------------------------------------------------------------------------------------------//
    }
    //使用db数据库
    public void sqlMysqlUseDB(String db) throws SQLException
    {
        sqlMysqlExecute("use " + db);
    }
    //获取电池组机房的个数
    public int getBattStationCount()
    {
        int st_count = 0;
        try {
            sqlMysqlUseDB(Sql_Mysql.DB_BATT_INF);
            String sql_str = "SELECT DISTINCT StationId FROM " + BattInf_Table;
            ResultSet res = sqlMysqlQuery(sql_str);
            while(res.next())
            {
                st_count++;
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return st_count;
    }
    /**
     * 检查tb表是否存在
     * @param tb
     * @return
     * @throws SQLException
     */
    public boolean sqlMysqlCheckIfTableExist(String tb) throws SQLException
    {
        String sql_str = "SHOW TABLES LIKE '" + tb + "'";
        ResultSet res = sqlMysqlQuery(sql_str);
        boolean exist = false;
        while(res.next())
        {
            exist = true;
            break;
        }
        return exist;
    }
    //执行sql语句
    public void sqlMysqlExecute(String sql_str) throws SQLException
    {
        Statement sql = mysql_con.createStatement();
        sql.setQueryTimeout(30);
        sql.execute(sql_str);
    }
    //在事物中执行多条sql语句
    public boolean makeManualCommit(ArrayList<String> al_sql_strs)
    {
        boolean exe_res = true;
        try {
            mysql_con.setAutoCommit(false);
            for(int n=0; n<al_sql_strs.size(); n++) {
                sqlMysqlExecute(al_sql_strs.get(n));
            }
            if(true == exe_res) {
                mysql_con.commit();
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
            exe_res = false;
        } finally {
            try {
                if(false == exe_res) {
                    mysql_con.rollback();
                }
                mysql_con.setAutoCommit(true);
            } catch (SQLException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
        }
        return exe_res;
    }
    //根据sql语句执行sql查询语句
    public ResultSet sqlMysqlQuery(String sql_str)
    {
        ResultSet res = null;
        try
        {
            Statement sql = mysql_con.createStatement();
            sql.setQueryTimeout(30);
            String query = sql_str;
            res =  sql.executeQuery(query);
        }
        catch(SQLException ex)
        {
            System.err.println("SQLException:" + ex.getMessage());
        }
        return res;
    }
    //根据sql语句执行sql更新语句
    public void sqlMysqlUpdate(String sql_str)
    {
        try
        {
            Statement sql = mysql_con.createStatement();
            sql.setQueryTimeout(30);
            String query = sql_str;
            sql.execute(query);
        }
        catch(SQLException ex)
        {
            System.out.println("SQLException:" + ex.getMessage());
        }
    }
    //根据电池组id 获取机房名称
    public String getStationName(int bg_id)
    {
        String stname = " ";
        String sql_str = "SELECT DISTINCT StationName FROM "
                            + Sql_Mysql.BattInf_Table + " WHERE BattGroupId=" + bg_id;
        ResultSet res = sqlMysqlQuery(sql_str);
        try {
            if(res.next())
            {
                stname = res.getString("StationName");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return stname;
    }
    //根据电池组id 获取电池组名称
    public String getBattGroupName(int bg_id)
    {
        String bgname = " ";
        String sql_str = "SELECT DISTINCT BattGroupName FROM "
                            + Sql_Mysql.BattInf_Table + " WHERE BattGroupId=" + bg_id;
        ResultSet res = sqlMysqlQuery(sql_str);
        try {
            if(res.next())
            {
                bgname = res.getString("BattGroupName");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return bgname;
    }
    //根据用户的id获取用户的名称
    public String getUsrName(int uid)
    {
        String usrname = " ";
        String sql_str = "SELECT uName FROM " + Sql_Mysql.UserInfTable + " WHERE uId=" + uid;
        ResultSet res = sqlMysqlQuery(sql_str);
        try {
            if(res.next())
            {
                usrname = res.getString("uName");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return usrname;
    }
    //根据format_type 获取format_str 的样式
    public String getTaskSmsFormatStr(String format_type)
    {
        String str = "";
        String sql_str = "SELECT DISTINCT "
                        + Sql_Mysql.UserSmsFormatTable + ".format_str"
                        + " FROM " + Sql_Mysql.UserSmsFormatTable
                        + " WHERE "
                        + Sql_Mysql.UserSmsFormatTable + ".format_type='" + format_type + "'";
        ResultSet sql_res = sqlMysqlQuery(sql_str);
        try {
            if(sql_res.next())
            {
                str = sql_res.getString("format_str");
            }
        } catch (SQLException e1) {
            // TODO Auto-generated catch block
            //e1.printStackTrace();
        }
        return str;
    }
    //根据作业id获取作业的名称
    public String getUsrTaskName(int taskid)
    {
        String taskname = " ";
        String sql_str = "SELECT task_name FROM " + Sql_Mysql.UserTaskTable + " WHERE task_id=" + taskid;
        ResultSet res = sqlMysqlQuery(sql_str);
        try {
            if(res.next()) {
                taskname = res.getString("task_name");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return taskname;
    }
    //根据作业id获取用户作业的创建时间
    public String getUsrTaskCreateTime(int taskid)
    {
        String taskcreatetime = " ";
        String sql_str = "SELECT task_create_date FROM " + Sql_Mysql.UserTaskTable + " WHERE task_id=" + taskid;
        ResultSet res = sqlMysqlQuery(sql_str);
        try {
            if(res.next())
            {
                taskcreatetime = Com.getDateTimeFormat(res.getTimestamp("task_create_date"), Com.DTF_YMDhms);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return taskcreatetime;
    }
    //获取新创建的记录的testrecordcount的值
    public int getBattTestRecordCountNew(int bg_id, String table)
    {
        int count = 0;
        boolean res_exe = true;
        String sql_str0 = "SELECT test_record_count_ex FROM " + table
                            + " WHERE BattGroupId=" + bg_id  + " FOR UPDATE";
        String sql_str1 = "UPDATE " + table + " SET test_record_count_ex=test_record_count+1"
                            + " WHERE BattGroupId=" + bg_id;
        String sql_str2 = "SELECT MAX(test_record_count_ex) FROM " + table
                            + " WHERE BattGroupId=" + bg_id;
        String sql_str3 = "INSERT INTO " + table + " (BattGroupId,test_record_count, test_record_count_ex) "
                            + " VALUES (" + bg_id + "," + 1 + "," + 1 + ")";
        try {
            mysql_con.setAutoCommit(false);
            ResultSet res = sqlMysqlQuery(sql_str0);
            if(res.next()) {
                sqlMysqlExecute(sql_str1);
                res = sqlMysqlQuery(sql_str2);
                if(res.next()) {
                    count = res.getInt(1);
                }
            } else {
                count = 1;
                sqlMysqlExecute(sql_str3);
            }
            mysql_con.commit();
        } catch (SQLException e) {
            e.printStackTrace();
            res_exe = false;
        } finally {
            if(false == res_exe) {
                try {
                    mysql_con.rollback();
                    mysql_con.setAutoCommit(true);
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        }
        return count;
    }
}
WaterSystem_MonitorServer/src/com/watersystem/monitor/Water_Task_SQL.java
New file
@@ -0,0 +1,265 @@
package com.watersystem.monitor;
import java.security.interfaces.RSAKey;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import com.sql.MysqlConnPool;
import com.sql.Sql_Mysql;
public class Water_Task_SQL {
    /**
     * 查询所有的水冷记录
     * @param pool
     * @param electric
     */
    public static void queryAllWater(MysqlConnPool pool,List<Water_inf> winfs) {
        String sql_str = " select * from " + Sql_Mysql.Tb_water_inf+ " order by water_id;";
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        ResultSet res = null;
        try {
            res = sql.sqlMysqlQuery(sql_str);
            while(res.next()) {
                Water_inf winf=new Water_inf();
                winf.setWater_id(res.getInt("water_id"));
                winf.setWater_name(res.getString("water_name"));
                winf.setWater_ip(res.getString("water_ip"));
                winf.setWater_type(res.getInt("water_type"));
                winfs.add(winf);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            if(res != null) {
                try {
                    res.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            sql.close_con();
        }
    }
    /**
     * 创建水冷系统数据库
     * @param pool
     */
    public static void createDB_WaterSystem(MysqlConnPool pool) {
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            sql.sqlMysqlExecute("CREATE DATABASE IF NOT EXISTS " + Sql_Mysql.DB_Watersystem);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
    /**
     * 创建水冷信息表
     * @param pool
     */
    public static void createTb_water_inf(MysqlConnPool pool) {
        String sql_str = "CREATE TABLE IF NOT EXISTS "+Sql_Mysql.Tb_water_inf+" (" +
                "  num bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键'," +
                "  water_id int(11) NOT NULL DEFAULT '5001' COMMENT '水冷系统id'," +
                "  water_name varchar(255) NOT NULL DEFAULT '' COMMENT '水冷系统名称'," +
                "  water_type int(11) NOT NULL DEFAULT '0' COMMENT '水冷系统类型(备用)'," +
                "  water_ip varchar(255) NOT NULL DEFAULT '127.0.0.1' COMMENT '水冷系统ip(重要)'," +
                "  note varchar(255) NOT NULL DEFAULT ''," +
                "  PRIMARY KEY (num)," +
                "  KEY water_id_key (water_id)" +
                ") ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;";
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            sql.sqlMysqlExecute(sql_str);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
    /**
     * 创建水冷系统实时信息表
     * @param pool
     */
    public static void createTb_water_rt(MysqlConnPool pool) {
        String sql_str = "CREATE TABLE IF NOT EXISTS " + Sql_Mysql.Tb_water_rt + " (" +
                "  num bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键'," +
                "  water_id int(11) NOT NULL DEFAULT '5001' COMMENT '水冷系统id'," +
                "  cooling_flow float NOT NULL DEFAULT '0' COMMENT '冷却水流量'," +
                "  supply_tmp float NOT NULL DEFAULT '0' COMMENT '供水温度'," +
                "  Supply_pre float NOT NULL DEFAULT '0' COMMENT '供水压力'," +
                "  back_tem float NOT NULL DEFAULT '0' COMMENT '回水温度'," +
                "  back_pre float NOT NULL DEFAULT '0' COMMENT '回水压力'," +
                "  Cooling_ser float NOT NULL DEFAULT '0' COMMENT '冷却水电导率'," +
                "  Buffer_tank_level float NOT NULL DEFAULT '0' COMMENT '缓冲罐液位'," +
                "  Buffer_tank_pre float NOT NULL DEFAULT '0' COMMENT '缓冲罐压力'," +
                "  Humidity_chamber float NOT NULL DEFAULT '0' COMMENT '阀厅湿度'," +
                "  Tem_chamber float NOT NULL DEFAULT '0' COMMENT '阀厅温度'," +
                "  External_tmp float NOT NULL DEFAULT '0' COMMENT '外水温度'," +
                "  External_pre float NOT NULL DEFAULT '0' COMMENT '外水压力'," +
                "  note varchar(255) NOT NULL DEFAULT ''," +
                "   PRIMARY KEY (num)," +
                "   UNIQUE KEY water_id_key (water_id) USING BTREE " +
                ") ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            sql.sqlMysqlExecute(sql_str);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
    /**
     * 创建水冷系统分支信息表
     * @param pool
     */
    public static void createTb_water_brach(MysqlConnPool pool) {
        String sql_str = "CREATE TABLE IF NOT EXISTS " + Sql_Mysql.Tb_water_brach + " (" +
                "  num bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键'," +
                "  water_id int(11) NOT NULL DEFAULT '5001' COMMENT '水冷系统id'," +
                "  Branch_flow_1 float NOT NULL DEFAULT '0' COMMENT '1#支路流量'," +
                "  Branch_flow_2 float NOT NULL DEFAULT '0' COMMENT '2#支路流量'," +
                "  Branch_flow_3 float NOT NULL DEFAULT '0' COMMENT '3#支路流量'," +
                "  Branch_flow_4 float NOT NULL DEFAULT '0' COMMENT '4#支路流量'," +
                "  Branch_flow_5 float NOT NULL DEFAULT '0' COMMENT '5#支路流量'," +
                "  Branch_flow_6 float NOT NULL DEFAULT '0' COMMENT '6#支路流量'," +
                "  Branch_flow_7 float NOT NULL DEFAULT '0' COMMENT '7#支路流量'," +
                "  Branch_flow_8 float NOT NULL DEFAULT '0' COMMENT '8#支路流量'," +
                "  Branch_flow_9 float NOT NULL DEFAULT '0' COMMENT '9#支路流量'," +
                "  " +
                "  Branch_tmp_1 float NOT NULL DEFAULT '0' COMMENT '1#支路温度'," +
                "  Branch_tmp_2 float NOT NULL DEFAULT '0' COMMENT '2#支路温度'," +
                "  Branch_tmp_3 float NOT NULL DEFAULT '0' COMMENT '3#支路温度'," +
                "  Branch_tmp_4 float NOT NULL DEFAULT '0' COMMENT '4#支路温度'," +
                "  Branch_tmp_5 float NOT NULL DEFAULT '0' COMMENT '5#支路温度'," +
                "  Branch_tmp_6 float NOT NULL DEFAULT '0' COMMENT '6#支路温度'," +
                "  Branch_tmp_7 float NOT NULL DEFAULT '0' COMMENT '7#支路温度'," +
                "  Branch_tmp_8 float NOT NULL DEFAULT '0' COMMENT '8#支路温度'," +
                "  Branch_tmp_9 float NOT NULL DEFAULT '0' COMMENT '9#支路温度'," +
                "   " +
                "  Branch_pre_1 float NOT NULL DEFAULT '0' COMMENT '1#支路压力'," +
                "  Branch_pre_2 float NOT NULL DEFAULT '0' COMMENT '2#支路压力'," +
                "  Branch_pre_3 float NOT NULL DEFAULT '0' COMMENT '3#支路压力'," +
                "  Branch_pre_4 float NOT NULL DEFAULT '0' COMMENT '4#支路压力'," +
                "  Branch_pre_5 float NOT NULL DEFAULT '0' COMMENT '5#支路压力'," +
                "  Branch_pre_6 float NOT NULL DEFAULT '0' COMMENT '6#支路压力'," +
                "  Branch_pre_7 float NOT NULL DEFAULT '0' COMMENT '7#支路压力'," +
                "  Branch_pre_8 float NOT NULL DEFAULT '0' COMMENT '8#支路压力'," +
                "  Branch_pre_9 float NOT NULL DEFAULT '0' COMMENT '9#支路压力'," +
                "  " +
                "  note varchar(255) NOT NULL DEFAULT ''," +
                "   PRIMARY KEY (num)," +
                "   UNIQUE KEY water_id_key (water_id) USING BTREE " +
                ") ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            sql.sqlMysqlExecute(sql_str);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
    /**
     * 创建水冷系统状态表
     * @param pool
     */
    public static void createTb_water_state(MysqlConnPool pool) {
        String sql_str = "CREATE TABLE IF NOT EXISTS " + Sql_Mysql.Tb_water_state + " (" +
                "  num bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键'," +
                "  water_id int(11) NOT NULL DEFAULT '5001' COMMENT '水冷系统id'," +
                "  P01_main_pump int(11) NOT NULL DEFAULT '0' COMMENT 'P01主泵运行'," +
                "  P11_replenish_pump int(11) NOT NULL DEFAULT '0' COMMENT 'P11补水泵运行'," +
                "  P12_pretest_pump int(11) NOT NULL DEFAULT '0' COMMENT 'P12试压泵运行'," +
                "  P13_replenish_pump int(11) NOT NULL DEFAULT '0' COMMENT 'P13补气泵运行'," +
                "  H01_electric_heater int(11) NOT NULL DEFAULT '0' COMMENT 'H01电加热器运行'," +
                "  H02_electric_heater int(11) NOT NULL DEFAULT '0' COMMENT 'H02电加热器运行'," +
                "  Solenoid_openflag int(11) NOT NULL DEFAULT '0' COMMENT '电磁阀开限位'," +
                "  Solenoid_shutflag int(11) NOT NULL DEFAULT '0' COMMENT '电磁阀关限位'," +
                "  valve_start int(11) NOT NULL DEFAULT '0' COMMENT '阀打开'," +
                "  Exhaust_start int(11) NOT NULL DEFAULT '0' COMMENT '排气阀打开'," +
                "  remote_start int(11) NOT NULL DEFAULT '0' COMMENT '远程启动水冷系统'," +
                "  remote_stop int(11) NOT NULL DEFAULT '0' COMMENT '远程停止水冷系统'," +
                "" +
                "  Operation_ooled_devices int(11) NOT NULL DEFAULT '0' COMMENT '被冷却器件投运'," +
                "  Auto_control_state int(11) NOT NULL DEFAULT '0' COMMENT '水冷系统自动控制状态'," +
                "  Manual_control_state int(11) NOT NULL DEFAULT '0' COMMENT '水冷系统手动控制状态'," +
                "  remote_control_state int(11) NOT NULL DEFAULT '0' COMMENT '水冷系统远程控制状态'," +
                "  Water_system_function int(11) NOT NULL DEFAULT '0' COMMENT '水冷系统运行'," +
                "  note varchar(255) NOT NULL DEFAULT ''," +
                "   PRIMARY KEY (num)," +
                "   UNIQUE KEY water_id_key (water_id) USING BTREE" +
                ") ENGINE=InnoDB DEFAULT CHARSET=utf8;";
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            sql.sqlMysqlExecute(sql_str);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
    /**
     * 初始化数据库表
     * @param pool
     */
    public static void init(MysqlConnPool pool) {
        createDB_WaterSystem(pool);
        createTb_water_inf(pool);
        createTb_water_rt(pool);
        createTb_water_brach(pool);
        createTb_water_state(pool);
    }
    //插入或更新水冷系统实时信息表
    public static void replace_water_rt(MysqlConnPool pool,Water_rt wrt) {
        String sql_str = " replace into "+ Sql_Mysql.Tb_water_rt+"(water_id,cooling_flow,supply_tmp,Supply_pre,back_tem,back_pre,Cooling_ser,Buffer_tank_level,Buffer_tank_pre,Humidity_chamber,Tem_chamber,External_tmp,External_pre)  "
                + "  values("+wrt.water_id+","+wrt.cooling_flow+","+wrt.supply_tmp+","+wrt.Supply_pre+","+wrt.back_tem+","+wrt.back_pre+","+wrt.Cooling_ser+","+wrt.Buffer_tank_level+","+wrt.Buffer_tank_pre+","+wrt.Humidity_chamber+","+wrt.Tem_chamber+","+wrt.External_tmp+","+wrt.External_pre+")";
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            sql.sqlMysqlExecute(sql_str);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
    //插入或更新水冷系统实时分支信息表
    public static void replace_water_brach(MysqlConnPool pool,Water_brach wbrach) {
        String sql_str = " replace into "+ Sql_Mysql.Tb_water_brach+"(water_id,Branch_flow_1,Branch_flow_2,Branch_flow_3,Branch_flow_4,Branch_flow_5,Branch_flow_6,Branch_flow_7,Branch_flow_8,Branch_flow_9,Branch_tmp_1,Branch_tmp_2,Branch_tmp_3,Branch_tmp_4,Branch_tmp_5,Branch_tmp_6,Branch_tmp_7,Branch_tmp_8,Branch_tmp_9,Branch_pre_1,Branch_pre_2,Branch_pre_3,Branch_pre_4,Branch_pre_5,Branch_pre_6,Branch_pre_7,Branch_pre_8,Branch_pre_9)  "
                + "  values("+wbrach.water_id+","+wbrach.Branch_flow_1+","+wbrach.Branch_flow_2+","+wbrach.Branch_flow_3+","+wbrach.Branch_flow_4+","+wbrach.Branch_flow_5+","+wbrach.Branch_flow_6+","+wbrach.Branch_flow_7+","+wbrach.Branch_flow_8+","+wbrach.Branch_flow_9
                +","+wbrach.Branch_tmp_1+","+wbrach.Branch_tmp_2+","+wbrach.Branch_tmp_3+","+wbrach.Branch_tmp_4+","+wbrach.Branch_tmp_5+","+wbrach.Branch_tmp_6+","+wbrach.Branch_tmp_7+","+wbrach.Branch_tmp_8+","+wbrach.Branch_tmp_9
                +","+wbrach.Branch_pre_1+","+wbrach.Branch_pre_2+","+wbrach.Branch_pre_3+","+wbrach.Branch_pre_4+","+wbrach.Branch_pre_5+","+wbrach.Branch_pre_6+","+wbrach.Branch_pre_7+","+wbrach.Branch_pre_8+","+wbrach.Branch_pre_9+")";
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            sql.sqlMysqlExecute(sql_str);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
    //插入或更新水冷系统实时信息表
    public static void replace_water_state(MysqlConnPool pool,Water_state wstate) {
        String sql_str = " replace into "+ Sql_Mysql.Tb_water_state+"(water_id,P01_main_pump,P11_replenish_pump,P12_pretest_pump,P13_replenish_pump,H01_electric_heater,H02_electric_heater,Solenoid_openflag,Solenoid_shutflag,valve_start,Exhaust_start,remote_start,remote_stop,Operation_ooled_devices,Auto_control_state,Manual_control_state,remote_control_state,Water_system_function)  "
                + "  values("+wstate.water_id+","+wstate.P01_main_pump+","+wstate.P11_replenish_pump+","+wstate.P12_pretest_pump+","+wstate.P13_replenish_pump+","+wstate.H01_electric_heater+","+wstate.H02_electric_heater+","+wstate.Solenoid_openflag+","+wstate.Solenoid_shutflag+","+wstate.valve_start+","+wstate.Exhaust_start+","+wstate.remote_start+","+wstate.remote_stop
                +","+wstate.Operation_ooled_devices+","+wstate.Auto_control_state+","+wstate.Manual_control_state+","+wstate.remote_control_state+","+wstate.Water_system_function+")";
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            sql.sqlMysqlExecute(sql_str);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
}
WaterSystem_MonitorServer/src/com/watersystem/monitor/Water_brach.java
New file
@@ -0,0 +1,303 @@
package com.watersystem.monitor;
import java.io.Serializable;
public class Water_brach implements Serializable{
      public int num;//'主键',
      public int water_id;//'水冷系统id',
      public float Branch_flow_1;//'1#支路流量',
      public float Branch_flow_2;//'2#支路流量',
      public float Branch_flow_3;//'3#支路流量',
      public float Branch_flow_4;//'4#支路流量',
      public float Branch_flow_5;//'5#支路流量',
      public float Branch_flow_6;//'6#支路流量',
      public float Branch_flow_7;//'7#支路流量',
      public float Branch_flow_8;//'8#支路流量',
      public float Branch_flow_9;//'9#支路流量',
      public float Branch_tmp_1;//'1#支路温度',
      public float Branch_tmp_2;//'2#支路温度',
      public float Branch_tmp_3;//'3#支路温度',
      public float Branch_tmp_4;//'4#支路温度',
      public float Branch_tmp_5;//'5#支路温度',
      public float Branch_tmp_6;//'6#支路温度',
      public float Branch_tmp_7;//'7#支路温度',
      public float Branch_tmp_8;//'8#支路温度',
      public float Branch_tmp_9;//'9#支路温度',
      public float Branch_pre_1;//'1#支路压力',
      public float Branch_pre_2;//'2#支路压力',
      public float Branch_pre_3;//'3#支路压力',
      public float Branch_pre_4;//'4#支路压力',
      public float Branch_pre_5;//'5#支路压力',
      public float Branch_pre_6;//'6#支路压力',
      public float Branch_pre_7;//'7#支路压力',
      public float Branch_pre_8;//'8#支路压力',
      public float Branch_pre_9;//'9#支路压力',
      public String note;//
    public Water_brach(int water_id) {
        super();
        this.water_id = water_id;
    }
    public int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }
    public int getWater_id() {
        return water_id;
    }
    public void setWater_id(int water_id) {
        this.water_id = water_id;
    }
    public float getBranch_flow_1() {
        return Branch_flow_1;
    }
    public void setBranch_flow_1(float branch_flow_1) {
        Branch_flow_1 = branch_flow_1;
    }
    public float getBranch_flow_2() {
        return Branch_flow_2;
    }
    public void setBranch_flow_2(float branch_flow_2) {
        Branch_flow_2 = branch_flow_2;
    }
    public float getBranch_flow_3() {
        return Branch_flow_3;
    }
    public void setBranch_flow_3(float branch_flow_3) {
        Branch_flow_3 = branch_flow_3;
    }
    public float getBranch_flow_4() {
        return Branch_flow_4;
    }
    public void setBranch_flow_4(float branch_flow_4) {
        Branch_flow_4 = branch_flow_4;
    }
    public float getBranch_flow_5() {
        return Branch_flow_5;
    }
    public void setBranch_flow_5(float branch_flow_5) {
        Branch_flow_5 = branch_flow_5;
    }
    public float getBranch_flow_6() {
        return Branch_flow_6;
    }
    public void setBranch_flow_6(float branch_flow_6) {
        Branch_flow_6 = branch_flow_6;
    }
    public float getBranch_flow_7() {
        return Branch_flow_7;
    }
    public void setBranch_flow_7(float branch_flow_7) {
        Branch_flow_7 = branch_flow_7;
    }
    public float getBranch_flow_8() {
        return Branch_flow_8;
    }
    public void setBranch_flow_8(float branch_flow_8) {
        Branch_flow_8 = branch_flow_8;
    }
    public float getBranch_flow_9() {
        return Branch_flow_9;
    }
    public void setBranch_flow_9(float branch_flow_9) {
        Branch_flow_9 = branch_flow_9;
    }
    public float getBranch_tmp_1() {
        return Branch_tmp_1;
    }
    public void setBranch_tmp_1(float branch_tmp_1) {
        Branch_tmp_1 = branch_tmp_1;
    }
    public float getBranch_tmp_2() {
        return Branch_tmp_2;
    }
    public void setBranch_tmp_2(float branch_tmp_2) {
        Branch_tmp_2 = branch_tmp_2;
    }
    public float getBranch_tmp_3() {
        return Branch_tmp_3;
    }
    public void setBranch_tmp_3(float branch_tmp_3) {
        Branch_tmp_3 = branch_tmp_3;
    }
    public float getBranch_tmp_4() {
        return Branch_tmp_4;
    }
    public void setBranch_tmp_4(float branch_tmp_4) {
        Branch_tmp_4 = branch_tmp_4;
    }
    public float getBranch_tmp_5() {
        return Branch_tmp_5;
    }
    public void setBranch_tmp_5(float branch_tmp_5) {
        Branch_tmp_5 = branch_tmp_5;
    }
    public float getBranch_tmp_6() {
        return Branch_tmp_6;
    }
    public void setBranch_tmp_6(float branch_tmp_6) {
        Branch_tmp_6 = branch_tmp_6;
    }
    public float getBranch_tmp_7() {
        return Branch_tmp_7;
    }
    public void setBranch_tmp_7(float branch_tmp_7) {
        Branch_tmp_7 = branch_tmp_7;
    }
    public float getBranch_tmp_8() {
        return Branch_tmp_8;
    }
    public void setBranch_tmp_8(float branch_tmp_8) {
        Branch_tmp_8 = branch_tmp_8;
    }
    public float getBranch_tmp_9() {
        return Branch_tmp_9;
    }
    public void setBranch_tmp_9(float branch_tmp_9) {
        Branch_tmp_9 = branch_tmp_9;
    }
    public float getBranch_pre_1() {
        return Branch_pre_1;
    }
    public void setBranch_pre_1(float branch_pre_1) {
        Branch_pre_1 = branch_pre_1;
    }
    public float getBranch_pre_2() {
        return Branch_pre_2;
    }
    public void setBranch_pre_2(float branch_pre_2) {
        Branch_pre_2 = branch_pre_2;
    }
    public float getBranch_pre_3() {
        return Branch_pre_3;
    }
    public void setBranch_pre_3(float branch_pre_3) {
        Branch_pre_3 = branch_pre_3;
    }
    public float getBranch_pre_4() {
        return Branch_pre_4;
    }
    public void setBranch_pre_4(float branch_pre_4) {
        Branch_pre_4 = branch_pre_4;
    }
    public float getBranch_pre_5() {
        return Branch_pre_5;
    }
    public void setBranch_pre_5(float branch_pre_5) {
        Branch_pre_5 = branch_pre_5;
    }
    public float getBranch_pre_6() {
        return Branch_pre_6;
    }
    public void setBranch_pre_6(float branch_pre_6) {
        Branch_pre_6 = branch_pre_6;
    }
    public float getBranch_pre_7() {
        return Branch_pre_7;
    }
    public void setBranch_pre_7(float branch_pre_7) {
        Branch_pre_7 = branch_pre_7;
    }
    public float getBranch_pre_8() {
        return Branch_pre_8;
    }
    public void setBranch_pre_8(float branch_pre_8) {
        Branch_pre_8 = branch_pre_8;
    }
    public float getBranch_pre_9() {
        return Branch_pre_9;
    }
    public void setBranch_pre_9(float branch_pre_9) {
        Branch_pre_9 = branch_pre_9;
    }
    public String getNote() {
        return note;
    }
    public void setNote(String note) {
        this.note = note;
    }
    @Override
    public String toString() {
        return "Water_brach [num=" + num + ", water_id=" + water_id + ", Branch_flow_1=" + Branch_flow_1
                + ", Branch_flow_2=" + Branch_flow_2 + ", Branch_flow_3=" + Branch_flow_3 + ", Branch_flow_4="
                + Branch_flow_4 + ", Branch_flow_5=" + Branch_flow_5 + ", Branch_flow_6=" + Branch_flow_6
                + ", Branch_flow_7=" + Branch_flow_7 + ", Branch_flow_8=" + Branch_flow_8 + ", Branch_flow_9="
                + Branch_flow_9 + ", Branch_tmp_1=" + Branch_tmp_1 + ", Branch_tmp_2=" + Branch_tmp_2
                + ", Branch_tmp_3=" + Branch_tmp_3 + ", Branch_tmp_4=" + Branch_tmp_4 + ", Branch_tmp_5=" + Branch_tmp_5
                + ", Branch_tmp_6=" + Branch_tmp_6 + ", Branch_tmp_7=" + Branch_tmp_7 + ", Branch_tmp_8=" + Branch_tmp_8
                + ", Branch_tmp_9=" + Branch_tmp_9 + ", Branch_pre_1=" + Branch_pre_1 + ", Branch_pre_2=" + Branch_pre_2
                + ", Branch_pre_3=" + Branch_pre_3 + ", Branch_pre_4=" + Branch_pre_4 + ", Branch_pre_5=" + Branch_pre_5
                + ", Branch_pre_6=" + Branch_pre_6 + ", Branch_pre_7=" + Branch_pre_7 + ", Branch_pre_8=" + Branch_pre_8
                + ", Branch_pre_9=" + Branch_pre_9 + ", note=" + note + "]";
    }
}
WaterSystem_MonitorServer/src/com/watersystem/monitor/Water_inf.java
New file
@@ -0,0 +1,55 @@
package com.watersystem.monitor;
import java.io.Serializable;
public class Water_inf implements Serializable{
      public int num;//'主键',
      public int water_id ;// '水冷系统id',
      public String water_name ;// '水冷系统名称',
      public int water_type;// '水冷系统类型(备用)',
      public String water_ip;// '水冷系统ip(重要)',
      public String note;//
    public int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }
    public int getWater_id() {
        return water_id;
    }
    public void setWater_id(int water_id) {
        this.water_id = water_id;
    }
    public String getWater_name() {
        return water_name;
    }
    public void setWater_name(String water_name) {
        this.water_name = water_name;
    }
    public int getWater_type() {
        return water_type;
    }
    public void setWater_type(int water_type) {
        this.water_type = water_type;
    }
    public String getWater_ip() {
        return water_ip;
    }
    public void setWater_ip(String water_ip) {
        this.water_ip = water_ip;
    }
    public String getNote() {
        return note;
    }
    public void setNote(String note) {
        this.note = note;
    }
    @Override
    public String toString() {
        return "Water_inf [num=" + num + ", water_id=" + water_id + ", water_name=" + water_name + ", water_type="
                + water_type + ", water_ip=" + water_ip + ", note=" + note + "]";
    }
}
WaterSystem_MonitorServer/src/com/watersystem/monitor/Water_rt.java
New file
@@ -0,0 +1,126 @@
package com.watersystem.monitor;
import java.io.Serializable;
public class Water_rt implements Serializable{
      public int num;//'主键',
      public int water_id ;//'水冷系统id',
      public float cooling_flow;//'冷却水流量',
      public float supply_tmp;//'供水温度',
      public float Supply_pre;//'供水压力',
      public float back_tem;//'回水温度',
      public float back_pre;//'回水压力',
      public float Cooling_ser;//'冷却水电导率',
      public float Buffer_tank_level;//'缓冲罐液位',
      public float Buffer_tank_pre;//'缓冲罐压力',
      public float Humidity_chamber;//'阀厅湿度',
      public float Tem_chamber;//'阀厅温度',
      public float External_tmp;//'外水温度',
      public float External_pre;//'外水压力',
      public String note;//
    public Water_rt(int water_id) {
        super();
        this.water_id = water_id;
    }
    public int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }
    public int getWater_id() {
        return water_id;
    }
    public void setWater_id(int water_id) {
        this.water_id = water_id;
    }
    public float getCooling_flow() {
        return cooling_flow;
    }
    public void setCooling_flow(float cooling_flow) {
        this.cooling_flow = cooling_flow;
    }
    public float getSupply_tmp() {
        return supply_tmp;
    }
    public void setSupply_tmp(float supply_tmp) {
        this.supply_tmp = supply_tmp;
    }
    public float getSupply_pre() {
        return Supply_pre;
    }
    public void setSupply_pre(float supply_pre) {
        Supply_pre = supply_pre;
    }
    public float getBack_tem() {
        return back_tem;
    }
    public void setBack_tem(float back_tem) {
        this.back_tem = back_tem;
    }
    public float getBack_pre() {
        return back_pre;
    }
    public void setBack_pre(float back_pre) {
        this.back_pre = back_pre;
    }
    public float getCooling_ser() {
        return Cooling_ser;
    }
    public void setCooling_ser(float cooling_ser) {
        Cooling_ser = cooling_ser;
    }
    public float getBuffer_tank_level() {
        return Buffer_tank_level;
    }
    public void setBuffer_tank_level(float buffer_tank_level) {
        Buffer_tank_level = buffer_tank_level;
    }
    public float getBuffer_tank_pre() {
        return Buffer_tank_pre;
    }
    public void setBuffer_tank_pre(float buffer_tank_pre) {
        Buffer_tank_pre = buffer_tank_pre;
    }
    public float getHumidity_chamber() {
        return Humidity_chamber;
    }
    public void setHumidity_chamber(float humidity_chamber) {
        Humidity_chamber = humidity_chamber;
    }
    public float getTem_chamber() {
        return Tem_chamber;
    }
    public void setTem_chamber(float tem_chamber) {
        Tem_chamber = tem_chamber;
    }
    public float getExternal_tmp() {
        return External_tmp;
    }
    public void setExternal_tmp(float external_tmp) {
        External_tmp = external_tmp;
    }
    public float getExternal_pre() {
        return External_pre;
    }
    public void setExternal_pre(float external_pre) {
        External_pre = external_pre;
    }
    public String getNote() {
        return note;
    }
    public void setNote(String note) {
        this.note = note;
    }
    @Override
    public String toString() {
        return "Water_rt [num=" + num + ", water_id=" + water_id + ", cooling_flow=" + cooling_flow + ", supply_tmp="
                + supply_tmp + ", Supply_pre=" + Supply_pre + ", back_tem=" + back_tem + ", back_pre=" + back_pre
                + ", Cooling_ser=" + Cooling_ser + ", Buffer_tank_level=" + Buffer_tank_level + ", Buffer_tank_pre="
                + Buffer_tank_pre + ", Humidity_chamber=" + Humidity_chamber + ", Tem_chamber=" + Tem_chamber
                + ", External_tmp=" + External_tmp + ", External_pre=" + External_pre + ", note=" + note + "]";
    }
}
WaterSystem_MonitorServer/src/com/watersystem/monitor/Water_state.java
New file
@@ -0,0 +1,168 @@
package com.watersystem.monitor;
import java.io.Serializable;
public class Water_state implements Serializable{
      public int num;//'主键',
      public int water_id;//'水冷系统id',
      public int P01_main_pump;//'P01主泵运行',
      public int P11_replenish_pump;//'P11补水泵运行',
      public int P12_pretest_pump;//'P12试压泵运行',
      public int P13_replenish_pump;//'P13补气泵运行',
      public int H01_electric_heater;//'H01电加热器运行',
      public int H02_electric_heater;//'H02电加热器运行',
      public int Solenoid_openflag;//'电磁阀开限位',
      public int Solenoid_shutflag;//'电磁阀关限位',
      public int valve_start;//'阀打开',
      public int Exhaust_start;//'排气阀打开',
      public int remote_start;//'远程启动水冷系统',
      public int remote_stop;//'远程停止水冷系统',
      public int Operation_ooled_devices;//'被冷却器件投运',
      public int Auto_control_state;//'水冷系统自动控制状态',
      public int Manual_control_state;//'水冷系统手动控制状态',
      public int remote_control_state;//'水冷系统远程控制状态',
      public int Water_system_function;//'水冷系统运行',
      public String note;//
    public Water_state(int water_id) {
        super();
        this.water_id = water_id;
    }
    public int getNum() {
        return num;
    }
    public void setNum(int num) {
        this.num = num;
    }
    public int getWater_id() {
        return water_id;
    }
    public void setWater_id(int water_id) {
        this.water_id = water_id;
    }
    public int getP01_main_pump() {
        return P01_main_pump;
    }
    public void setP01_main_pump(int p01_main_pump) {
        P01_main_pump = p01_main_pump;
    }
    public int getP11_replenish_pump() {
        return P11_replenish_pump;
    }
    public void setP11_replenish_pump(int p11_replenish_pump) {
        P11_replenish_pump = p11_replenish_pump;
    }
    public int getP12_pretest_pump() {
        return P12_pretest_pump;
    }
    public void setP12_pretest_pump(int p12_pretest_pump) {
        P12_pretest_pump = p12_pretest_pump;
    }
    public int getP13_replenish_pump() {
        return P13_replenish_pump;
    }
    public void setP13_replenish_pump(int p13_replenish_pump) {
        P13_replenish_pump = p13_replenish_pump;
    }
    public int getH01_electric_heater() {
        return H01_electric_heater;
    }
    public void setH01_electric_heater(int h01_electric_heater) {
        H01_electric_heater = h01_electric_heater;
    }
    public int getH02_electric_heater() {
        return H02_electric_heater;
    }
    public void setH02_electric_heater(int h02_electric_heater) {
        H02_electric_heater = h02_electric_heater;
    }
    public int getExhaust_start() {
        return Exhaust_start;
    }
    public void setExhaust_start(int exhaust_start) {
        Exhaust_start = exhaust_start;
    }
    public int getRemote_start() {
        return remote_start;
    }
    public void setRemote_start(int remote_start) {
        this.remote_start = remote_start;
    }
    public int getRemote_stop() {
        return remote_stop;
    }
    public void setRemote_stop(int remote_stop) {
        this.remote_stop = remote_stop;
    }
    public int getOperation_ooled_devices() {
        return Operation_ooled_devices;
    }
    public void setOperation_ooled_devices(int operation_ooled_devices) {
        Operation_ooled_devices = operation_ooled_devices;
    }
    public int getAuto_control_state() {
        return Auto_control_state;
    }
    public void setAuto_control_state(int auto_control_state) {
        Auto_control_state = auto_control_state;
    }
    public int getManual_control_state() {
        return Manual_control_state;
    }
    public void setManual_control_state(int manual_control_state) {
        Manual_control_state = manual_control_state;
    }
    public int getRemote_control_state() {
        return remote_control_state;
    }
    public void setRemote_control_state(int remote_control_state) {
        this.remote_control_state = remote_control_state;
    }
    public int getWater_system_function() {
        return Water_system_function;
    }
    public void setWater_system_function(int water_system_function) {
        Water_system_function = water_system_function;
    }
    public String getNote() {
        return note;
    }
    public void setNote(String note) {
        this.note = note;
    }
    public int getSolenoid_openflag() {
        return Solenoid_openflag;
    }
    public void setSolenoid_openflag(int solenoid_openflag) {
        Solenoid_openflag = solenoid_openflag;
    }
    public int getSolenoid_shutflag() {
        return Solenoid_shutflag;
    }
    public void setSolenoid_shutflag(int solenoid_shutflag) {
        Solenoid_shutflag = solenoid_shutflag;
    }
    public int getValve_start() {
        return valve_start;
    }
    public void setValve_start(int valve_start) {
        this.valve_start = valve_start;
    }
    @Override
    public String toString() {
        return "Water_state [num=" + num + ", water_id=" + water_id + ", P01_main_pump=" + P01_main_pump
                + ", P11_replenish_pump=" + P11_replenish_pump + ", P12_pretest_pump=" + P12_pretest_pump
                + ", P13_replenish_pump=" + P13_replenish_pump + ", H01_electric_heater=" + H01_electric_heater
                + ", H02_electric_heater=" + H02_electric_heater + ", Solenoid_openflag=" + Solenoid_openflag
                + ", Solenoid_shutflag=" + Solenoid_shutflag + ", valve_start=" + valve_start + ", Exhaust_start="
                + Exhaust_start + ", remote_start=" + remote_start + ", remote_stop=" + remote_stop
                + ", Operation_ooled_devices=" + Operation_ooled_devices + ", Auto_control_state=" + Auto_control_state
                + ", Manual_control_state=" + Manual_control_state + ", remote_control_state=" + remote_control_state
                + ", Water_system_function=" + Water_system_function + ", note=" + note + "]";
    }
}
WaterSystem_MonitorServer/src/com/watersystem/monitor/Watersystem_ModbusAddress.java
New file
@@ -0,0 +1,60 @@
package com.watersystem.monitor;
public class Watersystem_ModbusAddress {
    //获取水冷系统的地址
    public static  int Cooling_flow=1250;//冷却水流量
    public static  int Supply_tmp=1251;//供水温度
    public static  int Supply_pre=1252;//供水压力
    public static  int back_tem=1253;//回水温度
    public static  int back_pre=1254;//回水压力
    public static  int Cooling_ser=1255;//冷却水电导率
    public static  int Buffer_tank_level=1256;//缓冲罐液位
    public static  int Buffer_tank_pre=1257;//缓冲罐压力
    public static  int Humidity_chamber=1258;//阀厅湿度
    public static  int Tem_chamber=1259;//阀厅温度
    public static  int External_tmp=1260;//外水温度
    public static  int External_pre=1261;//外水压力
    public static  int Branch_flow_1=1262;//1#支路流量
    public static  int Branch_flow_2=1263;//2#支路流量
    public static  int Branch_flow_3=1264;//3#支路流量
    public static  int Branch_flow_4=1265;//4#支路流量
    public static  int Branch_flow_5=1266;//5#支路流量
    public static  int Branch_flow_6=1267;//6#支路流量
    public static  int Branch_flow_7=1268;//7#支路流量
    public static  int Branch_flow_8=1269;//8#支路流量
    public static  int Branch_flow_9=1270;//9#支路流量
    public static  int Branch_tmp_1=1271;//1#支路温度
    public static  int Branch_tmp_2=1272;//2#支路温度
    public static  int Branch_tmp_3=1273;//3#支路温度
    public static  int Branch_tmp_4=1274;//4#支路温度
    public static  int Branch_tmp_5=1275;//5#支路温度
    public static  int Branch_tmp_6=1276;//6#支路温度
    public static  int Branch_tmp_7=1277;//7#支路温度
    public static  int Branch_tmp_8=1278;//8#支路温度
    public static  int Branch_tmp_9=1279;//9#支路温度
    public static  int Branch_pre_1=1280;//1#支路压力
    public static  int Branch_pre_2=1281;//2#支路压力
    public static  int Branch_pre_3=1282;//3#支路压力
    public static  int Branch_pre_4=1283;//4#支路压力
    public static  int Branch_pre_5=1284;//5#支路压力
    public static  int Branch_pre_6=1285;//6#支路压力
    public static  int Branch_pre_7=1286;//7#支路压力
    public static  int Branch_pre_8=1287;//8#支路压力
    public static  int Branch_pre_9=1288;//9#支路压力
    public static  int Watersystem_All_Operation=1291;//水冷系统各部件运行情况
    public static  int Watersystem_All_State=1292;//'水冷系统自动控制状态',
    public static  int Watersystem_Operation_Fault=1293;//冷却系统各部件故障信息
    public static  int Watersystem_BranchFlowTmp_Fault=1294;//冷却系统支路流量/温度故障信息
    public static  int Watersystem_Pre_Fault=1295;//冷却水压力故障
    public static  int Watersystem_Operation_highorlow=1296;//冷却系统各部件低/高
    public static  int Watersystem_Tmp_highorlow=1297;//冷却系统温度高/超高
    public static  int Watersystem_TmpFlow_highorlow=1298;//冷却系统支路温度/流量低/超低
    public static  int Watersystem_Flow_ighorlow=1299;//冷却水部分支路流量低/超低
}
WaterSystem_MonitorServer/src/com/watersystem/monitor/Watersystem_ServerSocket_Thread.java
New file
@@ -0,0 +1,40 @@
package com.watersystem.monitor;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.base.Com;
import com.sql.MysqlConnPool;
public class Watersystem_ServerSocket_Thread implements Runnable{
    public List<Water_inf> winfs;
    public MysqlConnPool conn_pool;
    public Map<Integer, Watersystem_SocketClient_Thread> winfthreads;
    public Watersystem_ServerSocket_Thread(MysqlConnPool conn_pool,List<Water_inf> winfs) {
        this.winfs = winfs;
        this.conn_pool = conn_pool;
        this.winfthreads = new HashMap<Integer,Watersystem_SocketClient_Thread>();
    }
    @Override
    public void run() {
        // TODO Auto-generated method stub
        System.out.println(" Watersystem_ServerSocket_Thread Start at " +Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
        for(int i = 0;i<winfs.size();i++) {
            //插入或更新水冷系统实时信息表
            Water_Task_SQL.replace_water_rt(conn_pool, new Water_rt(winfs.get(i).getWater_id()));
            //插入或更新水冷系统分支实时信息表
            Water_Task_SQL.replace_water_brach(conn_pool, new Water_brach(winfs.get(i).getWater_id()));
            //插入或更新水冷系统实时状态表
            Water_Task_SQL.replace_water_state(conn_pool, new Water_state(winfs.get(i).getWater_id()));
            Watersystem_SocketClient_Thread thread = new Watersystem_SocketClient_Thread(winfs.get(i),conn_pool);
            winfthreads.put(winfs.get(i).water_id, thread);
            new Thread(thread).start();
        }
    }
}
WaterSystem_MonitorServer/src/com/watersystem/monitor/Watersystem_SocketClient_Thread.java
New file
@@ -0,0 +1,177 @@
package com.watersystem.monitor;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.modbus.data.MyModbusMaster;
import com.modbus.data.MyModbusUtils;
import com.serotonin.modbus4j.code.DataType;
import com.sql.MysqlConnPool;
public class Watersystem_SocketClient_Thread implements Runnable{
    public MysqlConnPool conn_pool;
    public Water_inf winf;
    public Water_rt wrt;
    public Water_brach wbrach;
    public Water_state wstate;
    public MyModbusMaster master;
    //public static final int MAX_READALARM_COUNT = 20;        //一次读取告警节点的最大数量
    //public int read_alarm_index = 0;                        //读取告警索引
    public Watersystem_SocketClient_Thread(Water_inf winf,MysqlConnPool conn_pool) {
        this.conn_pool = conn_pool;
        this.winf = winf;
        wrt = new Water_rt(winf.getWater_id());
        wstate = new Water_state(winf.getWater_id());
        wbrach = new Water_brach(winf.getWater_id());
        master = new MyModbusMaster(winf.getWater_ip(), MyModbusMaster.SLAVEID_DEFAULT);
    }
    @Override
    public void run() {
        int runCount = 0;
        while(true) {
            try {
                if(runCount %2 == 0) {
                    //*************************** 更新水冷系统实时信息******************************//*
                    readWater_rt(master,wrt);
                    Water_Task_SQL.replace_water_rt(conn_pool, wrt);
                    //**************************** 更新水冷系统分支实时信息 *****************************//*
                    readWater_brach(master,wbrach);
                    Water_Task_SQL.replace_water_brach(conn_pool, wbrach);
                    //**************************** 更新水冷系统状态信息 *****************************//*
                    readWater_state(master,wstate);
                    Water_Task_SQL.replace_water_state(conn_pool, wstate);
                }
                if(runCount %4 == 0) {
                    //*************************** 读取水冷信息故障 ******************************//*
                    //Date start = new Date();
                    //readElectricalAlarmData(master,eAlarm);
                    //Electrical_Task_SQL.inswrtOrUpdateElectrical_alarmTable(conn_pool, listAlarm);
                    //Date end = new Date();
                    //System.out.println((end.getTime()-start.getTime())/1000);
                }
                if(runCount%10 == 0) {
                    //更新当前设备ip
                    master.setTarget_ip(winf.water_ip);
                }
                if(runCount > 999900) {
                    runCount = 0;
                }
                runCount ++;
                Thread.sleep(200);
            } catch (Exception e) {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e1) {
                    //e1.printStackTrace();
                }
                e.printStackTrace();
            }
        }
     }
    /**
     *     更新水冷系统实时信息
     * @param master
     * @param load_state
     */
    private void readWater_rt(MyModbusMaster master, Water_rt wrt) {
        wrt.cooling_flow = (float) master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Cooling_flow, DataType.TWO_BYTE_INT_SIGNED, master), wrt.cooling_flow);    //'冷却水流量',
        wrt.supply_tmp = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Supply_tmp, DataType.TWO_BYTE_INT_SIGNED, master), wrt.supply_tmp);    //'供水温度',
        wrt.Supply_pre = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Supply_pre, DataType.TWO_BYTE_INT_SIGNED,master), wrt.Supply_pre);        //'供水压力',
        wrt.back_tem = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.back_tem, DataType.TWO_BYTE_INT_SIGNED,master), wrt.back_tem);        //'回水温度',
        wrt.back_pre = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.back_pre, DataType.TWO_BYTE_INT_SIGNED,master), wrt.back_pre);                //'回水压力',
        wrt.Cooling_ser = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Cooling_ser,DataType.TWO_BYTE_INT_SIGNED,master), wrt.Cooling_ser);        //'冷却水电导率',
        wrt.Buffer_tank_level = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Buffer_tank_level,DataType.TWO_BYTE_INT_SIGNED,master), wrt.Buffer_tank_level);//'缓冲罐液位'
        wrt.Buffer_tank_pre = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Buffer_tank_pre, DataType.TWO_BYTE_INT_SIGNED,master), wrt.Buffer_tank_pre);    //'缓冲罐压力',
        wrt.Humidity_chamber = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Humidity_chamber, DataType.TWO_BYTE_INT_SIGNED,master), wrt.Humidity_chamber);//'阀厅湿度',
        wrt.Tem_chamber = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Tem_chamber,DataType.TWO_BYTE_INT_SIGNED, master), wrt.Tem_chamber);                //'阀厅温度',
        wrt.External_tmp = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.External_tmp,DataType.TWO_BYTE_INT_SIGNED, master), wrt.External_tmp);                //'外水温度',
        wrt.External_pre = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.External_pre, DataType.TWO_BYTE_INT_SIGNED, master), wrt.External_pre);//'外水压力',
    }
     /*     更新电源实时信息
     * @param master
     * @param load_state
     */
    private void readWater_brach(MyModbusMaster master, Water_brach wbrach) {
        wbrach.Branch_flow_1 = (float) master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress. Branch_flow_1, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_flow_1);    //'1#支路流量',
        wbrach.Branch_flow_2 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_flow_2, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_flow_2);    //'2#支路流量',
        wbrach.Branch_flow_3 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress. Branch_flow_3,  DataType.TWO_BYTE_INT_SIGNED,master), wbrach.Branch_flow_3);    //'3#支路流量',
        wbrach.Branch_flow_4 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress. Branch_flow_4, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_flow_4);    //'4#支路流量',
        wbrach.Branch_flow_5 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_flow_5, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_flow_5);        //'5#支路流量',
        wbrach.Branch_flow_6= (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_flow_6, DataType.TWO_BYTE_INT_SIGNED,master), wbrach.Branch_flow_6);    //'6#支路流量',
        wbrach.Branch_flow_7 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_flow_7, DataType.TWO_BYTE_INT_SIGNED,master), wbrach.Branch_flow_7);    //'7#支路流量',
        wbrach.Branch_flow_8 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_flow_8, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_flow_8);    //'8#支路流量',
        wbrach.Branch_flow_9 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_flow_9,  DataType.TWO_BYTE_INT_SIGNED,master), wbrach.Branch_flow_9);    //'9#支路流量',
        wbrach.Branch_tmp_1 = (float) master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress. Branch_tmp_1, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_tmp_1);    //'1#支路温度',
        wbrach.Branch_tmp_2 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_tmp_2, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_tmp_2);    //'2#支路温度',
        wbrach.Branch_tmp_3 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress. Branch_tmp_3,  DataType.TWO_BYTE_INT_SIGNED,master), wbrach.Branch_tmp_3);    //'3#支路温度',
        wbrach.Branch_tmp_4 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress. Branch_tmp_4, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_tmp_4);    //'4#支路温度',
        wbrach.Branch_tmp_5 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_tmp_5, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_tmp_5);   //'5#支路温度',
        wbrach.Branch_tmp_6= (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_tmp_6, DataType.TWO_BYTE_INT_SIGNED,master), wbrach.Branch_tmp_6);    //'6#支路温度',
        wbrach.Branch_tmp_7 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_tmp_7, DataType.TWO_BYTE_INT_SIGNED,master), wbrach.Branch_tmp_7);    //'7#支路温度',
        wbrach.Branch_tmp_8 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_tmp_8, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_tmp_8);    //'8#支路温度',
        wbrach.Branch_tmp_9 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_tmp_9,  DataType.TWO_BYTE_INT_SIGNED,master), wbrach.Branch_tmp_9);    //'9#支路温度',
        wbrach.Branch_pre_1 = (float) master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress. Branch_pre_1, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_pre_1);    //'1#支路压力',
        wbrach.Branch_pre_2 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_pre_2, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_pre_2);    //'2#支路压力',
        wbrach.Branch_pre_3 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress. Branch_pre_3,  DataType.TWO_BYTE_INT_SIGNED,master), wbrach.Branch_pre_3);    //'3#支路压力',
        wbrach.Branch_pre_4 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress. Branch_pre_4, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_pre_4);    //'4#支路压力',
        wbrach.Branch_pre_5 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_pre_5, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_pre_5);//'5#支路压力',
        wbrach.Branch_pre_6= (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_pre_6, DataType.TWO_BYTE_INT_SIGNED,master), wbrach.Branch_pre_6);    //'6#支路压力',
        wbrach.Branch_pre_7 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_pre_7, DataType.TWO_BYTE_INT_SIGNED,master), wbrach.Branch_pre_7);    //'7#支路压力',
        wbrach.Branch_pre_8 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_pre_8, DataType.TWO_BYTE_INT_SIGNED, master), wbrach.Branch_pre_8);    //'8#支路压力',
        wbrach.Branch_pre_9 = (float)master.checkNullData(MyModbusUtils.readHoldingRegister(Watersystem_ModbusAddress.Branch_pre_9,  DataType.TWO_BYTE_INT_SIGNED,master), wbrach.Branch_pre_9);    //'9#支路压力',
    }
    /**
     *     更新水冷系统实时状态信息
     * @param master
     * @param load_state
     */
    private void readWater_state(MyModbusMaster master, Water_state wstate) {
        int Watersystem_All_Operation= (int) master.checkNullData(MyModbusUtils.readCoilStatus(Watersystem_ModbusAddress.Watersystem_All_Operation, master), 0);//水冷系统各部件运行情况
        wstate.P01_main_pump=(Watersystem_All_Operation>>8&1);
        wstate.P11_replenish_pump=(Watersystem_All_Operation>>9&1);
        wstate.P12_pretest_pump=(Watersystem_All_Operation>>10&1);
        wstate.P13_replenish_pump=(Watersystem_All_Operation>>11&1);
        wstate.H01_electric_heater=(Watersystem_All_Operation>>12&1);
        wstate.H02_electric_heater=(Watersystem_All_Operation>>13&1);
        wstate.Solenoid_openflag=(Watersystem_All_Operation>>14&1);
        wstate.Solenoid_shutflag=(Watersystem_All_Operation>>15&1);
        wstate.valve_start=(Watersystem_All_Operation>>0&1);
        wstate.Exhaust_start=(Watersystem_All_Operation>>8&1);
        wstate.remote_start=(Watersystem_All_Operation>>8&5);
        wstate.remote_stop=(Watersystem_All_Operation>>8&6);
        wstate.Operation_ooled_devices=(Watersystem_All_Operation>>8&7);
        int Watersystem_All_State= (int)master.checkNullData(MyModbusUtils.readCoilStatus(Watersystem_ModbusAddress.Watersystem_All_State, master), 0);//故障复位信号
        wstate.Auto_control_state=(Watersystem_All_State>>8&1);
        wstate.Manual_control_state=(Watersystem_All_State>>9&1);
        wstate.remote_control_state=(Watersystem_All_State>>10&1);
        wstate.Water_system_function=(Watersystem_All_State>>11&1);
    }
    public static void main(String[] args) {
        int b=13;
        String a=Integer.toBinaryString(b>>0&1);
        System.out.println(a);
    }
}
WaterSystem_MonitorServer/src/main/main_WaterSystem_MonitorServer.java
@@ -1,98 +1,112 @@
package main;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Date;
import com.base.Com;
import com.config.AppConfig;
import com.config.AppParam;
import com.sql.MysqlConnPool;
public class main_WaterSystem_MonitorServer {
    /**************************************************************************/
    /**************************************************************************/
    /**************************************************************************/
    /**************************************************************************/
    /**************************************************************************/
    public final static boolean app_debug = false;
    public final static double m_VersionNum = 1.102;
    public final static String m_Version = "Welcome To Use main_MonitorServer_Motor V"
                                            + m_VersionNum ;
    /**************************************************************************/
    /**************************************************************************/
    public static final int MysqlServer_Port = 3360;
    private static AppConfig m_AppConfig;
    private static MysqlConnPool GB_MysqlConnPool;
    public static AppParam GB_App_Param;
     /*********************************************************************************************/
    /*********************************************************************************************/
    public static void main(String[] args) {
        String ver = m_Version;
        System.out.println("main_MonitorServer_Motor Server Started At DateTime: " + Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
        //创建config.xml文件
        m_AppConfig = new AppConfig();
        System.out.println("SQLserver IP:" + m_AppConfig.getMysqlServerIp() + ", port: "+MysqlServer_Port);
        //初始化连接池中的各种参数信息
        GB_MysqlConnPool = new MysqlConnPool(m_AppConfig.getMysqlServerIp(), MysqlServer_Port,
                                                100);
        //创建tb_app_param表,并且设置表中的数据
        GB_App_Param = new AppParam(GB_MysqlConnPool);
        checkingMySQLServerStart();                //检测数据库服务是否启动
        /*********************************************************************************/
        /*********************************************************************************/
        while(true) {
            try {
                Thread.sleep(5000);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        /*********************************************************************************/
    }
    public static void checkingMySQLServerStart(){
        int MysqlServer_Port = 3360;
        System.out.println("IP:"+m_AppConfig.getMysqlServerIp()+"port"+MysqlServer_Port);
        //初始化连接池中的各种参数信息        m_AppConfig.getMysqlServerIp()
        GB_MysqlConnPool = new MysqlConnPool(m_AppConfig.getMysqlServerIp(), MysqlServer_Port, 5);
        while(true){
            Connection conn = null;
            try {
                System.out.println(" 开始检测数据库连接 "+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
                conn =  GB_MysqlConnPool.getConn();
                if(conn != null){
                    System.out.println("检测数据库连接成功");
                    break;
                }
            } catch (Exception e) {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e1) {
                    e1.printStackTrace();
                }
                System.out.println(" MySQL_FBSDEV not Start ... ");
            } finally {
                if(conn != null) {
                    try {
                        conn.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
}
package main;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import com.base.Com;
import com.config.AppConfig;
import com.config.AppParam;
import com.sql.MysqlConnPool;
import com.sql.Sql_Mysql;
import com.watersystem.monitor.Water_Task_SQL;
import com.watersystem.monitor.Water_inf;
import com.watersystem.monitor.Watersystem_ServerSocket_Thread;
public class main_WaterSystem_MonitorServer {
    /**************************************************************************/
    /**************************************************************************/
    /**************************************************************************/
    /**************************************************************************/
    /**************************************************************************/
    public final static boolean app_debug = false;
    public final static double m_VersionNum = 1.102;
    public final static String m_Version = "Welcome To Use main_MonitorServer_Motor V"
                                            + m_VersionNum ;
    /**************************************************************************/
    /**************************************************************************/
    public static final int MysqlServer_Port = 3360;
    private static AppConfig m_AppConfig;
    private static MysqlConnPool GB_MysqlConnPool;
    public static AppParam GB_App_Param;
    public static List<Water_inf> winfs=new ArrayList();
     /*********************************************************************************************/
    /*********************************************************************************************/
    public static void main(String[] args) {
        String ver = m_Version;
        System.out.println("main_MonitorServer_Motor Server Started At DateTime: " + Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
        //创建config.xml文件
        m_AppConfig = new AppConfig();
        System.out.println("SQLserver IP:" + m_AppConfig.getMysqlServerIp() + ", port: "+MysqlServer_Port);
        //初始化连接池中的各种参数信息
        GB_MysqlConnPool = new MysqlConnPool(m_AppConfig.getMysqlServerIp(), MysqlServer_Port,
                                                100);
        //创建tb_app_param表,并且设置表中的数据
        GB_App_Param = new AppParam(GB_MysqlConnPool);
        checkingMySQLServerStart();                //检测数据库服务是否启动
        /*********************************************************************************/
        /*********************************************************************************/
        //初始化数据库
        Water_Task_SQL.init(GB_MysqlConnPool);
        //获取所有的水冷系统
        Water_Task_SQL.queryAllWater(GB_MysqlConnPool, winfs);
        //读取每套水冷系统的信息
        Watersystem_ServerSocket_Thread server = new Watersystem_ServerSocket_Thread(GB_MysqlConnPool,winfs);
        new Thread(server).start();
        while(true) {
            try {
                Thread.sleep(5000);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        /*********************************************************************************/
    }
    public static void checkingMySQLServerStart(){
        int MysqlServer_Port = 3360;
        System.out.println("IP:"+m_AppConfig.getMysqlServerIp()+"port"+MysqlServer_Port);
        //初始化连接池中的各种参数信息        m_AppConfig.getMysqlServerIp()
        GB_MysqlConnPool = new MysqlConnPool(m_AppConfig.getMysqlServerIp(), MysqlServer_Port, 5);
        while(true){
            Connection conn = null;
            try {
                System.out.println(" 开始检测数据库连接 "+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
                conn =  GB_MysqlConnPool.getConn();
                if(conn != null){
                    System.out.println("检测数据库连接成功");
                    break;
                }
            } catch (Exception e) {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e1) {
                    e1.printStackTrace();
                }
                System.out.println(" MySQL_FBSDEV not Start ... ");
            } finally {
                if(conn != null) {
                    try {
                        conn.close();
                    } catch (SQLException e) {
                        e.printStackTrace();
                    }
                }
            }
        }
    }
}