81041
2018-11-28 1e8b3ca5741b24f1701b2f59d6ccebd4b7a26c1e
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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
package com.fgkj.dao.impl.ram;
 
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
 
import com.fgkj.dao.BaseDAO;
import com.fgkj.dao.CallBack;
import com.fgkj.dao.DAOHelper;
import com.fgkj.dao.FBS9100_ComBase;
import com.fgkj.db.DBUtil;
import com.fgkj.dto.ram.Fbs9100_battparam;
import com.mysql.fabric.xmlrpc.base.Array;
 
public class Fbs9100_battparamImpl implements BaseDAO,CallBack{
 
    public List getResults(ResultSet rs) {
        // TODO Auto-generated method stub
        return null;
    }
 
    public boolean add(Object obj) {
        // TODO Auto-generated method stub
        return false;
    }
    //修改参数
    public boolean update(Object obj) {
        Fbs9100_battparam bparam=(Fbs9100_battparam) obj;
        /*String sql=" update db_ram_db.tb_fbs9100_battparam set STD_CAP=?,STD_RES=?,BattGroupCount=?,EachGroupBattCount=?,MonomerVol=?,GroupVol=?,BattTemp=?,FloatChargeVol=?,FloatChargeCurr=?,OnlineVolLow=?,GroupConnType=? " +
                " where dev_id=? ";*/
        String sql=" replace into db_ram_db.tb_fbs9100_battparam(dev_id,dev_ip,STD_CAP,STD_RES,BattGroupCount,EachGroupBattCount,MonomerVol,GroupVol,BattTemp,FloatChargeVol,FloatChargeCurr,OnlineVolLow,GroupConnType) values(?,?,?,?,?,?,?,?,?,?,?,?,?)";
        boolean bl=DAOHelper.executeUpdate(DBUtil.getConn(), sql, new Object[]{bparam.getDev_id(),bparam.getDev_ip(),bparam.getSTD_CAP(),bparam.getSTD_RES(),bparam.getBattGroupCount(),bparam.getEachGroupBattCount(),bparam.getMonomerVol(),bparam.getGroupVol()
            ,bparam.getBattTemp(),bparam.getFloatChargeVol(),bparam.getFloatChargeCurr(),bparam.getOnlineVolLow(),bparam.getGroupConnType()});
        return bl;
    }
 
    public boolean del(Object obj) {
        // TODO Auto-generated method stub
        return false;
    }
 
    public List searchAll() {
        // TODO Auto-generated method stub
        return null;
    }
    //根据设备id查询电池参数信息
    public List serchByCondition(Object obj) {
        Fbs9100_battparam bparam=(Fbs9100_battparam) obj;
        String sql=" select distinct num,dev_ip,dev_id,op_cmd,STD_CAP,STD_RES,BattGroupCount,EachGroupBattCount,MonomerVol,GroupVol,BattTemp,FloatChargeVol,FloatChargeCurr,OnlineVolLow,GroupConnType " +
                " ,db_battinf.tb_battinf.DeviceName,StationName,StationName1,StationName2,StationName3,StationName5,StationId " +
                " from db_ram_db.tb_fbs9100_battparam,db_battinf.tb_battinf  " +
                " where dev_id=? and db_ram_db.tb_fbs9100_battparam.dev_id=db_battinf.tb_battinf.fbsdeviceid" +
                " limit 1 ";
        List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{bparam.getDev_id()}, new CallBack() {
            
            public List getResults(ResultSet rs) {
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        Fbs9100_battparam b=new Fbs9100_battparam();
                        b.setNum(rs.getInt("num"));
                        b.setDev_ip(rs.getString("dev_ip"));
                        b.setDev_id(rs.getInt("dev_id"));
                        b.setOp_cmd(rs.getInt("op_cmd"));
                        b.setSTD_CAP(rs.getInt("sTD_CAP"));
                        b.setSTD_RES(rs.getInt("sTD_RES"));
                        b.setBattGroupCount(rs.getInt("battGroupCount"));
                        b.setEachGroupBattCount(rs.getInt("eachGroupBattCount"));
                        b.setMonomerVol(rs.getFloat("monomerVol"));
                        b.setGroupVol(rs.getFloat("groupVol"));
                        b.setBattTemp(rs.getFloat("battTemp"));
                        b.setFloatChargeVol(rs.getFloat("floatChargeVol"));
                        b.setFloatChargeCurr(rs.getFloat("floatChargeCurr"));
                        b.setOnlineVolLow(rs.getFloat("onlineVolLow"));
                        b.setGroupConnType(rs.getInt("groupConnType"));
                        b.setDeviceName(rs.getString("deviceName"));
                        b.setStationName(rs.getString("stationName"));
                        b.setStationName1(rs.getString("stationName1"));
                        b.setStationName2(rs.getString("stationName2"));
                        b.setStationName3(rs.getString("stationName3"));
                        b.setStationName5(rs.getString("stationName5"));
                        b.setStationId(rs.getString("stationId"));
                        list.add(b);
                    }
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                return list;
            }
        });
        return list;
    }
    //电池参数命令操作设备时的cmd和ack校验    
    public boolean sendCmdToBattparam(int cmd,int dev_id)
    { 
        int m_cmd = cmd;
        int m_cmd_ack = cmd;
        switch(m_cmd) {
            case FBS9100_ComBase.CMD_GetBattParam: m_cmd_ack = FBS9100_ComBase.CMD_GetBattParamACK; break;
            case FBS9100_ComBase.CMD_SetBattParam: m_cmd_ack = FBS9100_ComBase.CMD_SetBattParamACK; break;
            default: return false;
        }
        String sql_end = "";
        boolean res_exe = false;
        String sql = "UPDATE db_ram_db.db_ram_db.tb_fbs9100_battparam  SET "
                        + " op_cmd=? " + sql_end
                        + " WHERE dev_id=? ";
        Boolean bl=DAOHelper.executeUpdate(DBUtil.getConn(), sql, new Object[]{m_cmd,dev_id});
        if(true == bl)
        {
            sql = "SELECT op_cmd FROM db_ram_db.tb_fbs9100_battparam "+
                        " WHERE dev_id="+dev_id;
            Connection conn=DBUtil.getConn();
            PreparedStatement ps = null;
            ResultSet rs = null;
            for(int n=0; n<20; n++)
            {
              try {
                    ps = conn.prepareStatement(sql);
                    rs=ps.executeQuery();
                        if(rs.next())
                        {
                            if(rs.getInt("op_cmd") == m_cmd_ack)
                            {
                                res_exe = true;
                                break;
                            }
                        }
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
              
                try {
                    Thread.sleep(250);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            DBUtil.close(rs, ps, conn);
        }
        return res_exe;
    }
    public List serchByInfo(Object obj) {
        // TODO Auto-generated method stub
        return null;
    }
 
}