whycrzg
2021-02-23 351b9a53cb9ecebdf8f79db0117f540d9c42c2a4
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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
package com.fgkj.mapper.impl;
 
import java.util.List;
import java.util.Map;
 
import com.fgkj.dto.*;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
 
public interface Batt_rtstateMapper{
 
    //实时监测
    public List<Batt_rtdata> serchByCondition(Batt_rtstate obj);
    
    //测试数据——实时查询中左下角的充放电统计(旧)
    public List serchDisOrChargr();
 
//    @Select(" SELECT  distinct db_ram_db.tb_batt_rtstate.battgroupid "
//            + ",batt_test_type,stationid,fbsdeviceid,stationName,stationName1,stationName2,stationName3,stationName4,stationName5 " +
//            "  from db_ram_db.tb_batt_rtstate,db_battinf.tb_battinf ")
     //测试数据——实时查询中左下角的充放电统计(用户管理的机房)
    @Select(" SELECT  distinct db_ram_db.tb_batt_rtstate.battgroupid "
            + ",batt_test_type,stationid,fbsdeviceid,stationName,stationName1,stationName2,stationName3,stationName4,stationName5 " +
            "  from db_ram_db.tb_batt_rtstate,db_battinf.tb_battinf " +
            "  where  batt_test_type IN(2,3) " +
            "  and db_ram_db.tb_batt_rtstate.battgroupid=db_battinf.tb_battinf.BattGroupId " +
            "  and db_ram_db.tb_batt_rtstate.BattGroupId in(select distinct db_battinf.tb_battinf.battgroupid " +
            " from db_battinf.tb_battinf,db_user.tb_user_battgroup_baojigroup_battgroup,db_user.tb_user_battgroup_baojigroup_usr,db_user.tb_user_inf   " +
            " where db_user.tb_user_battgroup_baojigroup_battgroup.BattGroupId=db_battinf.tb_battinf.BattGroupId   " +
            " and db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id=db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id  " +
            " and db_user.tb_user_inf.uid=db_user.tb_user_battgroup_baojigroup_usr.uid  " +
            " and db_user.tb_user_inf.uid=#{uId} ) " +
            "  ORDER BY db_ram_db.tb_batt_rtstate.battgroupid")
    public List<Batt_rtstate> serchDisOrChargrNew(User_inf obj);
 
    //根据电池组id查询该电池组(电池续航能力)
    public List<Batt_State> serchByInfo(BattInf obj);
 
    //查询单体编号实时数据(电池单体实时信息)
    public List<Batt_State> serchMons(BattInf obj);
 
     //查询电池组的实时状态(电池状态查询<放电,充电>)
    /*
     * 电池状态放在:binf的num中*/
    /*public List serchBattState(Object obj){
        Batt_Maint_Dealarm bmd=(Batt_Maint_Dealarm) obj;
        BattInf binf=bmd.getBinf();
        Page page=bmd.getPage();
        String sql="";
        String numberSql=" SELECT FOUND_ROWS() number";
        Connection conn=DBUtil.getConn(IDatabaseName.DB_RAM_DB);
        String baseSql="SELECT  SQL_CALC_FOUND_ROWS DISTINCT db_battinf.tb_battinf.BattGroupId, rec_datetime,batt_state" +
                ",db_battinf.tb_battinf.StationName1,db_battinf.tb_battinf.StationName,db_battinf.tb_battinf.BattGroupName,db_battinf.tb_battinf.deviceName  " +
                " FROM tb_batt_rtstate,db_battinf.tb_battinf  " +
                " WHERE tb_batt_rtstate.BattGroupId=db_battinf.tb_battinf.BattGroupId " +
                " AND db_battinf.tb_battinf.StationName LIKE ? " +
                " AND db_battinf.tb_battinf.StationName1 LIKE ? ";
        //选取电池组
        String idSqlT=" AND db_battinf.tb_battinf.BattGroupId=? ";
        String idSqlF=" AND db_battinf.tb_battinf.BattGroupId!=? ";
        
        if(binf.getBattGroupId()==0){
            baseSql+=idSqlF;
        }else{
            baseSql+=idSqlT;
        }
        //电池状态
        String stateSqlT=" AND batt_state=? ";
        String stateSqlF=" AND batt_state!=? ";
        if(binf.getNum()==100){
            baseSql+=stateSqlF;
        }else{
            baseSql+=stateSqlT;
        }
        
        //按照电池组升序排序
        String endSql=" ORDER BY db_battinf.tb_battinf.BattGroupId ASC ";
        //分页
        String limitSql=" limit ?,?  ";
 
        sql=baseSql+endSql+limitSql;
        //System.out.println(sql);
        List<BattInf> list = DateUtil.executeQueryLimit(sql, conn, new Object[]{"%"+binf.getStationName()+"%","%"+binf.getStationName1()+"%",binf.getBattGroupId(),binf.getNum()
                ,(page.getPageCurr() - 1)*page.getPageSize(),
                page.getPageSize()}, new CallBack() {
            
            public List getResults(ResultSet rs) {
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        BattInf binf=new BattInf();
                        binf.setBattGroupId(rs.getInt("battGroupId"));
                        binf.setStationName(rs.getString("stationName"));
                        binf.setStationName1(rs.getString("stationName1"));
                        binf.setBattGroupName(rs.getString("battGroupName"));
                        //电池组状态
                        binf.setNum(rs.getInt("batt_state"));
                        binf.setStationName9(BattTestData.battState(rs.getInt("batt_state")));
                        binf.setBattProductDate(rs.getTimestamp("rec_datetime"));
                         
                        list.add(binf);
                    }
                } catch (SQLException e) {
                
                    e.printStackTrace();
                }
                return list;
            }
        });
        //去掉limit条件后的总数
        int number=LimitNumberFactory.GetLimtitNumber(conn, numberSql);
        //System.out.println("number: "+number);
        if(list!=null&&list.size()>0){
            list.get(list.size()-1).setMonNum(number);
        }
        return list;
    }*/
    //首页上饼状图电池状态比例
    /*public List serchBattStateRate(){
        String sql=" SELECT  DISTINCT tb_batt_rtstate.BattGroupId,batt_state,  " +
                " COUNT(tb_batt_rtstate.BattGroupId) as stateNum  " +
                " FROM db_ram_db.tb_batt_rtstate    " +
                " GROUP BY batt_state ORDER BY batt_state";
        List list=DateUtil.executeQuery(sql, DBUtil.getConn(), null, new CallBack() {
            
            public List getResults(ResultSet rs) {
                
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        Batt_rtstate bstate=new Batt_rtstate();
                        bstate.setBatt_state(rs.getInt("batt_state"));
                        bstate.setNum(rs.getInt("stateNum"));
                        list.add(bstate);
                    }
                } catch (SQLException e) {
                    e.printStackTrace();
                }
                return list;
            }
        });
        return list;
    
    }*/
    @Select("SELECT  DISTINCT tb_batt_rtstate.BattGroupId,batt_state, " +
            "COUNT(tb_batt_rtstate.BattGroupId) as batt_count " +
            "FROM db_ram_db.tb_batt_rtstate " +
            "GROUP BY tb_batt_rtstate.BattGroupId,batt_state " +
            "having db_ram_db.tb_batt_rtstate.BattGroupId in(select distinct db_battinf.tb_battinf.battgroupid " +
            "from db_battinf.tb_battinf,db_user.tb_user_battgroup_baojigroup_battgroup,db_user.tb_user_battgroup_baojigroup_usr,db_user.tb_user_inf " +
            "where db_user.tb_user_battgroup_baojigroup_battgroup.BattGroupId=db_battinf.tb_battinf.BattGroupId " +
            "and db_user.tb_user_battgroup_baojigroup_usr.baoji_group_id=db_user.tb_user_battgroup_baojigroup_battgroup.baoji_group_id " +
            "and db_user.tb_user_inf.uid=db_user.tb_user_battgroup_baojigroup_usr.uid " +
            "and db_user.tb_user_inf.uid=#{uId} ) " +
            "ORDER BY batt_state")
    public List<Batt_rtstate> serchBattStateRate(User_inf obj);
 
    //电池组实时情况+实时电池续航能力查询
    /*public List serchBattLife(Object obj) {
       Batt_Maint_Dealarm bmd=(Batt_Maint_Dealarm) obj;
       BattInf binf=bmd.getBinf();
       Page page=bmd.getPage();
       String numberSql=" SELECT FOUND_ROWS() number";
       Connection conn=DBUtil.getConn();
       String sql="";
       String baseSql="select SQL_CALC_FOUND_ROWS tb_batt_rtstate.BattGroupId,batt_count,tb_batt_rtstate.rec_datetime,online_vol,group_vol,group_curr,batt_state," +
                "batt_test_type,batt_test_starttime,batt_test_recordtime,batt_test_tlong," +
                "batt_test_cap,batt_real_cap,batt_rest_cap,batt_rest_power1_time,batt_rest_power2_time" +
                ",tb_batt_rtdata.BattGroupId,tb_batt_rtdata.rec_datetime,mon_num,mon_vol,mon_tmp," +
                "mon_res,mon_ser,mon_conn_res,mon_cap" +
                ",db_battinf.tb_battinf.moncapstd,db_battinf.tb_battinf.monvolstd " +
                ",db_battinf.tb_battinf.stationname,db_battinf.tb_battinf.stationname1,db_battinf.tb_battinf.BattGroupName,db_battinf.tb_battinf.deviceName  " +
                ",max(binary tb_batt_rtdata.mon_vol) as maxmonvol,min(binary tb_batt_rtdata.mon_vol) as minmonvol    " +
                "FROM  db_ram_db.tb_batt_rtstate  " +
                "LEFT OUTER JOIN db_ram_db.tb_batt_rtdata ON tb_batt_rtstate.BattGroupId = tb_batt_rtdata.BattGroupId " +
                "LEFT OUTER JOIN db_battinf.tb_battinf ON tb_batt_rtstate.BattGroupId = db_battinf.tb_battinf.BattGroupId  " +
                "WHERE ";
       //电池组的选择
       String idSqlT="  tb_batt_rtstate.BattGroupId=? ";
       String idSqlF="  tb_batt_rtstate.BattGroupId!=? ";
       if(binf.getBattGroupId()==0){
           baseSql+=idSqlF;
       }else{
           baseSql+=idSqlT;
       }
       //机房维护区选择
       String stationSql=" AND db_battinf.tb_battinf.stationname like ? AND db_battinf.tb_battinf.stationname1 like ?  ";
       baseSql+=stationSql;
        //电池状态
         String stateSqlT=" AND batt_state=? ";
         String stateSqlF=" AND batt_state!=? ";
         if(binf.getNum()==100){
             baseSql+=stateSqlF;
         }else{
             baseSql+=stateSqlT;
         }
       //排序
       String endSql=" GROUP BY tb_batt_rtstate.BattGroupId ";
       //分页
        String limitSql=" limit ?,?";
        sql=baseSql+endSql+limitSql;
        //System.out.println(sql);
        List<Batt_State> list=DateUtil.executeQueryLimit(sql, conn, new Object[]{binf.getBattGroupId(),"%"+binf.getStationName()+"%","%"+binf.getStationName1()+"%"
                ,binf.getNum(),(page.getPageCurr() - 1)*page.getPageSize(),
                page.getPageSize()}, new CallBack() {
            
            public List getResults(ResultSet rs) {
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        Batt_State state=new Batt_State();
                        
                        Batt_rtstate bstate=new Batt_rtstate();
                        bstate.setBattGroupId(rs.getInt("tb_batt_rtstate.BattGroupId"));
                        bstate.setBatt_count(rs.getInt("batt_count"));
                        bstate.setRec_datetime(rs.getTimestamp("tb_batt_rtstate.rec_datetime"));
                        bstate.setOnline_vol(rs.getFloat("online_vol"));
                        bstate.setGroup_vol(rs.getFloat("group_vol"));
                        
                        bstate.setGroup_curr(rs.getFloat("group_curr"));//
                        bstate.setBatt_state(rs.getInt("batt_state"));
                        bstate.setBatt_test_type(rs.getInt("batt_test_type"));
                        bstate.setBatt_test_starttime(rs.getTimestamp("batt_test_starttime"));
                        bstate.setBatt_test_recordtime(rs.getTimestamp("batt_test_recordtime"));
                        bstate.setBatt_test_tlong(rs.getInt("batt_test_tlong"));
                        bstate.setBatt_test_cap(rs.getFloat("batt_test_cap"));
                        bstate.setBatt_real_cap(rs.getFloat("batt_real_cap"));
                        bstate.setBatt_rest_cap(rs.getFloat("batt_rest_cap"));
                        bstate.setBatt_rest_power1_time(rs.getInt("batt_rest_power1_time"));
                        bstate.setBatt_rest_power2_time(rs.getInt("batt_rest_power2_time"));
                        
                        Batt_rtdata bdata=new Batt_rtdata();
                        bdata.setMon_vol(rs.getFloat("maxmonvol"));
                        bdata.setMon_tmp(rs.getFloat("minmonvol"));
                        
                        
                        BattInf binf=new BattInf();
                        binf.setBattGroupId(rs.getInt("battGroupId"));
                        binf.setMonCapStd(rs.getFloat("monCapStd"));
                        binf.setMonVolStd(rs.getFloat("MonVolStd"));
                        binf.setBattGroupName(rs.getString("battGroupName"));
                        binf.setDeviceName(rs.getString("deviceName"));
                        binf.setStationName(rs.getString("stationName"));
                        binf.setStationName1(rs.getString("stationName1"));
                        
                        binf.setStationName9(BattTestData.battState(rs.getInt("batt_state")));
                        
                        state.setBstate(bstate);
                        state.setBdata(bdata);
                        state.setBinf(binf);
                        list.add(state);
                    }
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                return list;
            }
        });
        //去掉limit条件后的总数
        int number=LimitNumberFactory.GetLimtitNumber(conn, numberSql);
        //System.out.println("number: "+number);
        if(list!=null&&list.size()>0){
            list.get(list.size()-1).getBinf().setMonNum(number);
        }
        return list;
    }*/
    //电池组实时情况+实时电池续航能力查询
    public List serchBattLife(Batt_Maint_Dealarm obj);
 
    //查询出当前存在内存中最大的电池组id(很重要**********)
    public int searchMaxBattgroupId();
    
    //实时监测<-------跨域----------->
    @Select("select num,BattGroupId,batt_count,rec_datetime,group_vol,online_vol,group_curr,batt_state," +
            "batt_test_type,batt_test_starttime,batt_test_recordtime,batt_test_tlong," +
            "batt_test_cap,batt_real_cap,batt_rest_cap,batt_rest_power1_time,batt_rest_power2_time" +
            " from db_ram_db.tb_batt_rtstate where BattGroupId=#{battGroupId}")
    public List<Batt_rtstate> serchByCondition_ky(Batt_rtstate obj);
 
 
    /*public static void main(String[] args) {
       User_inf uinf=new User_inf();
       uinf.setuId(1001);
       Batt_rtstateDAOImpl bimpl=new Batt_rtstateDAOImpl();
       *//*List<Batt_rtstate> list=bimpl.serchDisOrChargrNew(uinf);
       for (Batt_rtstate b : list) {
           System.out.println(b);
    }*/
}