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