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 |  149 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 145 insertions(+), 4 deletions(-)

diff --git a/src/com/data/PowerArk_Task_SQL.java b/src/com/data/PowerArk_Task_SQL.java
index ba9692f..63518e7 100644
--- a/src/com/data/PowerArk_Task_SQL.java
+++ b/src/com/data/PowerArk_Task_SQL.java
@@ -11,6 +11,7 @@
 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;
 
@@ -157,7 +158,7 @@
 		}
 	}
 	/**
-	 * 创建负载信息表
+	 * 	创建负载信息表
 	 * @param pool
 	 */
 	public static void createTb_Dynamicload_State_rt(MysqlConnPool pool) {
@@ -198,8 +199,19 @@
 				"  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 {
@@ -347,8 +359,8 @@
 				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,0);
+				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) {
@@ -427,7 +439,8 @@
 	public static void updateDynamicload_StateTable(MysqlConnPool conn_pool,Dynamicload_state state) {
 		String sql_str = " UPDATE  " + Sql_Mysql.Tb_Dynamicload_State_rt 
 				+ " SET "
-				+" start_auto=" + state.getStart_auto()
+				+" 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()
@@ -466,4 +479,132 @@
 			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