whyclj
2020-10-15 95c0c2e94d390650d3954c30c6a7c805fe9c714c
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();
      }
   }
}