whyclj
2020-09-22 f443bf8b12b80c1f375d82a111f3acd3610eb157
添加记录历史实时记录
5个文件已修改
70 ■■■■■ 已修改文件
ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electric_2Kw_TestData_Thread.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electric_inf_2kw.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electrical_2KWTask_SQL.java 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electrical_2KW_SocketClient_Thread.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectricalSystem_MonitorServer_2KW/src/main/main_ElectricalSystem_MonitorServer_2KW.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electric_2Kw_TestData_Thread.java
@@ -1,6 +1,7 @@
package com.electrical.TwoKW;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
@@ -23,8 +24,12 @@
    @Override
    public void run() {
        System.out.println("Electric_2Kw_TestData_Thread Start at "+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms));
        Date now = null;
        Date last = new Date(0);
        while(true) {
            try {
                now = new Date();
                for(int i=0;i<einfs.size();i++) {
                    boolean isExist = false;
                    Electric_inf_2kw einf = einfs.get(i);
@@ -39,6 +44,11 @@
                        threads.add(thread);
                        new Thread(thread).start();
                    }
                    //构造今天和明天的历史实时数据表
                    Electrical_2KWTask_SQL.createTb_electric2mw_realdata(pool, einf.electric2KW_id, now);
                    Electrical_2KWTask_SQL.createTb_electric2mw_realdata(pool, einf.electric2KW_id, tomorrow(now));
                }
                Thread.sleep(3000);
            } catch (Exception e) {
@@ -72,7 +82,11 @@
                    now = new Date();
                    long timelong = (now.getTime()-last.getTime())/1000;
                    if(timelong >= TESTDATA_RECORD_INTERVAL) {
                        if(einf.conn_state == 1) {
                            //通讯正常
                            Electrical_2KWTask_SQL.insertTb_electric2mw_realdata(pool, einf, now);
                            last = now;
                        }
                    }                    
                    Thread.sleep(500);
                } catch (Exception e) {
@@ -81,4 +95,16 @@
            }
        }
    }
    /**
     *     返回明天日期
     * @param today
     * @return
     */
    public Date tomorrow(Date today) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTime(today);
        calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) + 1);
        return calendar.getTime();
    }
}
ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electric_inf_2kw.java
@@ -8,6 +8,8 @@
    public int electric2KW_type ; //'2' COMMENT '电源类型',
    public String note  ;//'',
    
    public int conn_state;        //当前设备连接状态 1:通讯正常    0:通讯故障
    public Electric_State_2kw state;
    public Electric_Rt_2kw rt;
    public Electric_Control_Single_2kw control;
ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electrical_2KWTask_SQL.java
@@ -463,9 +463,35 @@
        }
    }
    
    public static void insertTb_electric2mw_realdata() {
        String sql_str = " INSERT INTO db_electric2mwsystem.tb_electric2mw_realdata_6001_2020_09_21(electric2KW_id,record_time,brachdcvol,brachdccurr,alldcvol,alldccurr,controlangle,localgivevol,localgivecurr) " +
                         " VALUES();";
    /**
     * 插入历史实时数据
     * @param pool
     * @param einf
     * @param time
     */
    public static void insertTb_electric2mw_realdata(MysqlConnPool pool,Electric_inf_2kw einf,Date time) {
        Electric_State_2kw state = einf.state;
        String sql_str = " INSERT INTO "+Sql_Mysql.Tb_electric2MW_realdata+einf.electric2KW_id+"_"+Com.getDateTimeFormat(time, Com.DTF_Y_M_D)+"(electric2KW_id,record_time,brachdcvol,brachdccurr,alldcvol,alldccurr,controlangle,localgivevol,localgivecurr) " +
                         " VALUES("
                         + einf.electric2KW_id+",'"
                         + Com.getDateTimeFormat(time, Com.DTF_YMDhms)+ "',"
                         + state.brachdcvol +","
                         + state.brachdccurr +","
                         + state.alldcvol +","
                          + state.alldccurr +","
                           + state.controlangle +","
                            + state.localgivevol +","
                            + state.localgivecurr +""
                         + ");";
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            sql.sqlMysqlExecute(sql_str);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
    
    //更新2mw电源控制信息表
ElectricalSystem_MonitorServer_2KW/src/com/electrical/TwoKW/Electrical_2KW_SocketClient_Thread.java
@@ -214,6 +214,7 @@
                //System.out.println(master.getTotalerr()+"##############"+master.getConnectState());
                //更新当前设备的连接状态
                Electrical_2KWTask_SQL.insertOrUpdateDeviceConnectState(conn_pool,einf.electric2KW_id,master);
                einf.conn_state = master.getConnectState();                                                                //更新当前设备的连接状态
                if(runCount%10 == 0) {
                    //更新当前设备ip
                    master.setTarget_ip(einf.electric2KW_ip);
ElectricalSystem_MonitorServer_2KW/src/main/main_ElectricalSystem_MonitorServer_2KW.java
@@ -9,6 +9,7 @@
import com.config.AppConfig;
import com.config.AppParam;
import com.electrical.TwoKW.Electric_2Kw_ServerSocket_Thread;
import com.electrical.TwoKW.Electric_2Kw_TestData_Thread;
import com.electrical.TwoKW.Electric_inf_2kw;
import com.electrical.TwoKW.Electrical_2KWTask_SQL;
import com.sql.MysqlConnPool;
@@ -64,6 +65,12 @@
        //2MW通讯读取数据线程
        Electric_2Kw_ServerSocket_Thread server=new Electric_2Kw_ServerSocket_Thread(GB_MysqlConnPool,einfs); 
        new Thread(server).start();
        {
            Electric_2Kw_TestData_Thread record = new Electric_2Kw_TestData_Thread(GB_MysqlConnPool, einfs);
            new Thread(record).start();
        }
        while(true) {
            try {        
                Thread.sleep(5000);