综合管理平台数据库数据模拟程序
Administrator
2021-03-25 335a3b0a6a6f27d0f7097b27c6614c66f5946676
添加电机历史实时数据记录
2个文件已修改
105 ■■■■■ 已修改文件
Demo_Manage_Simul/src/com/thread/devs/Manage_Simul_Motor_Thread.java 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Demo_Manage_Simul/src/com/thread/devs/Manage_Simul_Motor_Thread_SQL.java 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Demo_Manage_Simul/src/com/thread/devs/Manage_Simul_Motor_Thread.java
@@ -1,5 +1,6 @@
package com.thread.devs;
import java.util.Calendar;
import java.util.Date;
import com.mode.Device_Inf;
@@ -20,6 +21,9 @@
    
    @Override
    public void run() {
        RecordRealData real = new RecordRealData(pool, device);
        new Thread(real).start();
        Manage_Simul_Motor_Thread_SQL.insertOrUpdateMotor_State_Table(pool, state);
        while(true) {
            try {
@@ -28,7 +32,7 @@
                Manage_Simul_Motor_Thread_SQL.updateMotor_State_Table(pool, state);
                
                Thread.sleep(1000);
            } catch (InterruptedException e) {
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
@@ -46,5 +50,47 @@
        state.motor_state = Manage_Util.CreateSwitchRanDom();//'电机状态',
    }
    
    public class RecordRealData implements Runnable{
        public MysqlConnPool pool;
        public Device_Inf device;
        public RecordRealData(MysqlConnPool pool,Device_Inf device) {
            this.pool = pool;
            this.device = device;
        }
        @Override
        public void run() {
            Date last = new Date(0,0,0);
            while(true) {
                Date now = new Date();
                try {
                    Manage_Simul_Motor_Thread_SQL.createTb_Motor_State_RealData_Table(pool, state.device_id, now);
                    Manage_Simul_Motor_Thread_SQL.createTb_Motor_State_RealData_Table(pool, state.device_id, tomorrow(now));
                    if((now.getTime()-last.getTime())>=1000){
                        Manage_Simul_Motor_Thread_SQL.insertMotor_State_RealData_Table(pool, state);
                        last = now;
                    }
                    Thread.sleep(200);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
    }
    
    /**
     *     返回明天日期
     * @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();
    }
}
Demo_Manage_Simul/src/com/thread/devs/Manage_Simul_Motor_Thread_SQL.java
@@ -2,6 +2,7 @@
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
import com.base.Com;
import com.mode.Motor_State;
@@ -50,7 +51,11 @@
        }
    }
    
    /**
     *     更新电机实时状态
     * @param pool
     * @param state
     */
    public static void updateMotor_State_Table(MysqlConnPool pool,Motor_State state) {
        String sql_str_upd = "UPDATE " + Sql_Mysql.Tb_Motor_State_Table +
                " SET device_id="+state.device_id+""
@@ -74,4 +79,54 @@
            sql.close_con();
        }
    }
    /**
     *
     * @param pool
     * @param state
     * @param time
     */
    public static void createTb_Motor_State_RealData_Table(MysqlConnPool pool,int device_id,Date time) {
        String sql_str = "CREATE TABLE IF NOT EXISTS "+Sql_Mysql.Tb_Motor_State_RealData_Table+device_id+"_"+Com.getDateTimeFormat(time, Com.DTF_Y_M_D)+" (" +
                "  `num` bigint(20) NOT NULL AUTO_INCREMENT," +
                "  `device_id` int(11) NOT NULL DEFAULT '100001' COMMENT '设备id'," +
                "  `record_time` datetime NOT NULL DEFAULT '2000-01-01 00:00:00' COMMENT '记录时间'," +
                "  `motor_curr` float NOT NULL DEFAULT '0' COMMENT '电机电流'," +
                "  `motor_power` float NOT NULL DEFAULT '0' COMMENT '电机功率'," +
                "  `motor_speed` float NOT NULL DEFAULT '0' COMMENT '电机转速'," +
                "  `motor_vol` float NOT NULL DEFAULT '0' COMMENT '电机电压'," +
                "  `motor_out_tmp` float NOT NULL DEFAULT '0' COMMENT '电机出口温度'," +
                "  `motor_into_tmp` float NOT NULL DEFAULT '0' COMMENT '电机进口温度'," +
                "  `motor_torque` float NOT NULL DEFAULT '0' COMMENT '电机转矩'," +
                "  `motor_state` int(11) NOT NULL DEFAULT '0' COMMENT '电机状态'," +
                "  PRIMARY KEY (`num`)" +
                ") ENGINE=InnoDB AUTO_INCREMENT=2 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
     * @param state
     */
    public static void insertMotor_State_RealData_Table(MysqlConnPool pool,Motor_State state) {
        String sql_str_ins = " INSERT INTO " + Sql_Mysql.Tb_Motor_State_RealData_Table+state.device_id+"_"+Com.getDateTimeFormat(state.record_time, Com.DTF_Y_M_D) +
                "(device_id,record_time,motor_curr,motor_power,motor_speed,motor_vol,motor_out_tmp,motor_into_tmp,motor_torque,motor_state) " +
                "VALUES("+state.device_id+",'"+Com.getDateTimeFormat(state.record_time, Com.DTF_YMDhms)+"',"+state.motor_curr+","+state.motor_power+","+state.motor_speed+","+state.motor_vol+","+state.motor_out_tmp+","+state.motor_into_tmp+","+state.motor_torque+","+state.motor_state+")";
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            sql.sqlMysqlExecute(sql_str_ins);
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
}