From 95c0c2e94d390650d3954c30c6a7c805fe9c714c Mon Sep 17 00:00:00 2001
From: whyclj <1525436766@qq.com>
Date: 星期四, 15 十月 2020 18:23:18 +0800
Subject: [PATCH] 负载添加历史实时数据记录功能

---
 src/com/data/PowerArk_Task_SQL.java |  669 ++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 610 insertions(+), 59 deletions(-)

diff --git a/src/com/data/PowerArk_Task_SQL.java b/src/com/data/PowerArk_Task_SQL.java
index 8c3a57c..63518e7 100644
--- a/src/com/data/PowerArk_Task_SQL.java
+++ b/src/com/data/PowerArk_Task_SQL.java
@@ -1,59 +1,610 @@
-package com.data;
-
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.ArrayList;
-import java.util.List;
-
-import com.dev.base.data.Dynamicload_button;
-import com.dev.base.data.Dynamicload_control;
-import com.dev.base.data.Dynamicload_inf;
-import com.dev.base.data.Dynamicload_state;
-import com.sql.MysqlConnPool;
-import com.sql.Sql_Mysql;
-
-public class PowerArk_Task_SQL {
-	
-	/**
-	 * 	查询所有的设备信息
-	 * @param conn_pool
-	 * @return
-	 */
-	public static List<Dynamicload_inf> queryAllPowerArk(MysqlConnPool conn_pool){
-		List<Dynamicload_inf> dys = new ArrayList<Dynamicload_inf>();
- 		String sql_str = " SELECT * FROM db_dynamicsystem.tb_dynamicload_inf ";
-		ResultSet res = null;
-		Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn());
-		try {
-			res = sql.sqlMysqlQuery(sql_str);
-			Dynamicload_inf dyna = null;
-			while(res.next()) {
-				dyna = new Dynamicload_inf();
-				dyna.setDev_id(res.getInt("dev_id"));
-				dyna.setDev_ip(res.getString("dev_ip"));
-				dyna.setDev_name(res.getString("dev_name"));
-				dyna.setDev_type(res.getInt("dev_type"));
-				dyna.setFZ_button_num(res.getInt("fZ_button_num"));
-				dyna.setNote(res.getString("note"));
-				
-				dyna.button = new Dynamicload_button(dyna.dev_id);
-				dyna.control = new Dynamicload_control(dyna.dev_id);
-				dyna.state = new Dynamicload_state(dyna.dev_id);
-				dys.add(dyna);
-			}
-		} catch (Exception e) {
-			e.printStackTrace();
-		} finally {
-			if(res != null) {
-				try {
-					res.close();
-				} catch (SQLException e) {
-					e.printStackTrace();
-				}
-				sql.close_con();
-			}
-		}
-		return dys;
-	}
-	
-}
+package com.data;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import com.base.Com;
+import com.dev.base.data.Dynamicload_button;
+import com.dev.base.data.Dynamicload_control;
+import com.dev.base.data.Dynamicload_inf;
+import com.dev.base.data.Dynamicload_state;
+import com.modbus.data.MyModbusMaster;
+import com.sql.MysqlConnPool;
+import com.sql.Sql_Mysql;
+
+public class PowerArk_Task_SQL {
+	
+
+	/**
+	 * 初始化数据库表
+	 * @param pool
+	 */
+	public static void init(MysqlConnPool pool) {
+		
+		createDB_ElectricSystem(pool);
+		
+		createTb_Dynamicload_inf(pool);
+		
+		//initTb_Dynamicload_inf(pool);
+		
+		createTb_Dynamicload_Button_Rt(pool);
+		
+		createTb_Dynamicload_State_rt(pool);
+		
+		createTb_Dynamicload_Control(pool);
+		
+	}
+	/**
+	 * 创建负载数据库
+	 * @param pool
+	 */
+	public static void createDB_ElectricSystem(MysqlConnPool pool) {
+		Sql_Mysql sql = new Sql_Mysql(pool.getConn());
+		try {
+			sql.sqlMysqlExecute("CREATE DATABASE IF NOT EXISTS " + Sql_Mysql.DB_DynamicSystem);
+		} catch (SQLException e) {
+			e.printStackTrace();
+		} finally {
+			sql.close_con();
+		}
+	}
+	/**
+	 * 创建负载信息表
+	 * @param pool
+	 */
+	public static void createTb_Dynamicload_inf(MysqlConnPool pool) {
+		String sql_str = "CREATE TABLE IF NOT EXISTS "+Sql_Mysql.Tb_Dynamicload_inf+" (" + 
+				"  num bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键'," + 
+				"  dev_id int(11) NOT NULL DEFAULT '1' COMMENT '设备id'," + 
+				"  dev_name varchar(126) NOT NULL DEFAULT '' COMMENT '设备名称'," + 
+				"  dev_type int(11) NOT NULL DEFAULT '0' COMMENT '设备类型 1:负载.....'," + 
+				"  FZ_button_num int(11) NOT NULL DEFAULT '10' COMMENT '负载柜上按钮个数',"+
+				"  dev_ip varchar(126) NOT NULL DEFAULT '' COMMENT '设备ip'," + 
+				"  note varchar(255) NOT NULL DEFAULT ''," + 
+				"  PRIMARY KEY (num)," + 
+				"  UNIQUE KEY dev_id_key (dev_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 initTb_Dynamicload_inf(MysqlConnPool pool) {
+		String sql_str= " replace INTO " + Sql_Mysql.Tb_Dynamicload_inf + "(dev_id,dev_name,dev_type,FZ_button_num,dev_ip) VALUES(1001,1,1,10,'127.0.0.1'),(1002,2,1,11,'127.0.0.1'),(1003,3,1,10,'127.0.0.1'),(1004,4,1,10,'127.0.0.1')";
+		
+		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_Dynamicload_Button_Rt(MysqlConnPool pool) {
+		String sql_str = "CREATE TABLE IF NOT EXISTS "+Sql_Mysql.Tb_Dynamicload_Button_Rt+" (" + 
+				"  num bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键'," + 
+				"  dev_id int(11) NOT NULL DEFAULT '1' COMMENT '设备id'," + 
+				"  FZ_b1 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮1'," + 
+				"  FZ_b2 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮2'," + 
+				"  FZ_b3 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮3'," + 
+				"  FZ_b4 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮4'," + 
+				"  FZ_b5 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮5'," + 
+				"  FZ_b6 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮6'," + 
+				"  FZ_b7 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮7'," + 
+				"  FZ_b8 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮8'," + 
+				"  FZ_b9 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮9'," + 
+				"  FZ_b10 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮10'," + 
+				"  FZ_b11 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮11'," + 
+				"  FZ_b1_power float NOT NULL DEFAULT '37.5' COMMENT 'FZ按钮1额定功率'," + 
+				"  FZ_b2_power float NOT NULL DEFAULT '37.5' COMMENT 'FZ按钮2额定功率'," + 
+				"  FZ_b3_power float NOT NULL DEFAULT '75' COMMENT 'FZ按钮3额定功率'," + 
+				"  FZ_b4_power float NOT NULL DEFAULT '75' COMMENT 'FZ按钮4额定功率'," + 
+				"  FZ_b5_power float NOT NULL DEFAULT '75' COMMENT 'FZ按钮5额定功率'," + 
+				"  FZ_b6_power float NOT NULL DEFAULT '75' COMMENT 'FZ按钮6额定功率'," + 
+				"  FZ_b7_power float NOT NULL DEFAULT '75' COMMENT 'FZ按钮7额定功率'," + 
+				"  FZ_b8_power float NOT NULL DEFAULT '75' COMMENT 'FZ按钮8额定功率'," + 
+				"  FZ_b9_power float NOT NULL DEFAULT '112.5' COMMENT 'FZ按钮9额定功率'," + 
+				"  FZ_b10_power float NOT NULL DEFAULT '112.5' COMMENT 'FZ按钮10额定功率'," + 
+				"  FZ_b11_power float NOT NULL DEFAULT '200' COMMENT 'FZ按钮11额定功率'," + 
+				"  FZ_fw1 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ反馈按钮1'," + 
+				"  FZ_fw2 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ反馈按钮2'," + 
+				"  FZ_fw3 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ反馈按钮3'," + 
+				"  FZ_fw4 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ反馈按钮4'," + 
+				"  FZ_fw5 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ反馈按钮5'," + 
+				"  FZ_fw6 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ反馈按钮6'," + 
+				"  FZ_fw7 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ反馈按钮7'," + 
+				"  FZ_fw8 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ反馈按钮8'," + 
+				"  FZ_fw9 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ反馈按钮9'," + 
+				"  FZ_fw10 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ反馈按钮10'," + 
+				"  FZ_fw11 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ反馈按钮11'," + 
+				"  FZ_ex1 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ输出按钮1'," + 
+				"  FZ_ex2 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ输出按钮2'," + 
+				"  FZ_ex3 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ输出按钮3'," + 
+				"  FZ_ex4 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ输出按钮4'," + 
+				"  FZ_ex5 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ输出按钮5'," + 
+				"  FZ_ex6 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ输出按钮6'," + 
+				"  FZ_ex7 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ输出按钮7'," + 
+				"  FZ_ex8 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ输出按钮8'," + 
+				"  FZ_ex9 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ输出按钮9'," + 
+				"  FZ_ex10 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ输出按钮10'," + 
+				"  FZ_ex11 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ输出按钮11'," + 
+				"  note varchar(255) NOT NULL DEFAULT ''," + 
+				"  PRIMARY KEY (num)," + 
+				"  KEY dev_id_key (dev_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_Dynamicload_State_rt(MysqlConnPool pool) {
+		String sql_str = "CREATE TABLE IF NOT EXISTS "+Sql_Mysql.Tb_Dynamicload_State_rt+" (" + 
+				"  num int(11) NOT NULL AUTO_INCREMENT COMMENT '主键'," + 
+				"  dev_id int(11) NOT NULL DEFAULT '1001' COMMENT '设备id'," + 
+				"  record_time datetime NOT NULL DEFAULT '2000-01-01 00:00:00' COMMENT '记录时间'," + 
+				"  start_auto int(11) NOT NULL DEFAULT '0' COMMENT '启动自动加载'," + 
+				"  stop_auto int(11) NOT NULL DEFAULT '0' COMMENT '停止自动加载'," + 
+				"  sudden_crease int(11) NOT NULL DEFAULT '0' COMMENT '突加突卸'," + 
+				"  all_open int(11) NOT NULL DEFAULT '0' COMMENT '全部分闸'," + 
+				"  actual_set_power float NOT NULL DEFAULT '0' COMMENT '实际设定功率'," + 
+				"  output_power float NOT NULL DEFAULT '0' COMMENT '已输出功率'," + 
+				"  set_power float NOT NULL DEFAULT '0' COMMENT '设定功率'," + 
+				"  interval_time float NOT NULL DEFAULT '0' COMMENT '间隔时间s'," + 
+				"  actual_curr float NOT NULL DEFAULT '0' COMMENT '实际电流'," + 
+				"  actual_mov float NOT NULL DEFAULT '0' COMMENT '实际电压'," + 
+				"  switch_on int(11) NOT NULL DEFAULT '0' COMMENT '是否合闸'," + 
+				"  FZ_autostate1 int(11) NOT NULL DEFAULT '0' COMMENT 'FZ自动状态1'," + 
+				"  FZ_autostate2 int(11) NOT NULL DEFAULT '0' COMMENT 'FZ自动状态2'," + 
+				"  FZ_autostate3 int(11) NOT NULL DEFAULT '0' COMMENT 'FZ自动状态3'," + 
+				"  FZ_autostate4 int(11) NOT NULL DEFAULT '0' COMMENT 'FZ自动状态4'," + 
+				"  FZ_autostate5 int(11) NOT NULL DEFAULT '0' COMMENT 'FZ自动状态5'," + 
+				"  react_overtem int(11) NOT NULL DEFAULT '0' COMMENT '电抗超温'," + 
+				"  water_overtem int(11) NOT NULL DEFAULT '0' COMMENT '冷却水超温'," + 
+				"  water_level_low int(11) NOT NULL DEFAULT '0' COMMENT '冷却水液位低'," + 
+				"  water_pressure_high int(11) NOT NULL DEFAULT '0' COMMENT '冷却水压高'," + 
+				"  local_control int(11) NOT NULL DEFAULT '0' COMMENT '就地控制'," + 
+				"  back_control int(11) NOT NULL DEFAULT '0' COMMENT '后台控制'," + 
+				"  central_control int(11) NOT NULL DEFAULT '0' COMMENT '中控控制'," + 
+				"  switch_state int(11) NOT NULL DEFAULT '0' COMMENT '开关柜状态'," + 
+				"  inter_volume_M200 int(11) NOT NULL DEFAULT '0' COMMENT '中间量M200'," + 
+				"  fan_button int(11) NOT NULL DEFAULT '0' COMMENT '风机按钮'," + 
+				"  fan_output int(11) NOT NULL DEFAULT '0' COMMENT '风机输出'," + 
+				"  allow_close int(11) NOT NULL DEFAULT '0' COMMENT '是否允许合闸'," + 
+				"  note varchar(255) NOT NULL DEFAULT ''," + 
+				"  PRIMARY KEY (num)," + 
+				"  KEY dev_id_key (dev_id)" + 
+				") ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;";
+		Sql_Mysql sql = new Sql_Mysql(pool.getConn());
+		ResultSet res = null;
+		try {
+			sql.sqlMysqlExecute(sql_str);
+			//添加记录时间列,方便绘制实时曲线
+			res = sql.sqlMysqlQuery("SELECT * FROM information_schema.columns"
+					+ " WHERE table_schema='db_dynamicsystem'"
+					+ " AND table_name='tb_dynamicload_state_rt'"
+					+ " AND column_name='record_time'");
+			if(false == res.next()) {
+				sql.sqlMysqlExecute("ALTER TABLE " + Sql_Mysql.Tb_Dynamicload_State_rt 
+						+ " ADD COLUMN `record_time`  datetime NOT NULL DEFAULT '2000-01-01 00:00:00' after dev_id;");
+			}
+			
+		} catch (SQLException e) {
+			e.printStackTrace();
+		} finally {
+			sql.close_con();
+		}
+	}
+	/**
+	 * 创建控制表
+	 * @param pool
+	 */
+	public static void createTb_Dynamicload_Control(MysqlConnPool pool) {
+		String sql_str = "CREATE TABLE IF NOT EXISTS "+Sql_Mysql.Tb_Dynamicload_Control+" (" + 
+				"  num int(11) NOT NULL AUTO_INCREMENT COMMENT '主键'," + 
+				"  dev_id int(11) NOT NULL DEFAULT '1' COMMENT '设备id'," + 
+				"  FZ_b1 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮1'," + 
+				"  FZ_b2 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮2'," + 
+				"  FZ_b3 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮3'," + 
+				"  FZ_b4 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮4'," + 
+				"  FZ_b5 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮5'," + 
+				"  FZ_b6 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮6'," + 
+				"  FZ_b7 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮7'," + 
+				"  FZ_b8 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮8'," + 
+				"  FZ_b9 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮9'," + 
+				"  FZ_b10 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮10'," + 
+				"  FZ_b11 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ按钮11'," + 
+				"  start_auto int(11) NOT NULL DEFAULT '1' COMMENT '启动自动加载'," + 
+				"  stop_auto int(11) NOT NULL DEFAULT '1' COMMENT '停止自动加载'," + 
+				"  sudden_crease int(11) NOT NULL DEFAULT '1' COMMENT '突加突卸'," + 
+				"  all_open int(11) NOT NULL DEFAULT '1' COMMENT '全部分闸'," + 
+				"  FZ_autostate1 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ自动状态1'," + 
+				"  FZ_autostate2 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ自动状态2'," + 
+				"  FZ_autostate3 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ自动状态3'," + 
+				"  FZ_autostate4 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ自动状态4'," + 
+				"  FZ_autostate5 int(11) NOT NULL DEFAULT '1' COMMENT 'FZ自动状态5'," + 
+				"  local_control int(11) NOT NULL DEFAULT '1' COMMENT '就地控制'," + 
+				"  back_control int(11) NOT NULL DEFAULT '1' COMMENT '后台控制'," + 
+				"  central_control int(11) NOT NULL DEFAULT '1' COMMENT '中控控制'," + 
+				"  inter_volume_M200 int(11) NOT NULL DEFAULT '1' COMMENT '中间量M200'," + 
+				"  fan_button int(11) NOT NULL DEFAULT '1' COMMENT '风机按钮'," + 
+				"  set_power float NOT NULL DEFAULT '0' COMMENT '设定功率'," + 
+				"  note varchar(255) NOT NULL DEFAULT ''," + 
+				"  interval_time int(11) NOT NULL DEFAULT '0'," + 
+				"  PRIMARY KEY (num)," + 
+				"  KEY dev_id_key (dev_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 conn_pool
+	 * @param dev_id
+	 */
+	public static void insertOrUpdateDynamicload_ButtonTable(MysqlConnPool conn_pool,Dynamicload_button dbutton,int button_num) {
+		String sql_str_sel = " SELECT * FROM " +Sql_Mysql.Tb_Dynamicload_Button_Rt+ " WHERE dev_id = " + dbutton.getDev_id();
+		String sql_str_ins10 = " INSERT INTO " + Sql_Mysql.Tb_Dynamicload_Button_Rt + "(dev_id,FZ_b1_power,FZ_b2_power,FZ_b3_power,FZ_b4_power,FZ_b5_power,FZ_b6_power,FZ_b7_power,FZ_b8_power,FZ_b9_power,FZ_b10_power,FZ_b11_power) VALUES("+dbutton.dev_id+",37.5,37.5,75,75,75,75,75,75,112.5,112.5,0)";
+		String sql_str_ins11 = " INSERT INTO " + Sql_Mysql.Tb_Dynamicload_Button_Rt + "(dev_id,FZ_b1_power,FZ_b2_power,FZ_b3_power,FZ_b4_power,FZ_b5_power,FZ_b6_power,FZ_b7_power,FZ_b8_power,FZ_b9_power,FZ_b10_power,FZ_b11_power) VALUES("+dbutton.dev_id+",5,5,10,10,20,50,50,100,100,200,200)";
+		Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn());
+		ResultSet res = null;
+		try {
+			res = sql.sqlMysqlQuery(sql_str_sel);
+			if(res.next()) {
+				//更新当前状态
+				updateDynamicload_ButtonTable(conn_pool, new Dynamicload_button(dbutton.dev_id));
+			}else {
+				//插入默认状态
+				if(button_num==11) {
+					sql.sqlMysqlExecute(sql_str_ins11);
+				}else {
+					sql.sqlMysqlExecute(sql_str_ins10);
+				}
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		} finally {
+			if(res != null) {
+				try {
+					res.close();
+				} catch (SQLException e) {
+					e.printStackTrace();
+				}
+			}
+			sql.close_con();			
+		}
+	}
+	/**
+	 * 	插入或更新负载状态信息表
+	 * @param conn_pool
+	 * @param dev_id
+	 */
+	public static void insertOrUpdateDynamicload_StateTable(MysqlConnPool conn_pool,Dynamicload_state dstate) {
+		String sql_str_sel = " SELECT * FROM " +Sql_Mysql.Tb_Dynamicload_State_rt+ " WHERE dev_id = " + dstate.dev_id;
+		String sql_str_ins = " INSERT INTO " + Sql_Mysql.Tb_Dynamicload_State_rt + "(dev_id,record_time) VALUES("+dstate.dev_id+",'"+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms)+"')";
+		Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn());
+		ResultSet res = null;
+		try {
+			res = sql.sqlMysqlQuery(sql_str_sel);
+			if(res.next()) {
+				//更新当前状态
+				updateDynamicload_StateTable(conn_pool, new Dynamicload_state(dstate.dev_id,0));
+			}else {
+				//插入默认状态
+				sql.sqlMysqlExecute(sql_str_ins);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		} finally {
+			if(res != null) {
+				try {
+					res.close();
+				} catch (SQLException e) {
+					e.printStackTrace();
+				}
+			}
+			sql.close_con();			
+		}
+	}
+	
+	/**
+	 * 	查询所有的设备信息
+	 * @param conn_pool
+	 * @return
+	 */
+	public static List<Dynamicload_inf> queryAllPowerArk(MysqlConnPool conn_pool){
+		List<Dynamicload_inf> dys = new ArrayList<Dynamicload_inf>();
+ 		String sql_str = " SELECT * FROM db_dynamicsystem.tb_dynamicload_inf ";
+		ResultSet res = null;
+		Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn());
+		try {
+			res = sql.sqlMysqlQuery(sql_str);
+			Dynamicload_inf dyna = null;
+			while(res.next()) {
+				dyna = new Dynamicload_inf();
+				dyna.setDev_id(res.getInt("dev_id"));
+				dyna.setDev_ip(res.getString("dev_ip"));
+				dyna.setDev_name(res.getString("dev_name"));
+				dyna.setDev_type(res.getInt("dev_type"));
+				dyna.setFZ_button_num(res.getInt("fZ_button_num"));
+				dyna.setNote(res.getString("note"));
+				
+				dyna.button = new Dynamicload_button(dyna.dev_id);
+				dyna.control = new Dynamicload_control(dyna.dev_id,dyna.getFZ_button_num());
+				dyna.state = new Dynamicload_state(dyna.dev_id,dyna.getFZ_button_num());
+				dys.add(dyna);
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		} finally {
+			if(res != null) {
+				try {
+					res.close();
+				} catch (SQLException e) {
+					e.printStackTrace();
+				}
+				sql.close_con();
+			}
+		}
+		return dys;
+	}
+	
+	/**
+	 * 	更新设备按钮信息
+	 * @param conn_pool
+	 * @param control
+	 */
+	public static void updateDynamicload_ButtonTable(MysqlConnPool conn_pool,Dynamicload_button button) {
+		String sql_str = " UPDATE " + Sql_Mysql.Tb_Dynamicload_Button_Rt 
+				+" SET " 
+				+" FZ_b1=" + button.FZ_b1
+				+",FZ_b2=" + button.FZ_b2
+				+",FZ_b3=" + button.FZ_b3
+				+",FZ_b4=" + button.FZ_b4
+				+",FZ_b5=" + button.FZ_b5
+				+",FZ_b6=" + button.FZ_b6
+				+",FZ_b7=" + button.FZ_b7
+				+",FZ_b8=" + button.FZ_b8
+				+",FZ_b9=" + button.FZ_b9
+				+",FZ_b10=" + button.FZ_b10
+				+",FZ_b11=" + button.FZ_b11
+				+",FZ_fw1=" + button.FZ_fw1
+				+",FZ_fw2=" + button.FZ_fw2
+				+",FZ_fw3=" + button.FZ_fw3
+				+",FZ_fw4=" + button.FZ_fw4
+				+",FZ_fw5=" + button.FZ_fw5
+				+",FZ_fw6=" + button.FZ_fw6
+				+",FZ_fw7=" + button.FZ_fw7
+				+",FZ_fw8=" + button.FZ_fw8
+				+",FZ_fw9=" + button.FZ_fw9
+				+",FZ_fw10=" + button.FZ_fw10
+				+",FZ_fw11=" + button.FZ_fw11
+				+",FZ_ex1=" + button.FZ_ex1
+				+",FZ_ex2=" + button.FZ_ex2
+				+",FZ_ex3=" + button.FZ_ex3
+				+",FZ_ex4=" + button.FZ_ex4
+				+",FZ_ex5=" + button.FZ_ex5
+				+",FZ_ex6=" + button.FZ_ex6
+				+",FZ_ex7=" + button.FZ_ex7
+				+",FZ_ex8=" + button.FZ_ex8
+				+",FZ_ex9=" + button.FZ_ex9
+				+",FZ_ex10=" + button.FZ_ex10
+				+",FZ_ex11=" + button.FZ_ex11
+			    +" WHERE dev_id = " + button.dev_id;
+		Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn());
+		try {
+			sql.sqlMysqlExecute(sql_str);
+		} catch (SQLException e) {
+			e.printStackTrace();
+		} finally {
+			sql.close_con();
+		}
+	}
+	
+	
+	/**
+	 * 	更新设备状态信息
+	 * @param conn_pool
+	 * @param control
+	 */
+	public static void updateDynamicload_StateTable(MysqlConnPool conn_pool,Dynamicload_state state) {
+		String sql_str = " UPDATE  " + Sql_Mysql.Tb_Dynamicload_State_rt 
+				+ " SET "
+				+" record_time='" + Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms)+"'"
+				+",start_auto=" + state.getStart_auto()
+				+",stop_auto=" + state.getStop_auto()
+				+",sudden_crease=" + state.getSudden_crease()
+				+",all_open=" + state.getAll_open()
+				+",actual_set_power=" + state.getActual_set_power()
+				+",output_power=" + state.getOutput_power()
+				+",set_power=" + state.getSet_power()
+				+",interval_time=" + state.getInterval_time()
+				+",actual_curr=" + state.getActual_curr()
+				+",actual_mov=" + state.getActual_mov()
+				+",switch_on=" + state.getSwitch_on()
+				+",FZ_autostate1=" + state.getFZ_autostate1()
+				+",FZ_autostate2=" + state.getFZ_autostate2()
+				+",FZ_autostate3=" + state.getFZ_autostate3()
+				+",FZ_autostate4=" + state.getFZ_autostate4()
+				+",FZ_autostate5=" + state.getFZ_autostate5()
+				+",react_overtem=" + state.getReact_overtem()
+				+",water_overtem=" + state.getWater_overtem()
+				+",water_level_low=" + state.getWater_level_low()
+				+",water_pressure_high=" + state.getWater_pressure_high()
+				+",local_control=" + state.getLocal_control()
+				+",back_control=" + state.getBack_control()
+				+",central_control=" + state.getCentral_control()
+				+",switch_state=" + state.getSwitch_state()
+				+",inter_volume_M200=" + state.getInter_volume_M200()
+				+",fan_button=" + state.getFan_button()
+				+",fan_output=" + state.getFan_output()
+				+",allow_close=" + state.allow_close
+				+ " WHERE dev_id = " + state.dev_id;
+		Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn());
+		try {
+			//System.out.println(sql_str);
+			sql.sqlMysqlExecute(sql_str);
+		} catch (SQLException e) {
+			e.printStackTrace();
+		} finally {
+			sql.close_con();
+		}
+	}
+	
+	
+	/**
+	 * 	插入或更新当前设备的连接状态
+	 * @param pool
+	 * @param dev_id
+	 * @param master
+	 */
+	public static void insertOrUpdateDeviceConnectState(MysqlConnPool pool,int dev_id,MyModbusMaster master) {
+		String sql_str_sel = " SELECT * FROM "+Sql_Mysql.Tb_Device_ConnectState+" WHERE dev_id = " + dev_id;
+		String sql_str_ins = " INSERT INTO "+Sql_Mysql.Tb_Device_ConnectState+"(dev_id,connect_en,record_time) values("+dev_id+","+master.getConnectState()+",'"+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms)+"');";
+		String sql_str_upd = " UPDATE "+Sql_Mysql.Tb_Device_ConnectState+" SET connect_en = "+master.getConnectState()+",record_time='"+Com.getDateTimeFormat(new Date(), Com.DTF_YMDhms)+"' WHERE dev_id = " + dev_id;
+		Sql_Mysql sql = new Sql_Mysql(pool.getConn());
+		ResultSet res = null;
+		try {
+			res = sql.sqlMysqlQuery(sql_str_sel);
+			if(res.next()) {
+				sql.sqlMysqlExecute(sql_str_upd);
+			}else {
+				sql.sqlMysqlExecute(sql_str_ins);
+			}
+		} catch (SQLException e) {
+			e.printStackTrace();
+		} finally {
+			if(res != null) {
+				try {
+					res.close();
+				} catch (SQLException e) {
+					e.printStackTrace();
+				}
+				sql.close_con();
+			}
+		}
+	}
+	public static void queryDynamicload_Control(MysqlConnPool conn_pool, Dynamicload_control control) {
+		String sql_str = " SELECT * FROM " + Sql_Mysql.Tb_Dynamicload_Control + " WHERE dev_id = " + control.dev_id;
+		Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn());
+		ResultSet res = null;
+		try {
+			res = sql.sqlMysqlQuery(sql_str);
+			if(res.next()) {
+				control.setFZ_b1(res.getInt("fZ_b1"));						//FZ按钮1
+				control.setFZ_b2(res.getInt("fZ_b2"));       					//FZ按钮2	   
+				control.setFZ_b3(res.getInt("FZ_b3"));							//FZ按钮3
+				control.setFZ_b4(res.getInt("FZ_b4"));							//FZ按钮4
+				control.setFZ_b5(res.getInt("FZ_b5"));							//FZ按钮5
+				control.setFZ_b6(res.getInt("FZ_b6"));							//FZ按钮6
+				control.setFZ_b7(res.getInt("FZ_b7"));							//FZ按钮7
+				control.setFZ_b8(res.getInt("FZ_b8"));							//FZ按钮8
+				control.setFZ_b9(res.getInt("FZ_b9"));							//FZ按钮9
+				control.setFZ_b10(res.getInt("FZ_b10"));						//FZ按钮10
+				control.setFZ_b11(res.getInt("FZ_b11"));						//FZ按钮11
+				control.setStart_auto(res.getInt("start_auto")); 				//启动自动加载
+				control.setStop_auto(res.getInt("stop_auto")); 	 				//停止自动加载
+				control.setSudden_crease(res.getInt("sudden_crease"));  		//突加突卸
+				control.setAll_open(res.getInt("all_open"));            		//全部分闸
+				control.setFZ_autostate1(res.getInt("fZ_autostate1"));  		//FZ自动状态1
+				control.setFZ_autostate2(res.getInt("fZ_autostate2"));  		//FZ自动状态2
+				control.setFZ_autostate3(res.getInt("fZ_autostate3"));  		//FZ自动状态3
+				control.setFZ_autostate4(res.getInt("fZ_autostate4"));			//FZ自动状态4
+				control.setFZ_autostate5(res.getInt("fZ_autostate5"));  		//FZ自动状态5
+				control.setLocal_control(res.getInt("local_control")); 			//就地控制
+				control.setBack_control(res.getInt("back_control"));    		//后台控制
+				control.setCentral_control(res.getInt("central_control"));  	//中间控制
+				control.setInter_volume_M200(res.getInt("inter_volume_M200"));	//中间量M200
+				control.setFan_button(res.getInt("fan_button"));                //风机按钮
+				control.setSet_power(res.getFloat("set_power")); 				//设定功率
+				control.setInterval_time(res.getInt("interval_time")); 			//间隔时间
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		} finally {
+			if(res != null) {
+				try {
+					res.close();
+				} catch (SQLException e) {
+					e.printStackTrace();
+				}
+			}
+			sql.close_con();
+		}
+	}
+	
+	/**
+	 *	更新控制状态
+	 * @param conn_pool
+	 * @param control
+	 */
+	public static void update_Dynamicload_Control(MysqlConnPool conn_pool, Dynamicload_control control) {
+		String sql_str = " UPDATE " + Sql_Mysql.Tb_Dynamicload_Control 
+				+ " SET FZ_b1= " + control.getFZ_b1()
+				+ ",FZ_b2 = " + control.getFZ_b2()
+				+ ",FZ_b3 = " + control.getFZ_b3()
+				+ ",FZ_b4 = " + control.getFZ_b4()
+				+ ",FZ_b5 = " + control.getFZ_b5()
+				+ ",FZ_b6 = " + control.getFZ_b6()
+				+ ",FZ_b7 = " + control.getFZ_b7()
+				+ ",FZ_b8 = " + control.getFZ_b8()
+				+ ",FZ_b9 = " + control.getFZ_b9()
+				+ ",FZ_b10 = " + control.getFZ_b10()
+				+ ",FZ_b11 = " + control.getFZ_b11()
+				+ ",start_auto = " + control.getStart_auto()
+				+ ",stop_auto = " + control.getStop_auto()
+				+ ",sudden_crease = " + control.getSudden_crease()
+				+ ",all_open = " + control.getAll_open()
+				+ ",FZ_autostate1 = " + control.getFZ_autostate1()
+				+ ",FZ_autostate2 = " + control.getFZ_autostate2()
+				+ ",FZ_autostate3 = " + control.getFZ_autostate3()
+				+ ",FZ_autostate4 = " + control.getFZ_autostate4()
+				+ ",FZ_autostate5 = " + control.getFZ_autostate5()
+				+ ",local_control = " + control.getLocal_control()
+				+ ",back_control = " + control.getBack_control()
+				+ ",central_control = " + control.getCentral_control()
+				+ ",inter_volume_M200 = " + control.getInter_volume_M200()
+				+ ",fan_button = " + control.getFan_button()
+				+ ",interval_time = " + control.interval_time
+				+ ",set_power = " + control.set_power
+				+ " WHERE dev_id = " + control.dev_id;
+		Sql_Mysql sql = new Sql_Mysql(conn_pool.getConn());
+		try {
+			//System.out.println(sql_str);
+			sql.sqlMysqlExecute(sql_str);
+		} catch (SQLException e) {
+			e.printStackTrace();
+		} finally {
+			sql.close_con();
+		}
+	}
+}

--
Gitblit v1.9.1