package com.fgkj.dao.impl;
|
|
import java.math.BigDecimal;
|
import java.sql.Connection;
|
import java.sql.ResultSet;
|
import java.sql.SQLException;
|
import java.text.ParseException;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
import org.apache.poi.ss.formula.ptg.TblPtg;
|
|
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.db.IDatabaseName;
|
import com.fgkj.dto.Batttestdata;
|
import com.fgkj.dto.Batttestdata_inf;
|
import com.fgkj.dto.Batttestdatastop;
|
import com.fgkj.test.Mon_vols;
|
|
public class BatttestdataDAOImpl implements BaseDAO{
|
|
public boolean add(Object obj) {
|
List<Batttestdata> list=(List<Batttestdata>) obj;
|
ArrayList<String> sql_str=new ArrayList();
|
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()+",'"+DAOHelper.sdf.format(b.getTest_starttime())+"','"+DAOHelper.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()+")";
|
sql_str.add(sql);
|
}
|
}
|
boolean bl=DAOHelper.makeManualCommit(DBUtil.getConn(), sql_str);
|
return bl;
|
}
|
|
public boolean update(Object obj) {
|
Mon_vols ms=(Mon_vols) obj;
|
String sql="update db_batt_testdata.tb_batttestdata_"+ms.getBattggroupid()+" set online_vol=? ,group_vol=? where record_num=?";
|
boolean bl=DAOHelper.executeUpdate(DBUtil.getConn(), sql, new Object[]{ms.getMon_vols(),ms.getMon_vols(),ms.getRecord_num()});
|
return bl;
|
}
|
|
public boolean updatenew(Object obj) {
|
Batttestdata b=(Batttestdata) obj;
|
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=? where num=?";
|
boolean bl=DAOHelper.executeUpdate(DBUtil.getConn(), sql, new Object[]{mon_tmp,b.getNum()});
|
return bl;
|
}
|
|
|
public boolean updatePro(Object obj) {
|
List<Batttestdata> list= (List<Batttestdata>) obj;
|
ArrayList<String> sql_str=new ArrayList();
|
if(list!=null&&list.size()>0){
|
for (int i = 0; i < list.size(); i++) {
|
Batttestdata b=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();
|
sql_str.add(sql);
|
System.out.println(mon_tmp+" "+i);
|
}
|
}
|
boolean bl=DAOHelper.makeManualCommit(DBUtil.getConn(), sql_str);
|
return bl;
|
}
|
//6.1电池充放电管理删除操作
|
public boolean del(Object obj) {
|
Batttestdata test = (Batttestdata) obj;
|
String sql = "delete from db_batt_testdata.tb_batttestdata_" + test.getBattGroupId()
|
+ " where battgroupid=? and test_record_count=? ";
|
Boolean bl = DAOHelper.executeUpdate(
|
DBUtil.getConn(), sql,
|
new Object[] { test.getBattGroupId(),test.getTest_record_count() });
|
return bl;
|
}
|
//电池充/放电数据管理删除
|
public String delPro(Object obj) {
|
Batttestdata bd=(Batttestdata) obj;
|
String sql="delete from db_batt_testdata.tb_batttestdata_"+bd.getBattGroupId()+" where test_record_count="+bd.getTest_record_count();
|
return sql;
|
}
|
|
public List searchAll() {
|
return null;
|
}
|
|
/**
|
*
|
* @param obj 是当前实现类的对象并设置了BattGroupId的值
|
* @return
|
*/
|
public List searchAll(Object obj) {
|
return null;
|
}
|
//历史监测
|
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;
|
}
|
}
|
//System.out.println(number+" "+roteN);
|
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<= ?) " +
|
" and db_batt_testdata.tb_batttestdata_"+btd.getBattGroupId()+".data_available=1 ";
|
//System.out.println(sql);
|
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 serchByCondition_ky(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<= ?) " +
|
" 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;
|
}
|
|
//7.1落后单体筛选中当单体电<标存电压*0.9时的测试电容就是实际电容
|
public float serchRealCap(Object obj){
|
Batttestdatastop sdata=(Batttestdatastop) obj;
|
String sql="select test_cap from db_batt_testdata.tb_batttestdata_"+sdata.getBattGroupId()+" "+
|
" WHERE test_record_count=? and mon_vol>? and mon_num=? " +
|
" and db_batt_testdata.tb_batttestdata_"+sdata.getBattGroupId()+".data_available=1 " +
|
" order by record_time DESC " +
|
" LIMIT 1 ";
|
List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{sdata.getTest_record_count(),sdata.getMon_vol(),sdata.getMon_num()}, new CallBack() {
|
|
public List getResults(ResultSet rs) {
|
List list=new ArrayList();
|
try {
|
while(rs.next()){
|
float test_cap=rs.getFloat("test_cap");
|
list.add(Math.abs(test_cap));
|
}
|
} catch (SQLException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
return list;
|
}
|
});
|
float test_cap=0f;
|
if(list!=null&&list.size()>0){
|
test_cap=(Float) list.get(list.size()-1);
|
}
|
return test_cap;
|
|
}
|
|
|
public List serchByInfo(Object obj) {
|
return null;
|
}
|
|
public static void main(String[] args) {
|
Batttestdata b=new Batttestdata();
|
b.setBattGroupId(1002085);
|
b.setTest_record_count(1);
|
Date d1 = new Date();
|
//List list=new BatttestdataDAOImpl().serchByCondition(b);
|
List list=new BatttestdataDAOImpl().serchByCondition_ky(b);
|
System.out.println(new Date().getTime() - d1.getTime());
|
System.out.println(list.size()+"*********");
|
}
|
}
|