蓄电池监控管理平台数据库初始化程序
DELL
2024-01-27 a112f4592a4644bf7c3643e7cf6f366c36155301
2.修复'db_param.tb_app_param'表中无初始化参数bug
3个文件已添加
5个文件已修改
452 ■■■■■ 已修改文件
BattMonitor_DB_Builder/bin/com/config/AppParam$MonitorParam.class 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_DB_Builder/bin/com/config/AppParam.class 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_DB_Builder/bin/com/database_util/DB_battinf.class 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_DB_Builder/bin/com/version_inf/version_inf.txt 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_DB_Builder/src/com/config/AppParam.java 431 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_DB_Builder/src/com/database_util/DB_battinf.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_DB_Builder/src/com/version_inf/version_inf.txt 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_DB_Builder/src/main/main_BTS_DB_Builder.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
BattMonitor_DB_Builder/bin/com/config/AppParam$MonitorParam.class
Binary files differ
BattMonitor_DB_Builder/bin/com/config/AppParam.class
Binary files differ
BattMonitor_DB_Builder/bin/com/database_util/DB_battinf.class
Binary files differ
BattMonitor_DB_Builder/bin/com/version_inf/version_inf.txt
@@ -3,6 +3,8 @@
    
V1.95 edit at date 2024-01-24
    1.StationId int ->Long
    2.修复'db_param.tb_app_param'表中无初始化参数bug
    
V1.94 edit at date 2024-01-23
    1.'db_pwrdev_data_rt.tb_pwrdev_acdcdata'新增字段,南京测控点位缺少
BattMonitor_DB_Builder/src/com/config/AppParam.java
New file
@@ -0,0 +1,431 @@
package com.config;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import com.sql.MysqlConnPool;
import com.sql.Sql_Mysql;
/**
 * 软件的各种参数信息
 * @author 军
 *
 */
public class AppParam {
    public final static String AppParamTableName = "tb_app_param";
    public final static String AppLog4jTableName = "tb_batt_ms_x64_fbsdev_log4j";
    public final static int AppParam_Discharge = 0;
    public final static int AppParam_Charge = 1;
    public final static int AppParam_PowerOff = 2;
    private MysqlConnPool m_Conn_Pool;
    private boolean MysqlDataTable_Exist = false;
    private MonitorParam m_MonitorParam = new MonitorParam();
    private Logger logger = null;
    public AppParam()
    {
        logger = LogManager.getLogger(this.getClass());
    }
    public AppParam(MysqlConnPool pool)
    {
        logger = LogManager.getLogger(this.getClass());
        m_Conn_Pool = pool;
        getAppParam();
    }
    /*
    public void checkAndCreateLog4jTable() {
        Sql_Mysql sql = null;
        try {
            sql = new Sql_Mysql(m_Conn_Pool);
            sql.sqlMysqlUseDB(Sql_Mysql.DB_AppSys);
            if(false == sql.sqlMysqlCheckIfTableExist(AppLog4jTableName)) {
                FBS9100_Task_Thread_SQL.createAppLog4jTable(m_Conn_Pool,
                                        Sql_Mysql.DB_AppSys + ".`" + AppLog4jTableName + "`");
                logger.warn(Sql_Mysql.DB_AppSys + ".`" + AppLog4jTableName + "`" + " dose not exist, create now..." );
            }
        } catch (Exception e) {
            logger.error(e.toString(), e);
        } finally {
            try {
                sql.close_con();
            } catch (Exception e) {
                logger.error(e.toString(), e);
            }
        }
    }
    public void checkAndDeleteLog4jOldData() {
        Sql_Mysql sql = null;
        try {
            sql = new Sql_Mysql(m_Conn_Pool);
            FBS9100_Task_Thread_SQL.deleteAppLog4jTableOldData(m_Conn_Pool,
                                    Sql_Mysql.DB_AppSys + ".`" + AppLog4jTableName + "`");
        } catch (Exception e) {
            logger.error(e.toString(), e);
        } finally {
            try {
                sql.close_con();
            } catch (Exception e) {
                logger.error(e.toString(), e);
            }
        }
    }
    */
    /**
     * 将param对象中的属性值复制 到的当前对象的m_MonitorParam属性中
     * @param param
     */
    public void copyAppParam(AppParam param)
    {
        m_MonitorParam.discharge_SaveDataTimeInterval = param.m_MonitorParam.discharge_SaveDataTimeInterval;
        m_MonitorParam.discharge_TestTimeLongMinimum = param.m_MonitorParam.discharge_TestTimeLongMinimum;
        m_MonitorParam.discharge_BattTestGroupCountMax = param.m_MonitorParam.discharge_BattTestGroupCountMax;
        m_MonitorParam.discharge_MonVolChangeLevel = param.m_MonitorParam.discharge_MonVolChangeLevel;
        m_MonitorParam.discharge_TestDataRecordCountMax = param.m_MonitorParam.discharge_TestDataRecordCountMax;
        m_MonitorParam.charge_SaveDataTimeInterval = param.m_MonitorParam.charge_SaveDataTimeInterval;
        m_MonitorParam.charge_TestTimeLongMinimum = param.m_MonitorParam.charge_TestTimeLongMinimum;
        m_MonitorParam.charge_BattTestGroupCountMax = param.m_MonitorParam.charge_BattTestGroupCountMax;
        m_MonitorParam.charge_MonVolChangeLevel = param.m_MonitorParam.charge_MonVolChangeLevel;
        m_MonitorParam.charge_TestDataRecordCountMax = param.m_MonitorParam.charge_TestDataRecordCountMax;
        m_MonitorParam.poweroff_SaveDataTimeInterval = param.m_MonitorParam.poweroff_SaveDataTimeInterval;
        m_MonitorParam.poweroff_TestTimeLongMinimum = param.m_MonitorParam.poweroff_TestTimeLongMinimum;
        m_MonitorParam.poweroff_BattTestGroupCountMax = param.m_MonitorParam.poweroff_BattTestGroupCountMax;
        m_MonitorParam.poweroff_MonVolChangeLevel = param.m_MonitorParam.poweroff_MonVolChangeLevel;
        m_MonitorParam.poweroff_TestDataRecordCountMax = param.m_MonitorParam.poweroff_TestDataRecordCountMax;
    }
    class MonitorParam {
        public int discharge_SaveDataTimeInterval = 10;
        public float discharge_MonVolChangeLevel = (float) 0.05;
        public int discharge_TestTimeLongMinimum = 60;
        public int discharge_TestDataRecordCountMax = 10000;
        public int discharge_BattTestGroupCountMax = 10;
        public int charge_SaveDataTimeInterval = 10;
        public float charge_MonVolChangeLevel = (float) 0.05;
        public int charge_TestTimeLongMinimum = 60;
        public int charge_TestDataRecordCountMax = 10000;
        public int charge_BattTestGroupCountMax = 10;
        public int poweroff_SaveDataTimeInterval = 10;
        public float poweroff_MonVolChangeLevel = (float) 0.05;
        public int poweroff_TestTimeLongMinimum = 1800;
        public int poweroff_TestDataRecordCountMax = 10000;
        public int poweroff_BattTestGroupCountMax = 10;
        public boolean BattJunHengFN = false;
    }
    /**
     * 根据type获取当前是那种类型的测试,获取存储数据的时间间隔
     * @param type
     * @return
     */
    public int getSaveDataTimeInterval(int type)
    {
        int val = 0;
        switch(type)
        {
        case AppParam_Discharge: val = m_MonitorParam.discharge_SaveDataTimeInterval;
            break;
        case AppParam_Charge: val = m_MonitorParam.charge_SaveDataTimeInterval;
            break;
        case AppParam_PowerOff: val = m_MonitorParam.poweroff_SaveDataTimeInterval;
            break;
        }
        return val;
    }
    /**
     * 根据type获取MonVolChangeLevel
     * @param type
     * @return
     */
    public float getMonVolChangeLevel(int type)
    {
        float val = 0;
        switch(type)
        {
        case AppParam_Discharge: val = m_MonitorParam.discharge_MonVolChangeLevel;
            break;
        case AppParam_Charge: val = m_MonitorParam.charge_MonVolChangeLevel;
            break;
        case AppParam_PowerOff: val = m_MonitorParam.poweroff_MonVolChangeLevel;
            break;
        }
        return val;
    }
    /**
     * 根据type获取TestTimeLongMinimum值
     * @param type
     * @return
     */
    public int getTestTimeLongMinimum(int type)
    {
        int val = 0;
        switch(type)
        {
        case AppParam_Discharge: val = m_MonitorParam.discharge_TestTimeLongMinimum;
            break;
        case AppParam_Charge: val = m_MonitorParam.charge_TestTimeLongMinimum;
            break;
        case AppParam_PowerOff: val = m_MonitorParam.poweroff_TestTimeLongMinimum;
            break;
        }
        return val;
    }
    /**
     * 根据type 获取数据中的TestDataRecordCountMax值
     * @param type
     * @return
     */
    public int getTestDataRecordCountMax(int type)
    {
        int val = 0;
        switch(type)
        {
        case AppParam_Discharge: val = m_MonitorParam.discharge_TestDataRecordCountMax;
            break;
        case AppParam_Charge: val = m_MonitorParam.charge_TestDataRecordCountMax;
            break;
        case AppParam_PowerOff: val = m_MonitorParam.poweroff_TestDataRecordCountMax;
            break;
        }
        return val;
    }
    /**
     * 根据type获取BattTestGroupCountMax值
     * @param type
     * @return
     */
    public int getBattTestGroupCountMax(int type)
    {
        int val = 0;
        switch(type)
        {
        case AppParam_Discharge: val = m_MonitorParam.discharge_BattTestGroupCountMax;
            break;
        case AppParam_Charge: val = m_MonitorParam.charge_BattTestGroupCountMax;
            break;
        case AppParam_PowerOff: val = m_MonitorParam.poweroff_BattTestGroupCountMax;
            break;
        }
        return val;
    }
    /**
     * 获取当前对象属性 m_MonitorParam.BattJunHengFN值
     * @return
     */
    public boolean getBattJunHengFN()
    {
        return m_MonitorParam.BattJunHengFN;
    }
    /**
     * 从数据库中获取参数的值,并且创建tb_app_param表
     */
    public void getAppParam()
    {
        Sql_Mysql sql = new Sql_Mysql(m_Conn_Pool.getConn());
        String sql_str;
        ResultSet res = null;
        sql_str = "INSERT INTO " + Sql_Mysql.App_Param_Table
                + " (param_name, "
                + "param_value, "
                + "param_caption)"
                + " VALUES ";
        try {
            res = sql.sqlMysqlQuery("SELECT * FROM " + Sql_Mysql.App_Param_Table + " WHERE param_name = 'discharge_SaveDataTimeInterval'");
            if(!res.next()) {
                sql.sqlMysqlExecute(sql_str + "('discharge_SaveDataTimeInterval', '" + this.m_MonitorParam.discharge_SaveDataTimeInterval + "','discharge_TimeInterval for every data insert into db_batt_testdata by seconds')");
            }
            res = sql.sqlMysqlQuery("SELECT * FROM " + Sql_Mysql.App_Param_Table + " WHERE param_name = 'discharge_MonVolChangeLevel'");
            if(!res.next()) {
                sql.sqlMysqlExecute(sql_str + "('discharge_MonVolChangeLevel', '" + this.m_MonitorParam.discharge_MonVolChangeLevel+ "', "+ "'discharge_MonVolChangeLevel for batt test data to save');");
            }
            res = sql.sqlMysqlQuery("SELECT * FROM " + Sql_Mysql.App_Param_Table + " WHERE param_name = 'discharge_TestTimeLongMinimum'");
            if(!res.next()) {
                sql.sqlMysqlExecute(sql_str + "('discharge_TestTimeLongMinimum', '" + this.m_MonitorParam.discharge_TestTimeLongMinimum + "', " + "'discharge_TestTimeLongMinimum for batttest data to store');");
            }
            res = sql.sqlMysqlQuery("SELECT * FROM " + Sql_Mysql.App_Param_Table + " WHERE param_name = 'discharge_TestDataRecordCountMax'");
            if(!res.next()) {
                sql.sqlMysqlExecute(sql_str + "('discharge_TestDataRecordCountMax', '" + this.m_MonitorParam.discharge_TestDataRecordCountMax + "', " + "'discharge_TestDataRecordCountMax for batttest data count to insert to mysql server');");
            }
            res = sql.sqlMysqlQuery("SELECT * FROM " + Sql_Mysql.App_Param_Table + " WHERE param_name = 'discharge_BattTestGroupCountMax'");
            if(!res.next()) {
                sql.sqlMysqlExecute(sql_str + "('discharge_BattTestGroupCountMax', '" + this.m_MonitorParam.discharge_BattTestGroupCountMax + "', "    + "'discharge_BattTestGroupCountMax for batttest thread count to work at the same time');");
            }
            //-------------------------------------------------------------------------------//
            res = sql.sqlMysqlQuery("SELECT * FROM " + Sql_Mysql.App_Param_Table + " WHERE param_name = 'charge_SaveDataTimeInterval'");
            if(!res.next()) {
                sql.sqlMysqlExecute(sql_str + "('charge_SaveDataTimeInterval', '" + this.m_MonitorParam.charge_SaveDataTimeInterval + "', "    + "'charge_TimeInterval for every data insert into db_batt_testdata by seconds');");
            }
            res = sql.sqlMysqlQuery("SELECT * FROM " + Sql_Mysql.App_Param_Table + " WHERE param_name = 'charge_MonVolChangeLevel'");
            if(!res.next()) {
                sql.sqlMysqlExecute(sql_str + "('charge_MonVolChangeLevel', '" + this.m_MonitorParam.charge_MonVolChangeLevel + "', " + "'charge_MonVolChangeLevel for batt test data to save');");
            }
            res = sql.sqlMysqlQuery("SELECT * FROM " + Sql_Mysql.App_Param_Table + " WHERE param_name = 'charge_TestTimeLongMinimum'");
            if(!res.next()) {
                sql.sqlMysqlExecute(sql_str + "('charge_TestTimeLongMinimum', '" + this.m_MonitorParam.charge_TestTimeLongMinimum + "', " + "'charge_TestTimeLongMinimum for batttest data to store');");
            }
            res = sql.sqlMysqlQuery("SELECT * FROM " + Sql_Mysql.App_Param_Table + " WHERE param_name = 'charge_TestDataRecordCountMax'");
            if(!res.next()) {
                sql.sqlMysqlExecute(sql_str + "('charge_TestDataRecordCountMax', '" + this.m_MonitorParam.charge_TestDataRecordCountMax + "', "    + "'charge_TestDataRecordCountMax for batttest data count to insert to mysql server');");
            }
            res = sql.sqlMysqlQuery("SELECT * FROM " + Sql_Mysql.App_Param_Table + " WHERE param_name = 'charge_BattTestGroupCountMax'");
            if(!res.next()) {
                sql.sqlMysqlExecute(sql_str + "('charge_BattTestGroupCountMax', '" + this.m_MonitorParam.charge_BattTestGroupCountMax + "', " + "'charge_BattTestGroupCountMax for batttest thread count to work at the same time')");
            }
            //-------------------------------------------------------------------------------//
            res = sql.sqlMysqlQuery("SELECT * FROM " + Sql_Mysql.App_Param_Table + " WHERE param_name = 'poweroff_SaveDataTimeInterval'");
            if(!res.next()) {
                sql.sqlMysqlExecute(sql_str + "('poweroff_SaveDataTimeInterval', '" + this.m_MonitorParam.poweroff_SaveDataTimeInterval + "', "    + "'poweroff_TimeInterval for every data insert into db_batt_testdata by seconds');");
            }
            res = sql.sqlMysqlQuery("SELECT * FROM " + Sql_Mysql.App_Param_Table + " WHERE param_name = 'poweroff_MonVolChangeLevel'");
            if(!res.next()) {
                sql.sqlMysqlExecute(sql_str + "('poweroff_MonVolChangeLevel', '" + this.m_MonitorParam.poweroff_MonVolChangeLevel + "', " + "'poweroff_MonVolChangeLevel for batt test data to save');");
            }
            res = sql.sqlMysqlQuery("SELECT * FROM " + Sql_Mysql.App_Param_Table + " WHERE param_name = 'poweroff_TestTimeLongMinimum'");
            if(!res.next()) {
                sql.sqlMysqlExecute(sql_str + "('poweroff_TestTimeLongMinimum', '" + this.m_MonitorParam.poweroff_TestTimeLongMinimum + "', " + "'poweroff_TestTimeLongMinimum for batttest data to store')");
            }
            res = sql.sqlMysqlQuery("SELECT * FROM " + Sql_Mysql.App_Param_Table + " WHERE param_name = 'poweroff_TestDataRecordCountMax'");
            if(!res.next()) {
                sql.sqlMysqlExecute(sql_str + "('poweroff_TestDataRecordCountMax', '" + this.m_MonitorParam.poweroff_TestDataRecordCountMax + "', "    + "'poweroff_TestDataRecordCountMax for batttest data count to insert to mysql server')");
            }
            res = sql.sqlMysqlQuery("SELECT * FROM " + Sql_Mysql.App_Param_Table + " WHERE param_name = 'poweroff_BattTestGroupCountMax'");
            if(!res.next()) {
                sql.sqlMysqlExecute(sql_str + "('poweroff_BattTestGroupCountMax', '" + this.m_MonitorParam.poweroff_BattTestGroupCountMax + "', " + "'poweroff_BattTestGroupCountMax for batttest thread count to work at the same time')");
            }
            //-------------------------------------------------------------------------------//
            res = sql.sqlMysqlQuery("SELECT * FROM " + Sql_Mysql.App_Param_Table + " WHERE param_name = 'BattJunHengFN'");
            if(!res.next()) {
                sql.sqlMysqlExecute(sql_str + "('BattJunHengFN', '" + this.m_MonitorParam.BattJunHengFN + "', "    + "'BattJunHengFN for batt monomer to be balance')");
            }
            sql_str = "SELECT * FROM " + Sql_Mysql.App_Param_Table;
            res = sql.sqlMysqlQuery(sql_str);
            String pm_name;
            while(res.next())
            {
                pm_name = res.getString("param_name");
                //---------------------------------------------------------------------------//
                if(pm_name.equals("discharge_SaveDataTimeInterval"))
                    m_MonitorParam.discharge_SaveDataTimeInterval = res.getInt("param_value");
                else if(pm_name.equals("discharge_MonVolChangeLevel"))
                    m_MonitorParam.discharge_MonVolChangeLevel = res.getFloat("param_value");
                else if(pm_name.equals("discharge_TestTimeLongMinimum"))
                    m_MonitorParam.discharge_TestTimeLongMinimum = res.getInt("param_value");
                else if(pm_name.equals("discharge_TestDataRecordCountMax"))
                    m_MonitorParam.discharge_TestDataRecordCountMax = res.getInt("param_value");
                else if(pm_name.equals("discharge_BattTestGroupCountMax"))
                    m_MonitorParam.discharge_BattTestGroupCountMax = res.getInt("param_value");
                //---------------------------------------------------------------------------//
                else if(pm_name.equals("charge_SaveDataTimeInterval"))
                    m_MonitorParam.charge_SaveDataTimeInterval = res.getInt("param_value");
                else if(pm_name.equals("charge_MonVolChangeLevel"))
                    m_MonitorParam.charge_MonVolChangeLevel = res.getFloat("param_value");
                else if(pm_name.equals("charge_TestTimeLongMinimum"))
                    m_MonitorParam.charge_TestTimeLongMinimum = res.getInt("param_value");
                else if(pm_name.equals("charge_TestDataRecordCountMax"))
                    m_MonitorParam.charge_TestDataRecordCountMax = res.getInt("param_value");
                else if(pm_name.equals("charge_BattTestGroupCountMax"))
                    m_MonitorParam.charge_BattTestGroupCountMax = res.getInt("param_value");
                //---------------------------------------------------------------------------//
                else if(pm_name.equals("poweroff_SaveDataTimeInterval"))
                    m_MonitorParam.poweroff_SaveDataTimeInterval = res.getInt("param_value");
                else if(pm_name.equals("poweroff_MonVolChangeLevel"))
                    m_MonitorParam.poweroff_MonVolChangeLevel = res.getFloat("param_value");
                else if(pm_name.equals("poweroff_TestTimeLongMinimum"))
                    m_MonitorParam.poweroff_TestTimeLongMinimum = res.getInt("param_value");
                else if(pm_name.equals("poweroff_TestDataRecordCountMax"))
                    m_MonitorParam.poweroff_TestDataRecordCountMax = res.getInt("param_value");
                else if(pm_name.equals("poweroff_BattTestGroupCountMax"))
                    m_MonitorParam.poweroff_BattTestGroupCountMax = res.getInt("param_value");
                //---------------------------------------------------------------------------//
                else if(pm_name.equals("BattJunHengFN"))
                    m_MonitorParam.BattJunHengFN = res.getBoolean("param_value");
            }
        } catch (SQLException e) {
            logger.error(e.toString(), e);
        } finally {
            sql.close_con();
        }
        //--------------------------------------------------------------------------------------------------------//
        if(m_MonitorParam.discharge_SaveDataTimeInterval < 5) m_MonitorParam.discharge_SaveDataTimeInterval = 5;
        if(m_MonitorParam.discharge_SaveDataTimeInterval > 600) m_MonitorParam.discharge_SaveDataTimeInterval = 600;
        if(m_MonitorParam.discharge_MonVolChangeLevel < 0.001) m_MonitorParam.discharge_MonVolChangeLevel = (float) 0.001;
        if(m_MonitorParam.discharge_MonVolChangeLevel > 1) m_MonitorParam.discharge_MonVolChangeLevel = 1;
        if(m_MonitorParam.discharge_TestTimeLongMinimum < 60) m_MonitorParam.discharge_TestTimeLongMinimum = 60;
        if(m_MonitorParam.discharge_TestTimeLongMinimum > 3600) m_MonitorParam.discharge_TestTimeLongMinimum = 3600;
        if(m_MonitorParam.discharge_TestDataRecordCountMax < 5000) m_MonitorParam.discharge_TestDataRecordCountMax = 5000;
        if(m_MonitorParam.discharge_TestDataRecordCountMax > 20000) m_MonitorParam.discharge_TestDataRecordCountMax = 20000;
        if(m_MonitorParam.discharge_BattTestGroupCountMax < 10) m_MonitorParam.discharge_BattTestGroupCountMax = 10;
        if(m_MonitorParam.discharge_BattTestGroupCountMax > 350) m_MonitorParam.discharge_BattTestGroupCountMax = 350;
        //--------------------------------------------------------------------------------------------------------//
        if(m_MonitorParam.charge_SaveDataTimeInterval < 5) m_MonitorParam.charge_SaveDataTimeInterval = 5;
        if(m_MonitorParam.charge_SaveDataTimeInterval > 600) m_MonitorParam.charge_SaveDataTimeInterval = 600;
        if(m_MonitorParam.charge_MonVolChangeLevel < 0.001) m_MonitorParam.charge_MonVolChangeLevel = (float) 0.001;
        if(m_MonitorParam.charge_MonVolChangeLevel > 1) m_MonitorParam.charge_MonVolChangeLevel = 1;
        if(m_MonitorParam.charge_TestTimeLongMinimum < 60) m_MonitorParam.charge_TestTimeLongMinimum = 60;
        if(m_MonitorParam.charge_TestTimeLongMinimum > 3600) m_MonitorParam.charge_TestTimeLongMinimum = 3600;
        if(m_MonitorParam.charge_TestDataRecordCountMax < 5000) m_MonitorParam.charge_TestDataRecordCountMax = 5000;
        if(m_MonitorParam.charge_TestDataRecordCountMax > 20000) m_MonitorParam.charge_TestDataRecordCountMax = 20000;
        if(m_MonitorParam.charge_BattTestGroupCountMax < 10) m_MonitorParam.charge_BattTestGroupCountMax = 10;
        if(m_MonitorParam.charge_BattTestGroupCountMax > 350) m_MonitorParam.charge_BattTestGroupCountMax = 350;
        //--------------------------------------------------------------------------------------------------------//
        if(m_MonitorParam.poweroff_SaveDataTimeInterval < 5) m_MonitorParam.poweroff_SaveDataTimeInterval = 5;
        if(m_MonitorParam.poweroff_SaveDataTimeInterval > 600) m_MonitorParam.poweroff_SaveDataTimeInterval = 600;
        if(m_MonitorParam.poweroff_MonVolChangeLevel < 0.001) m_MonitorParam.poweroff_MonVolChangeLevel = (float) 0.001;
        if(m_MonitorParam.poweroff_MonVolChangeLevel > 1) m_MonitorParam.poweroff_MonVolChangeLevel = 1;
        if(m_MonitorParam.poweroff_TestTimeLongMinimum < 60) m_MonitorParam.poweroff_TestTimeLongMinimum = 60;
        if(m_MonitorParam.poweroff_TestTimeLongMinimum > 3600) m_MonitorParam.poweroff_TestTimeLongMinimum = 3600;
        if(m_MonitorParam.poweroff_TestDataRecordCountMax < 5000) m_MonitorParam.poweroff_TestDataRecordCountMax = 5000;
        if(m_MonitorParam.poweroff_TestDataRecordCountMax > 20000) m_MonitorParam.poweroff_TestDataRecordCountMax = 20000;
        if(m_MonitorParam.poweroff_BattTestGroupCountMax < 10) m_MonitorParam.poweroff_BattTestGroupCountMax = 10;
        if(m_MonitorParam.poweroff_BattTestGroupCountMax > 350) m_MonitorParam.poweroff_BattTestGroupCountMax = 350;
        //--------------------------------------------------------------------------------------------------------//
    }
}
BattMonitor_DB_Builder/src/com/database_util/DB_battinf.java
@@ -532,6 +532,18 @@
                //sql.sqlMysqlExecute(sql_str01);
            }
            sql.sqlMysqlExecute(sql_str02);
            //添加sign_type - 验签格式0-常规  1-正常1拖2[61850设备有效]
            res = sql.sqlMysqlQuery("SELECT * FROM information_schema.columns"
                    + " WHERE table_schema='db_battinf'"
                    + " AND table_name='tb_battinf_rebuild'"
                    + " AND column_name='sign_type'");
            if(false == res.next()) {
                sql.sqlMysqlExecute("ALTER TABLE " + Sql_Mysql.BattinfRebuild_TABLE
                                + " ADD COLUMN `sign_type` int(11) NOT NULL DEFAULT '0' COMMENT '验签格式0-常规  1-正常1拖2[61850设备有效]';");
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
BattMonitor_DB_Builder/src/com/version_inf/version_inf.txt
@@ -3,6 +3,8 @@
    
V1.95 edit at date 2024-01-24
    1.StationId int ->Long
    2.修复'db_param.tb_app_param'表中无初始化参数bug
    
V1.94 edit at date 2024-01-23
    1.'db_pwrdev_data_rt.tb_pwrdev_acdcdata'新增字段,南京测控点位缺少
BattMonitor_DB_Builder/src/main/main_BTS_DB_Builder.java
@@ -5,6 +5,7 @@
import com.base.Com;
import com.battdata_rt.BattData_RT_RamDB_Thread_SQL;
import com.config.AppConfig;
import com.config.AppParam;
import com.database_util.DB_Alarm;
import com.database_util.DB_App_Sys;
import com.database_util.DB_Batt_History;
@@ -42,6 +43,7 @@
    public static int MysqlServer_Port = DEF_MysqlServerFBS_Port;
    
    private static AppConfig m_AppConfig;
    private static AppParam m_AppParam;
    
    private static MysqlConnPool GB_MysqlConnPool;
    
@@ -213,6 +215,9 @@
            e.printStackTrace();
        }
        
        //初始化db_param.
        m_AppParam = new AppParam(GB_MysqlConnPool);
        //修复某些基站第一次记录的充放电无法显示bug
        FBS9100_Task_Thread_SQL.repairBattFirstTestData(GB_MysqlConnPool);