81041
2020-01-06 dc4e90ff7d720a78dba3aa72d868b89f69eafff7
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
package com.fgkj.dao.impl;
 
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.BattTestData;
import com.fgkj.dao.CallBack;
import com.fgkj.dao.DAOHelper;
import com.fgkj.db.DBUtil;
import com.fgkj.dto.Batttestdata;
 
public class BatttestdataImpl implements BaseDAO,CallBack{
 
    @Override
    public List getResults(ResultSet rs) {
        // TODO Auto-generated method stub
        return null;
    }
 
    @Override
    public boolean add(Object obj) {
        // TODO Auto-generated method stub
        return false;
    }
 
    @Override
    public boolean update(Object obj) {
        // TODO Auto-generated method stub
        return false;
    }
 
    @Override
    public boolean del(Object obj) {
        // TODO Auto-generated method stub
        return false;
    }
 
    @Override
    public List searchAll() {
        // TODO Auto-generated method stub
        return null;
    }
    //根据电池id查询历史数据
    @Override
    public List serchByCondition(Object obj) {
        Batttestdata btd=(Batttestdata)obj;
        int number=btd.getRecord_num();//总数
        int roteN=0;
        int endN=BattTestData.RC_NUM_PARAM;//总笔数
        if(number<=endN){
            roteN=1;
        }else{        
            if(number%endN==0){
            roteN=number/endN;
           }else{
            roteN=number/endN+1;
          }
         }
        String sql="select num,BattGroupId,test_record_count,test_type,data_new,data_available,record_num,test_starttime,record_time,test_timelong,online_vol,group_vol,test_curr,test_cap,mon_num,mon_vol,mon_tmp " +
                "  from db_batt_testdata.tb_batttestdata_"+btd.getBattGroupId()+"" +
                 " where test_record_count=?  and (record_num%"+roteN+"=0 or test_timelong>=? or test_timelong<= ? or record_num>=("+number+"-100))  " +
                 " and db_batt_testdata.tb_batttestdata_"+btd.getBattGroupId()+".data_available=1 ";
        List list=DAOHelper.executeQuery(sql, DBUtil.getConn(),new Object[]{btd.getTest_record_count(),btd.getNum(),btd.getTest_type()}, new CallBack() {
            public List getResults(ResultSet rs) {
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        Batttestdata b=new Batttestdata();
                        b.setNum(rs.getInt("num"));
                        b.setBattGroupId(rs.getInt("BattGroupId"));
                        b.setTest_record_count(rs.getInt("test_record_count"));
                        b.setTest_type(rs.getInt("test_type"));
                        b.setData_new(rs.getInt("data_new"));                        
                        b.setData_available(rs.getInt("data_available"));
                        b.setRecord_num(rs.getInt("record_num"));
                        b.setTest_starttime(rs.getTimestamp("test_starttime"));
                        b.setRecord_time(rs.getTimestamp("record_time"));
                        b.setTest_timelong(rs.getInt("test_timelong"));
                        b.setOnline_vol(rs.getFloat("online_vol"));
                        b.setGroup_vol(rs.getFloat("group_vol"));
                        b.setTest_curr(rs.getFloat("test_curr"));
                        b.setTest_cap(rs.getFloat("test_cap"));
                        b.setMon_num(rs.getInt("mon_num"));
                        b.setMon_vol(rs.getFloat("mon_vol"));
                        b.setMon_tmp(rs.getFloat("mon_tmp"));
                        list.add(b);
                    }
                }catch (SQLException e) {
                    e.printStackTrace();
                } 
                return list;
            }
        });
        return list;
    }
     //查询某一次测试中的最大一次的测试时长和最短时长<历史监测>
    public List serchMaxAndMintime(Object obj){
        Batttestdata btb=(Batttestdata) obj;
        String sql=" SELECT MAX(record_num) number,MAX(test_timelong) as maxtime,MIN(test_timelong) as mintime FROM db_batt_testdata.tb_batttestdata_"+btb.getBattGroupId()+
                "  WHERE test_record_count=?  and db_batt_testdata.tb_batttestdata_"+btb.getBattGroupId()+".data_available=1 LIMIT 1";
        List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{btb.getTest_record_count()}, new CallBack() {
            
            public List getResults(ResultSet rs) {
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        Batttestdata btb=new Batttestdata();
                        btb.setNum(rs.getInt("maxtime"));
                        btb.setTest_type(rs.getInt("mintime"));
                        btb.setRecord_num(rs.getInt("number"));
                        list.add(btb);
                    }
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                return list;
            }
        });
        return list;
    } 
    @Override
    public List serchByInfo(Object obj) {
        // TODO Auto-generated method stub
        return null;
    }
 
}