whyclj
2020-05-19 6fbf87a8e692b8eaed6ade2ce867f3a9fa12a8e2
远程修改ip,子网掩码,网关
7个文件已修改
314 ■■■■ 已修改文件
bin/.gitignore 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/dec/fbs9100/BTS61850_Task_Thread.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/dec/fbs9100/BTS_61850_SocketClient.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/dec/fbs9100/BattRealDataPro_Thread.java 267 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/dec/fbs9100/FBS9100_Task_Thread_SQL.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/dec/fbs9100/main_BTS_APP_IEC61850.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/com/version_inf/version_inf.txt 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
bin/.gitignore
@@ -1,3 +1,11 @@
/README.md
/c3p0.properties
/config.xml
/hs_err_pid3622.log
/lastconnection.properties
/lib/
/com/
/mchange-commons.properties
/mchange-log.properties
/org/
/.settings/
src/com/dec/fbs9100/BTS61850_Task_Thread.java
@@ -41,7 +41,7 @@
            //param.dev_ipaddr = "127.0.0.1";
            AL_StatAndParam.add(param);
            
            FBS9100_Task_Thread_SQL.createTbBtsStateChange_infTable(m_ConnPool);                    //创建历史事件以及告警记录表
            FBS9100_Task_Thread_SQL.createTbBtsStateChange_infTable(m_ConnPool);                    //创建历史事件记录表
            
            BTS_61850_SocketClient client = new BTS_61850_SocketClient(m_ConnPool, param, m_Al_Data);
            AL_BTS_IEC61850_Client.add(client);
src/com/dec/fbs9100/BTS_61850_SocketClient.java
@@ -1123,7 +1123,7 @@
                    StringipYM.append(ArripYM[i]);
                }
                String a = Stringip.toString();
                Stringip = new StringBuffer("1"+a);
                long ipYM =  Long.parseLong(StringipYM.toString());
                long ip =  Long.parseLong(Stringip.toString());                            
                long ipWG =  Long.parseLong(StringipWG.toString());
src/com/dec/fbs9100/BattRealDataPro_Thread.java
@@ -1,133 +1,134 @@
package com.dec.fbs9100;
import java.sql.SQLException;
import java.util.Date;
import com.base.AppConfig;
import com.base.Com;
import com.battdata_rt.BattData_RT;
import com.battdata_rt.BattData_RT_Array;
import com.battdata_rt.BattStatData;
/**
 * 电池组历史实时数据记录线程
 * @author DELL
 *
 */
public class BattRealDataPro_Thread extends Thread{
    public MysqlConnPool con_pool;
    public AppConfig cfg;
    public BattData_RT_Array data;
    public static int MinRecordTimeLong = 60;            //每次记录的最短时间间隔
    public BattRealDataPro_Thread(MysqlConnPool con_pool, AppConfig cfg, BattData_RT_Array data) {
        this.cfg = cfg;
        this.con_pool = con_pool;
        this.data = data;
    }
    @Override
    public void run() {
        System.out.println("BattRealDataPro_Thread Start at " + Com.getDateTimeFormat(new Date(),Com.DTF_YMDhms ));
        Date lastTime = new Date();
        //线程启动前休眠60秒                            //用于甄别还未通讯上的设备
        for(int i =0;i<60;i++) {
            try {
                sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        System.out.println("BattRealDataPro_Thread Start  Record......");
        while(true) {
            Date nowTime = new Date();
            long timelong =(nowTime.getTime()-lastTime.getTime())/1000;
            try {
                if(timelong < MinRecordTimeLong) {
                    continue;
                }
                boolean isRecorded = false;
                for(int i=0;i<data.getItemCount();i++) {
                    BattData_RT battData = data.getItem(i);
                    if(battData.getBattState() == BattStatData.BATTSTATE_NULL) {
                        continue;                //消除未连接过的电池组
                    }
                    isRecorded = true;
                    //new Thread() {
                    //    public void run() {
                            RecordBattReadData(con_pool, battData);                            //记录电池组的放电记录
                    //    }
                    //}.start();
                    sleep(50);
                }
                if(isRecorded) {
                    lastTime = nowTime;
                }
                sleep(300);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    /**
     * 记录电池组历史实时记录
     * @param pool
     * @param battData
     */
    public void RecordBattReadData(MysqlConnPool pool,BattData_RT battData) {
        //创建指定电池组的电池组历史实时数据记录表
        FBS9100_Task_Thread_SQL.CreateTb_BattRealDataTable(con_pool, battData.BattGroupId);
        String sql_str_delete = " DELETE FROM "+ Sql_Mysql.Tb_Batt_RealData+battData.BattGroupId +" WHERE recrod_time < DATE_SUB(NOW(),INTERVAL 1 YEAR) ";                //删除一年前的历史记录
        String sql_str = " INSERT INTO " + Sql_Mysql.Tb_Batt_RealData+battData.BattGroupId+"(BattGroupId,recrod_time,group_vol,online_vol,group_curr,group_tmp,batt_state,batt_test_type,batt_test_starttime,batt_test_tlong,batt_test_cap,mon_num,mon_vol,mon_tmp,mon_res,mon_ser,mon_conn_res,mon_JH_curr)  VALUES" ;
        Date dt_test_Start = new Date();
        Date dt_record = new Date();
        dt_test_Start.setTime(battData.getTestStartTime());
        dt_record.setTime(battData.getTestRecordTime());
        for(int i=0;i<battData.MonCount;i++) {
            if(i > 0){
                sql_str += ",";
            }
            sql_str+="("
                    + battData.BattGroupId+","
                    + "'" + Com.getDateTimeFormat(new Date(),Com.DTF_YMDhms ) + "',"
                    + battData.getGroupVol() +","
                    + battData.getOnlineVol() +","
                    + battData.getGroupCurr() +","
                    + battData.getGroupTmp() +","
                    + battData.getBattState() +","
                    + battData.getBattTestType() +","
                    + "'" + Com.getDateTimeFormat(dt_test_Start, Com.DTF_YMDhms) + "',"
                    + battData.getTestTimeLong() +","
                    + battData.getTestCap() +","
                    + (i+1) +","
                    + battData.al_MonVol.get(i).monVol +","
                    + battData.al_MonVol.get(i).monTmp +","
                    + battData.al_MonVol.get(i).monRes +","
                    + battData.al_MonVol.get(i).monSer +","
                    + battData.al_MonVol.get(i).connRes +","
                    + battData.al_MonVol.get(i).mon_JH_curr
                    +")";
        }
        Sql_Mysql sql = new Sql_Mysql(con_pool.getConn());
        try {
            sql.sqlMysqlExecute(sql_str);
            //System.out.println("开始记录电池组数据");
            sql.sqlMysqlExecute(sql_str_delete);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
}
package com.dec.fbs9100;
import java.sql.SQLException;
import java.util.Date;
import com.base.AppConfig;
import com.base.Com;
import com.battdata_rt.BattData_RT;
import com.battdata_rt.BattData_RT_Array;
import com.battdata_rt.BattStatData;
/**
 * 电池组历史实时数据记录线程
 * @author DELL
 *
 */
public class BattRealDataPro_Thread extends Thread{
    public MysqlConnPool con_pool;
    public AppConfig cfg;
    public BattData_RT_Array data;
    public static int MinRecordTimeLong = 60;            //每次记录的最短时间间隔
    public BattRealDataPro_Thread(MysqlConnPool con_pool, AppConfig cfg, BattData_RT_Array data) {
        this.cfg = cfg;
        this.con_pool = con_pool;
        this.data = data;
    }
    @Override
    public void run() {
        System.out.println("BattRealDataPro_Thread Start at " + Com.getDateTimeFormat(new Date(),Com.DTF_YMDhms ));
        Date lastTime = new Date();
        //线程启动前休眠60秒                            //用于甄别还未通讯上的设备
        for(int i =0;i<60;i++) {
            try {
                sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        System.out.println("BattRealDataPro_Thread Start  Record......");
        Date nowTime = null;
        while(true) {
            nowTime = new Date();
            long timelong =(nowTime.getTime()-lastTime.getTime())/1000;
            try {
                if(timelong < MinRecordTimeLong) {
                    continue;
                }
                boolean isRecorded = false;
                for(int i=0;i < data.getItemCount();i++) {
                    BattData_RT battData = data.getItem(i);
                    if(battData.getBattState() == BattStatData.BATTSTATE_NULL) {
                        continue;                //消除未连接过的电池组
                    }
                    isRecorded = true;
                    //new Thread() {
                    //    public void run() {
                            RecordBattReadData(con_pool, battData);                            //记录电池组的放电记录
                    //    }
                    //}.start();
                    sleep(50);
                }
                if(isRecorded) {
                    lastTime = nowTime;
                }
                sleep(500);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    /**
     * 记录电池组历史实时记录
     * @param pool
     * @param battData
     */
    public void RecordBattReadData(MysqlConnPool pool,BattData_RT battData) {
        //创建指定电池组的电池组历史实时数据记录表
        FBS9100_Task_Thread_SQL.CreateTb_BattRealDataTable(con_pool, battData.BattGroupId);
        String sql_str_delete = " DELETE FROM "+ Sql_Mysql.Tb_Batt_RealData+battData.BattGroupId +" WHERE recrod_time < DATE_SUB(NOW(),INTERVAL 1 YEAR) ";                //删除一年前的历史记录
        String sql_str = " INSERT INTO " + Sql_Mysql.Tb_Batt_RealData+battData.BattGroupId+"(BattGroupId,recrod_time,group_vol,online_vol,group_curr,group_tmp,batt_state,batt_test_type,batt_test_starttime,batt_test_tlong,batt_test_cap,mon_num,mon_vol,mon_tmp,mon_res,mon_ser,mon_conn_res,mon_JH_curr)  VALUES" ;
        Date dt_test_Start = new Date();
        Date dt_record = new Date();
        dt_test_Start.setTime(battData.getTestStartTime());
        dt_record.setTime(battData.getTestRecordTime());
        for(int i=0;i<battData.MonCount;i++) {
            if(i > 0){
                sql_str += ",";
            }
            sql_str+="("
                    + battData.BattGroupId+","
                    + "'" + Com.getDateTimeFormat(new Date(),Com.DTF_YMDhms ) + "',"
                    + battData.getGroupVol() +","
                    + battData.getOnlineVol() +","
                    + battData.getGroupCurr() +","
                    + battData.getGroupTmp() +","
                    + battData.getBattState() +","
                    + battData.getBattTestType() +","
                    + "'" + Com.getDateTimeFormat(dt_test_Start, Com.DTF_YMDhms) + "',"
                    + battData.getTestTimeLong() +","
                    + battData.getTestCap() +","
                    + (i+1) +","
                    + battData.al_MonVol.get(i).monVol +","
                    + battData.al_MonVol.get(i).monTmp +","
                    + battData.al_MonVol.get(i).monRes +","
                    + battData.al_MonVol.get(i).monSer +","
                    + battData.al_MonVol.get(i).connRes +","
                    + battData.al_MonVol.get(i).mon_JH_curr
                    +")";
        }
        Sql_Mysql sql = new Sql_Mysql(con_pool.getConn());
        try {
            sql.sqlMysqlExecute(sql_str);
            //System.out.println("开始记录电池组数据");
            sql.sqlMysqlExecute(sql_str_delete);                //删除当前电池组一年前的历史数据
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
}
src/com/dec/fbs9100/FBS9100_Task_Thread_SQL.java
@@ -282,14 +282,14 @@
    
    
    /*******************************website*************************************/
    public static void startinserttime(MysqlConnPool con_pool){
    public static void startinserttime(MysqlConnPool con_pool,double version){
        Sql_Mysql sql = new Sql_Mysql(con_pool.getConn());
         //Sql_Mysql sql = new Sql_Mysql(mysqlConnPool.getConn());
         Date day=new Date();    
         SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
         String str1 = " UPDATE `web_site`.`tb_process_survey` SET ProcessTime="+"'"
                    +df.format(day)+"'"+", Process_starttime="+"'"+df.format(day)+"'"
                            + ", ProcessVersion='V1.101' WHERE "
                            + ", ProcessVersion='V" + version + "' WHERE "
                            + "ProcessName='BMS_FBS61850_BATT' AND "
                            + "ServerName='BMS_FBS61850_BATT'";    
         try {
@@ -309,7 +309,7 @@
        Date day=new Date();    
        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
        String str2 = " UPDATE web_site.tb_process_survey SET ProcessTime=" + "'" +
                   df.format(day)+"'"
                               df.format(day)+"'"
                           + " WHERE ProcessName='BMS_FBS61850_BATT' AND "
                           + "ServerName='BMS_FBS61850_BATT'";
        try {
@@ -1192,9 +1192,9 @@
                            + " MonomerTmp_High =" + param.m_FBS_DiscParamFromDev.MonomerTmp_High + ", "
                            + " OnLineVol_Low =" + param.m_FBS_DiscParamFromDev.OnLineVol_Low  + ", "
                            + " OffLineYH_Cycle=" + param.m_FBS_DiscParamFromDev.OffLineYH_Cycle + ","
                            + " OffLineYHstarttime = '" + param.m_FBS_DiscParamFromDev.OffLineYH_Cycle + "',"
                            + " OffLineYHTimes=" + param.m_FBS_DiscParamFromDev.OffLineYH_Cycle + ","
                            + " OffLineYHOnceCycle=" + param.m_FBS_DiscParamFromDev.OffLineYH_Cycle
                            + " OffLineYHstarttime = '" + Com.getDateTimeFormat(param.m_FBS_DiscParamFromDev.OffLineYHstarttime, Com.DTF_YMDhms) + "',"
                            + " OffLineYHTimes=" + param.m_FBS_DiscParamFromDev.OffLineYHTimes + ","
                            + " OffLineYHOnceCycle=" + param.m_FBS_DiscParamFromDev.OffLineYHOnceCycle
                            + " where dev_id = " + param.dev_id;
            String sql_str_update = "UPDATE " + sql_str_base;
            Sql_Mysql sql = new Sql_Mysql(con_pool.getConn());
@@ -1460,10 +1460,11 @@
    public static void updateBTS61850OffLineyhPlanOnRam(MysqlConnPool m_ConnPool, FBS9100_StatAndParam param) {
        Sql_Mysql sql = new Sql_Mysql(m_ConnPool.getConn());
        BTS61850_OffLineYHPlan plan = param.bts61850_OffLineYHPlan;
        String sql_str_insert = " UPDATE TABLE  " + Sql_Mysql.FBS9100_offlineyhplan +
                    " SET OffLineYH_Cycle = " + plan.OffLineYH_Cycle + ",OffLineYHstarttime='" + plan.OffLineYHstarttime + "',OffLineYHTimes="+ plan.OffLineYHTimes +",OffLineYHOnceCycle= " + plan.OffLineYHOnceCycle +
        String sql_str_insert = " UPDATE " + Sql_Mysql.FBS9100_offlineyhplan +
                    " SET OffLineYH_Cycle = " + plan.OffLineYH_Cycle + ",OffLineYHstarttime='" + Com.getDateTimeFormat(plan.OffLineYHstarttime, Com.DTF_YMDhms) + "',OffLineYHTimes="+ plan.OffLineYHTimes +",OffLineYHOnceCycle= " + plan.OffLineYHOnceCycle +
                    " WHERE dev_id = " + param.dev_id;
        try {
            sql.sqlMysqlExecute(sql_str_insert);
        } catch (SQLException e) {
            e.printStackTrace();
src/com/dec/fbs9100/main_BTS_APP_IEC61850.java
@@ -27,7 +27,7 @@
    /**************************************************************************/
    /**************************************************************************/
    public final static boolean app_debug = false;
    public final static double m_VersionNum = 3.109;
    public final static double m_VersionNum = 3.110;
    public final static String m_Version = "Welcome To Use BattMonitor_BTS_IEC61850 V" 
                                            + m_VersionNum + " RC_20180907";
    /**************************************************************************/
@@ -94,7 +94,9 @@
        
        GB_DataArray = new BattData_RT_Array(m_AppConfig, GB_App_Param, GB_MysqlConnPool);
        GB_DataArray.initBattDataRT_Inf(m_VersionNum);
        FBS9100_Task_Thread_SQL.startinserttime(GB_MysqlConnPool);
        //更新线程监控中的启动时间以及软件版本号
        FBS9100_Task_Thread_SQL.startinserttime(GB_MysqlConnPool,m_VersionNum);
        //ArrayList<BattData_RT> rtdata = GB_DataArray.getRtData();
        //System.out.println(rtdata.toString());
        //rtdata.toString();
@@ -119,7 +121,7 @@
        {
            try {
                FBS9100_Task_Thread_SQL.runinsertime(GB_MysqlConnPool);
                Thread.sleep(1000);
                Thread.sleep(3000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
src/com/version_inf/version_inf.txt
@@ -3,4 +3,12 @@
    
    
1.200 edit lijun at
    该版本初次添加系统参数修改
    该版本初次添加系统参数修改
3.109 edit lijun
    该版本在在如下1个类中判断了当前设备的ID
    BTS61850_Task_Thread
3.110 edit lijun at 2020-05-19
    该版本在修改ip地址时因协转修改,只支持永久修改ip并且支持修改指定网口的ip,子网掩码和网关。
    全版本影响