package com.fgkj.dao.impl;
|
|
import java.sql.Connection;
|
import java.sql.ResultSet;
|
import java.sql.SQLException;
|
import java.text.ParseException;
|
import java.text.SimpleDateFormat;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
import com.fgkj.actions.ActionUtil;
|
import com.fgkj.dao.AlarmDaoFactory;
|
import com.fgkj.dao.BaseDAO;
|
import com.fgkj.dao.CallBack;
|
import com.fgkj.dao.DAOHelper;
|
import com.fgkj.dao.LimitNumberFactory;
|
import com.fgkj.db.DBUtil;
|
import com.fgkj.dto.BattInf;
|
import com.fgkj.dto.Batt_Maint_Dealarm;
|
import com.fgkj.dto.Batt_maint_inf;
|
import com.fgkj.dto.Battalarm_data;
|
import com.fgkj.dto.Battalarm_data_history;
|
import com.fgkj.dto.Batttestdata_inf;
|
import com.fgkj.dto.Page;
|
import com.fgkj.dto.User_inf;
|
|
public class Battalarm_data_historyImpl 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) {
|
// TODO Auto-generated method stub
|
return false;
|
}
|
|
public boolean del(Object obj) {
|
// TODO Auto-generated method stub
|
return false;
|
}
|
//3.2电池告警查询(删除记录)<多条记录删除>
|
public String delPro(Object obj){
|
Battalarm_data_history adata_h = (Battalarm_data_history) obj;
|
String sql = "delete from db_alarm.tb_battalarm_data_history where num="+adata_h.getNum();
|
return sql;
|
}
|
public List searchAll() {
|
// TODO Auto-generated method stub
|
return null;
|
}
|
|
public List serchByCondition(Object obj) {
|
// TODO Auto-generated method stub
|
return null;
|
}
|
|
// 3.2电池告警
|
/*
|
* 条件所存放的位置前台:tb_batt_maint_inf
|
* 在线电压:usr_id 119001
|
* 组端电压:fault_type_id 119002
|
* 充电电流:fault_level 119003
|
* 放电电流:record_uid 119004
|
* 单体电压:maint_type_id 119005
|
* 单体温度:maint_done 119006
|
* 单体内阻:maint_close 119007
|
* 连接条阻抗:master_id 119008
|
* -----alarm_data
|
* MonNum 容量告警告警
|
*Record_Id 容量更换告警
|
* 告警等级
|
* 一级告警:num
|
* 二级告警:battgroupid
|
* 三级告警:master_audit
|
* 四级告警:appoint-uid
|
*
|
*
|
* 下限告警/上限告警 alarm_data
|
* alm_signal_id:为奇数--上限告警(alm_id) 选中1 未选中100
|
* alm_signal_id:为偶数--下限告警 (alm_signal_id) 选中0 未选中100
|
*
|
* 告警状态alm_cleared_type;
|
* 当前告警:选中0
|
* 历史告警:选中1
|
* 两者告警:选中100
|
* 全都不选:不选200
|
|
*/
|
public List serchByInfo(Object obj) {
|
Batt_Maint_Dealarm bmd = (Batt_Maint_Dealarm) obj;
|
BattInf binf=bmd.getBinf();
|
Batttestdata_inf tdata=bmd.getTdata();
|
Battalarm_data_history adata_H = bmd.getAdata_H();
|
Batt_maint_inf mainf = bmd.getMainf();
|
User_inf uinf=bmd.getUinf();
|
String sql="";
|
String numberSql="SELECT FOUND_ROWS() number";//存放总数
|
Connection conn=DBUtil.getConn();//sql和numberSql共用一个connection
|
String baseSql = "select SQL_CALC_FOUND_ROWS distinct(db_alarm.tb_battalarm_data_history.BattGroupId),db_alarm.tb_battalarm_data_history.num,alm_signal_id,db_alarm.tb_battalarm_data_history.monnum,alm_value,alm_level,alm_is_confirmed,alm_confirmed_time,alm_start_time,alm_end_time, " +
|
" stationname,stationname1,stationname2,stationname3,stationname5,battgroupname" +
|
" from db_alarm.tb_battalarm_data_history,db_battinf.tb_battinf"
|
+ ",db_user.tb_user_battgroup_baojigroup_battgroup,db_user.tb_user_battgroup_baojigroup_usr,db_user.tb_user_inf " +
|
" where alm_id in(?,?,?,?,?,?,?) and alm_signal_id%2 in(?,?) " +
|
" and alm_level in(?,?,?,?) " +
|
" and alm_start_time>=? and alm_start_time<=? " +
|
" and db_battinf.tb_battinf.stationname1 like ? and db_battinf.tb_battinf.stationname like ? and db_battinf.tb_battinf.stationname2 like ? and db_battinf.tb_battinf.stationname5 like ? ";
|
/*//用于实时告警
|
String almSqlT="and alm_cleared_type=? ";
|
//历史告警
|
String almSqlF="and alm_cleared_type in(?,1,2) ";
|
//两者均包含
|
String almSqlA="and alm_cleared_type in(?,0,1,2) ";
|
if(adata_H.getAlm_cleared_type()==0){
|
baseSql+=almSqlT;
|
}else if(adata_H.getAlm_cleared_type()==1){
|
baseSql+=almSqlF;
|
}else if(adata_H.getAlm_cleared_type()==100){
|
baseSql+=almSqlA;
|
}else if(adata_H.getAlm_cleared_type()==200){
|
baseSql+=almSqlT;
|
}*/
|
|
//用于电池组条件
|
String idSqlT=" and db_battinf.tb_battinf.battgroupid!=? and db_alarm.tb_battalarm_data_history.battgroupid=db_battinf.tb_battinf.battgroupid ";//全部
|
String idSqlF=" and db_battinf.tb_battinf.battgroupid=? and db_alarm.tb_battalarm_data_history.battgroupid=db_battinf.tb_battinf.battgroupid ";
|
if(binf.getBattGroupId()==0){
|
baseSql+=idSqlT;
|
}else{
|
baseSql+=idSqlF;
|
}
|
//用于用户管理的电池组的筛选
|
String userSql=" and 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=? ";
|
baseSql+=userSql;
|
|
/*//用于用户管理的电池组的筛选
|
String userSql=" and db_alarm.tb_battalarm_data_history.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=? )";
|
baseSql+=userSql;*/
|
String endSql="order by db_alarm.tb_battalarm_data_history.alm_start_time desc,db_alarm.tb_battalarm_data_history.monnum asc ";
|
String limitSql=" limit ?,? ";
|
sql=baseSql+endSql+limitSql;
|
//System.out.println(sql);
|
List<Batt_Maint_Dealarm> list= DAOHelper.executeQueryLimit(sql,conn,
|
new Object[] {
|
mainf.getUsr_id(),
|
mainf.getFault_type_id(),
|
mainf.getFault_level(),
|
mainf.getRecord_uid(),
|
mainf.getMaint_type_id(),
|
mainf.getMaint_done(),
|
mainf.getMaint_close(),
|
|
|
adata_H.getAlm_id(),
|
adata_H.getAlm_signal_id(),
|
|
mainf.getNum(),
|
mainf.getBattGroupId(),
|
mainf.getMaster_audit(),
|
mainf.getAppoint_uid(),
|
|
adata_H.getAlm_start_time(),
|
adata_H.getAlm_start_time1(),
|
"%"+binf.getStationName1()+"%",
|
"%"+binf.getStationName()+"%",
|
"%"+binf.getStationName2()+"%",
|
"%"+binf.getStationName5()+"%",
|
//adata_H.getAlm_cleared_type(),
|
|
|
binf.getBattGroupId(),
|
uinf.getUId(),
|
|
(bmd.getPage().getPageCurr() - 1)* bmd.getPage().getPageSize(),
|
bmd.getPage().getPageSize()},
|
new CallBack() {
|
public List getResults(ResultSet rs) {
|
List list = new ArrayList();
|
try {
|
while (rs.next()) {
|
String name="未知"; //存放告警名称
|
String type="未知"; //存放告警等级
|
Batt_Maint_Dealarm bmd = new Batt_Maint_Dealarm();
|
BattInf binf = new BattInf();
|
binf.setStationName(rs.getString("stationName"));
|
binf.setStationName1(rs.getString("stationName1"));
|
binf.setStationName2(rs.getString("stationName2"));
|
binf.setStationName3(rs.getString("stationName3"));
|
binf.setStationName5(rs.getString("stationName5"));
|
binf.setBattGroupName(rs.getString("battGroupName"));
|
|
Battalarm_data_history adata_H = new Battalarm_data_history();
|
adata_H.setNum(rs.getInt("num"));
|
adata_H.setBattGroupId(rs.getInt("battGroupId"));
|
adata_H.setAlm_signal_id(rs.getInt("alm_signal_id"));
|
adata_H.setMonNum(rs.getInt("monNum"));
|
adata_H.setAlm_value(rs.getFloat("alm_value"));
|
adata_H.setAlm_level(rs.getInt("alm_level"));
|
adata_H.setAlm_is_confirmed(rs.getInt("alm_is_confirmed"));
|
adata_H.setAlm_confirmed_time(rs.getTimestamp("alm_confirmed_time"));
|
adata_H.setAlm_start_time(rs.getTimestamp("alm_start_time"));
|
adata_H.setAlm_end_time(rs.getTimestamp("alm_end_time"));
|
//battinf中的StationName8,StationName9存放告警名称和等级
|
name=AlarmDaoFactory.getAlarmName(adata_H.getAlm_signal_id());
|
type=AlarmDaoFactory.getAlarmType(adata_H.getAlm_level());
|
binf.setStationName8(name);
|
binf.setStationName9(type);
|
|
Page page = new Page();
|
bmd.setBinf(binf);
|
bmd.setAdata_H(adata_H);
|
|
bmd.setPage(page);
|
list.add(bmd);
|
}
|
} 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).getPage().setPageAll(number);
|
}
|
return list;
|
}
|
public static void main(String[] args) throws ParseException {
|
Battalarm_data_historyImpl bimpl=new Battalarm_data_historyImpl();
|
Page p = new Page();
|
p.setPageCurr(1);
|
p.setPageSize(1000);
|
/*条件所存放的位置前台:tb_batt_maint_inf
|
* 在线电压:usr_id
|
* 组端电压:fault_type_id
|
* 充电电流:fault_level
|
* 放电电流:record_uid
|
* 单体电压:maint_type_id
|
* 单体温度:maint_done
|
* 单体内阻:maint_close
|
* 连接条阻抗:master_id
|
* */
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
Date date1 = sdf.parse("2000-01-01");
|
Date date2 = sdf.parse("2020-01-01");
|
Batt_maint_inf mainf=new Batt_maint_inf();
|
mainf.setUsr_id(119001);
|
mainf.setFault_type_id(119002);
|
mainf.setFault_level(119003);
|
mainf.setRecord_uid(119004);
|
mainf.setMaint_type_id(119005);
|
mainf.setMaint_done(119006);
|
mainf.setMaint_close(119007);
|
mainf.setMaster_id(119008);
|
|
|
mainf.setNum(1);
|
mainf.setBattGroupId(2);
|
mainf.setMaster_audit(3);
|
mainf.setAppoint_uid(4);
|
|
Battalarm_data_history adata = new Battalarm_data_history();
|
adata.setAlm_id(0); //下限告警未选中
|
adata.setAlm_signal_id(1); //上限告警选中
|
adata.setAlm_cleared_type(100);
|
adata.setAlm_start_time(ActionUtil.getSimpDate(date1));
|
adata.setAlm_start_time1(ActionUtil.getSimpDate(date2));
|
|
BattInf binf = new BattInf();
|
|
binf.setStationName("");
|
binf.setStationName1("");
|
binf.setStationName2("");
|
binf.setStationName3("");
|
binf.setStationName5("");
|
binf.setBattGroupId(0);
|
|
|
User_inf uinf=new User_inf();
|
uinf.setUId(1002);
|
Batt_Maint_Dealarm bmd = new Batt_Maint_Dealarm();
|
bmd.setPage(p);
|
bmd.setAdata_H(adata);
|
bmd.setMainf(mainf);
|
bmd.setBinf(binf);
|
bmd.setUinf(uinf);
|
List<Batt_Maint_Dealarm> list=bimpl.serchByInfo(bmd);
|
for (Batt_Maint_Dealarm b : list) {
|
System.out.println(b.getPage());
|
}
|
}
|
}
|