whyclj
2020-09-23 3ba028aecace528eb29b48cdbea4b2115a6e1532
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
package com.electrical.FourKW;
 
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
 
import com.base.Com;
import com.sql.MysqlConnPool;
import com.sql.Sql_Mysql;
 
public class DeviceAlarm_Thread_SQL {
 
    /**
     * ²åÈëеĸ澯¼Ç¼
     * @param pool
     * @param addalarm
     */
    public static void insertNewAlarm(MysqlConnPool pool, List<DeviceAlarm> addalarm) {
        String sql_str = "INSERT INTO "+Sql_Mysql.Tb_Electric_alarm+"(electric_id,alarm_id,alarm_starttime,alarm_endtime,alarm_confirmtime) VALUES ";
        for(int i=0;i<addalarm.size();i++) {
            DeviceAlarm alarm = addalarm.get(i);
            if(i > 0) {
                sql_str += ",";
            }
            sql_str += "("
                    + alarm.dev_id +","
                    + alarm.alarm_id + ",'"
                    + Com.getDateTimeFormat(alarm.alarm_starttime, Com.DTF_YMDhms) +"','"
                    + Com.getDateTimeFormat(alarm.alarm_endtime, Com.DTF_YMDhms) +"','"
                    + Com.getDateTimeFormat(alarm.alarm_confirmtime, Com.DTF_YMDhms) +"'"
                    + ")";
        }
        Sql_Mysql sql = null;
        try {
            sql = new Sql_Mysql(pool.getConn());
            sql.sqlMysqlExecute(sql_str);
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
    }
 
    /**
     * ½«ÊµÊ±¸æ¾¯±ä³ÉÀúÊ·¸æ¾¯¼Ç¼
     * @param pool
     * @param delalarm
     */
    public static void makeRealToHistory(MysqlConnPool pool, DeviceAlarm delalarm) {
        String sql_str_upd = "UPDATE "+Sql_Mysql.Tb_Electric_alarm+" SET alarm_endtime = '"+Com.getDateTimeFormat(delalarm.alarm_endtime, Com.DTF_YMDhms)+"'" + 
                " WHERE electric_id = "+delalarm.dev_id+" AND alarm_id = " +delalarm.alarm_id;            //¸üе±Ç°¸æ¾¯µÄ½áÊøÊ±¼ä
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            sql.sqlMysqlExecute(sql_str_upd);
            //²åÈëÀúÊ·¸æ¾¯
            String sql_str_ins = "INSERT INTO "+Sql_Mysql.Tb_Electric_alarm_history+"(electric_id,alarm_id,alarm_starttime,alarm_endtime,alarm_confirm,alarm_confirmtime) "
                                + "    (SELECT electric_id,alarm_id,alarm_starttime,alarm_endtime,alarm_confirm,alarm_confirmtime "
                                    + "    FROM "+Sql_Mysql.Tb_Electric_alarm
                                    + "    WHERE electric_id = "+delalarm.dev_id+" AND alarm_id = "+delalarm.alarm_id
                                + " )";
            //ɾ³ýʵʱ¸æ¾¯¼Ç¼
            String sql_str_del = "DELETE FROM "+Sql_Mysql.Tb_Electric_alarm+" WHERE electric_id = "+delalarm.dev_id+" AND alarm_id = "+delalarm.alarm_id;
            ArrayList<String> sql_strs = new ArrayList<String>();
            sql_strs.add(sql_str_ins);
            sql_strs.add(sql_str_del);
            sql.makeManualCommit(sql_strs);            
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            sql.close_con();
        }
        
    }
    
    /**
     *    ²éѯµ±Ç°É豸ÉÏÒ»´ÎµÄÀúÊ·¸æ¾¯¼Ç¼±í
     * @param pool
     * @param alarm
     */
    public static void searchLastDeviceAlarm(MysqlConnPool pool,Electric_alarm alarm) {
        String sql_str = "SELECT * FROM "+Sql_Mysql.Tb_Electric_alarm+" WHERE electric_id = " + alarm.electric_id;
        ResultSet res = null;        
        Sql_Mysql sql = new Sql_Mysql(pool.getConn());
        try {
            res = sql.sqlMysqlQuery(sql_str);
            while(res.next()) {
                //¼ÓÔØµ±Ç°É豸֮ǰµÄʵʱ¸æ¾¯¼Ç¼
                alarm.setAlarmStateByAlarm_id(res.getInt("alarm_id"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            if(res != null) {
                try {
                    res.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            sql.close_con();
        }
    }
 
}