package com.fgkj.impl;
|
|
import android.content.ContentValues;
|
import android.database.Cursor;
|
import android.database.SQLException;
|
import android.database.sqlite.SQLiteDatabase;
|
|
import java.text.ParseException;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
|
import com.fgkj.dao.ActionUtil;
|
import com.fgkj.dao.BaseDAO;
|
import com.fgkj.dao.BattTestData;
|
import com.fgkj.dto.Batttestdata;
|
|
public class BatttestdataDAOImpl implements BaseDAO{
|
//批量插入放电记录
|
public boolean add(SQLiteDatabase db,Object obj) {
|
List<Batttestdata> list=(List<Batttestdata>) obj;
|
boolean bl=true;
|
try {
|
db.beginTransaction();
|
if(list!=null&&list.size()>0){
|
for (int i = 0; i < list.size(); i++) {
|
Batttestdata b=list.get(i);
|
/*String sql="insert into db_batt_testdata.tb_batttestdata_"+b.getBattGroupId()+"(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) " +
|
" values("+b.getBattGroupId()+","+b.getTest_record_count()+","+b.getTest_type()+","+b.getData_new()+","+b.getData_available()+","+b.getRecord_num()+",'"+ ActionUtil.sdf.format(b.getTest_starttime())+"','"+ActionUtil.sdf.format(b.getRecord_time())+"',"+b.getTest_timelong()+","+b.getOnline_vol()+","+b.getGroup_vol()+","+b.getTest_curr()+","+b.getTest_cap()+","+b.getMon_num()+","+b.getMon_vol()+","+b.getMon_tmp()+")";
|
db.execSQL(sql);*/
|
ContentValues cv=BatttestdataDAOImpl.getContentValues(b);
|
long row=db.insert("tb_batttestdata_"+b.getBattGroupId(),null,cv);
|
if(row<0){
|
bl=false;
|
}
|
}
|
}
|
db.setTransactionSuccessful();
|
db.endTransaction();
|
} catch (SQLException e) {
|
bl=false;
|
e.printStackTrace();
|
}
|
return bl;
|
}
|
|
public boolean update(SQLiteDatabase db,Object obj) {
|
boolean bl=false;
|
return bl;
|
}
|
|
//批量修改数据
|
public boolean updatePro(SQLiteDatabase db,Object obj) {
|
List<Batttestdata> list= (List<Batttestdata>) obj;
|
boolean bl=true;
|
try {
|
db.beginTransaction();
|
if(list!=null&&list.size()>0){
|
for (int i = 0; i < list.size(); i++) {
|
Batttestdata bdata=list.get(i);
|
/*float mon_tmp=(float) (Math.random()+20);
|
BigDecimal bd = new BigDecimal((double)mon_tmp);
|
bd = bd.setScale(1,4);
|
mon_tmp = bd.floatValue();
|
String sql="update db_batt_testdata.tb_batttestdata_"+b.getBattGroupId()+" set mon_tmp="+mon_tmp+" where num="+b.getNum();
|
db.execSQL(sql);*/
|
String sql="num=?";
|
ContentValues cv=BatttestdataDAOImpl.getContentValues(bdata);
|
long row=db.update("tb_batttestdata_"+bdata.getBattGroupId(),cv,sql,new String[]{String.valueOf(bdata.getNum())});
|
if(row<0){
|
bl=false;
|
}
|
}
|
}
|
db.setTransactionSuccessful();
|
db.endTransaction();
|
} catch (SQLException e) {
|
bl=false;
|
e.printStackTrace();
|
}
|
return bl;
|
}
|
//删除放电记录(battgroupid,test_record_count)
|
public boolean del(SQLiteDatabase db,Object obj) {
|
Batttestdata bdata = (Batttestdata) obj;
|
boolean bl=true;
|
/*try {
|
String sql = "delete from db_batt_testdata.tb_batttestdata_" + bdata.getBattGroupId()
|
+ " where battgroupid=? and test_record_count=? ";
|
db.execSQL(sql,new Object[]{bdata.getBattGroupId(),bdata.getTest_record_count()});
|
} catch (SQLException e) {
|
bl=false;
|
e.printStackTrace();
|
}*/
|
String sql="battgroupid=? and test_record_count=? ";
|
long row=db.delete("tb_batttestdata_"+bdata.getBattGroupId(),sql,new String[]{String.valueOf(bdata.getBattGroupId()),String.valueOf(bdata.getTest_record_count())});
|
if(row<0){
|
bl=false;
|
}
|
return bl;
|
}
|
|
//批量删除数据
|
public boolean delPro(SQLiteDatabase db,Object obj) {
|
List<Batttestdata> list= (List<Batttestdata>) obj;
|
boolean bl=true;
|
try {
|
db.beginTransaction();
|
if(list!=null&&list.size()>0){
|
for (int i = 0; i < list.size(); i++) {
|
Batttestdata bdata=list.get(i);
|
/*String sql = "delete from db_batt_testdata.tb_batttestdata_" + b.getBattGroupId()
|
+ " where battgroupid="+b.getBattGroupId()+" and test_record_count="+b.getTest_record_count();
|
db.execSQL(sql);*/
|
String sql="battgroupid=? and test_record_count=? ";
|
long row=db.delete("tb_batttestdata_"+bdata.getBattGroupId(),sql,new String[]{String.valueOf(bdata.getBattGroupId()),String.valueOf(bdata.getTest_record_count())});
|
if(row<0){
|
bl=false;
|
}
|
}
|
}
|
db.setTransactionSuccessful();
|
db.endTransaction();
|
} catch (SQLException e) {
|
bl=false;
|
e.printStackTrace();
|
}
|
return bl;
|
}
|
|
|
public List searchAll(SQLiteDatabase db) {
|
return null;
|
}
|
//历史监测根据battgroupid查询
|
public List serchByCondition(SQLiteDatabase db,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,record_num,test_starttime,record_time,test_timelong,online_vol,group_vol,test_curr,test_cap,mon_num,mon_vol,mon_tmp " +
|
" from tb_batttestdata_"+btd.getBattGroupId()+"" +
|
" where test_record_count=? and (record_num%"+roteN+"=0 or test_timelong>=? or test_timelong<= ? or record_num>=("+number+"-100)) " +
|
" ";
|
|
List list=new ArrayList();
|
Cursor rs=db.rawQuery(sql,new String[]{String.valueOf(btd.getTest_record_count()),String.valueOf(btd.getNum()),String.valueOf(btd.getTest_type())});
|
try {
|
while (rs.moveToNext()){
|
Batttestdata b=new Batttestdata();
|
b.setNum(rs.getInt(rs.getColumnIndex("num")));
|
b.setBattGroupId(rs.getInt(rs.getColumnIndex("BattGroupId")));
|
b.setTest_record_count(rs.getInt(rs.getColumnIndex("test_record_count")));
|
b.setTest_type(rs.getInt(rs.getColumnIndex("test_type")));
|
b.setRecord_num(rs.getInt(rs.getColumnIndex("record_num")));
|
b.setTest_starttime(ActionUtil.sdf.parse(rs.getString(rs.getColumnIndex("test_starttime"))));
|
b.setRecord_time(ActionUtil.sdf.parse(rs.getString(rs.getColumnIndex("record_time"))));
|
b.setTest_timelong(rs.getInt(rs.getColumnIndex("test_timelong")));
|
b.setOnline_vol(rs.getFloat(rs.getColumnIndex("online_vol")));
|
b.setGroup_vol(rs.getFloat(rs.getColumnIndex("group_vol")));
|
b.setTest_curr(rs.getFloat(rs.getColumnIndex("test_curr")));
|
b.setTest_cap(rs.getFloat(rs.getColumnIndex("test_cap")));
|
b.setMon_num(rs.getInt(rs.getColumnIndex("mon_num")));
|
b.setMon_vol(rs.getFloat(rs.getColumnIndex("mon_vol")));
|
b.setMon_tmp(rs.getFloat(rs.getColumnIndex("mon_tmp")));
|
list.add(b);
|
}
|
} catch (ParseException e) {
|
e.printStackTrace();
|
}finally {
|
rs.close();
|
}
|
return list;
|
}
|
|
@Override
|
public List serchByInfo(SQLiteDatabase db,Object obj) {
|
return null;
|
}
|
|
//查询某一次测试中的最大一次的测试时长和最短时长<历史监测>
|
public List serchMaxAndMintime(SQLiteDatabase db,Object obj){
|
Batttestdata btb=(Batttestdata) obj;
|
String sql=" SELECT MAX(record_num) number,MAX(test_timelong) as maxtime,MIN(test_timelong) as mintime FROM tb_batttestdata_"+btb.getBattGroupId()+
|
" WHERE test_record_count=? ";
|
List list=new ArrayList();
|
Cursor rs=db.rawQuery(sql,new String[]{String.valueOf(btb.getTest_record_count())});
|
while(rs.moveToNext()){
|
Batttestdata b=new Batttestdata();
|
b.setNum(rs.getInt(rs.getColumnIndex("maxtime")));
|
b.setTest_type(rs.getInt(rs.getColumnIndex("mintime")));
|
b.setRecord_num(rs.getInt(rs.getColumnIndex("number")));
|
list.add(b);
|
}
|
rs.close();
|
return list;
|
}
|
//获取ContentValues
|
public static ContentValues getContentValues(Object obj){
|
Batttestdata btb=(Batttestdata) obj;
|
ContentValues cv=new ContentValues();
|
cv.put("num",btb.getNum());
|
cv.put("BattGroupId",btb.getBattGroupId());
|
cv.put("test_record_count",btb.getTest_record_count());
|
cv.put("test_type",btb.getTest_type());
|
cv.put("record_num",btb.getRecord_num());
|
cv.put("test_starttime",ActionUtil.sdf.format(btb.getTest_starttime()));
|
cv.put("record_time",ActionUtil.sdf.format(btb.getRecord_time()));
|
cv.put("test_timelong",btb.getTest_timelong());
|
cv.put("online_vol",btb.getOnline_vol());
|
cv.put("group_vol",btb.getGroup_vol());
|
cv.put("test_curr",btb.getTest_curr());
|
cv.put("test_cap",btb.getTest_cap());
|
cv.put("mon_num",btb.getMon_num());
|
cv.put("mon_vol",btb.getMon_vol());
|
cv.put("mon_tmp",btb.getMon_tmp());
|
return cv;
|
}
|
|
|
public static void main(String[] args) {
|
|
}
|
}
|