package com.fgkj.dao.impl; 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.BaseDAO; import com.fgkj.dao.CallBack; import com.fgkj.dao.DAOHelper; import com.fgkj.db.DBUtil; import com.fgkj.db.IDatabaseName; import com.fgkj.dto.BattInf; import com.fgkj.dto.Task_Batt_Test; import com.fgkj.dto.User_inf; import com.fgkj.dto.User_task; import com.fgkj.dto.User_task_batt_template; import com.fgkj.dto.User_task_batt_test; import com.fgkj.dto.User_task_user_list; import com.fgkj.services.User_task_batt_testService; import com.sun.org.apache.bcel.internal.generic.GETSTATIC; public class User_task_batt_testImpl implements BaseDAO,CallBack{ public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ Task_Batt_Test tbt=new Task_Batt_Test(); User_task_batt_test utest=new User_task_batt_test(); utest.setNum(rs.getInt("num")); utest.setTask_id(rs.getInt("task_id")); utest.setTask_usr_ids(rs.getString("task_usr_ids")); utest.setBattGroupId(rs.getInt("BattGroupId")); utest.setTask_enabled(rs.getInt("task_enabled")); utest.setTask_exe_date(rs.getTimestamp("task_exe_date")); utest.setTask_close_date(rs.getTimestamp("task_close_date")); utest.setTask_notice_starttime(rs.getTimestamp("task_notice_starttime")); utest.setTask_notice_endtime(rs.getTimestamp("task_notice_endtime")); utest.setTask_notice_count(rs.getInt("task_notice_count")); utest.setTask_notice_latesttime(rs.getTimestamp("task_notice_latesttime")); utest.setTask_notice_master(rs.getInt("task_notice_master")); utest.setTest_complete(rs.getInt("test_complete")); utest.setTest_completetime(rs.getTimestamp("test_completetime")); utest.setTest_starttime(rs.getTimestamp("test_starttime")); utest.setTest_record_count_id(rs.getInt("test_record_count_id")); utest.setNote(rs.getString("note")); BattInf binf=new BattInf(); binf.setBattGroupId(rs.getInt("battGroupId")); binf.setStationName(rs.getString("stationName")); binf.setBattGroupName(rs.getString("battGroupName")); tbt.setBinf(binf); tbt.setUtest(utest); list.add(tbt); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } public boolean add(Object obj) { User_task_batt_test utest=(User_task_batt_test) obj; String sql="insert into db_user.tb_user_task_batt_test(task_id,task_usr_ids,BattGroupId,task_enabled,task_exe_date,task_close_date," + "task_notice_starttime,task_notice_endtime,task_notice_count,task_notice_latesttime,task_notice_master,test_complete," + "test_completetime,test_starttime,test_record_count_id,note) values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)"; Boolean bl=DAOHelper.executeUpdate(DBUtil.getConn(), sql, new Object[]{utest.getTask_id(),utest.getTask_usr_ids(), utest.getBattGroupId(),utest.getTask_enabled(),utest.getTask_exe_date(),utest.getTask_close_date(),utest.getTask_notice_starttime(), utest.getTask_notice_endtime(),utest.getTask_notice_count(),utest.getTask_notice_latesttime(),utest.getTask_notice_master(), utest.getTest_complete(),utest.getTest_completetime(),utest.getTest_starttime(),utest.getTest_record_count_id(),utest.getNote()}); return bl; } //4.1添加作业并确定 public String addPro(Object obj) { User_task_batt_test utest=(User_task_batt_test) obj; String sql="insert into db_user.tb_user_task_batt_test(task_id,task_usr_ids,BattGroupId,task_enabled,task_exe_date,task_close_date," + "task_notice_starttime,task_notice_endtime,task_notice_count,task_notice_latesttime,task_notice_master,test_complete," + "test_completetime,test_starttime,test_record_count_id,note) values("+utest.getTask_id()+",'"+utest.getTask_usr_ids()+"',"+ utest.getBattGroupId()+","+utest.getTask_enabled()+",'"+DAOHelper.sdf.format(utest.getTask_exe_date())+"','"+DAOHelper.sdf.format(utest.getTask_close_date())+"','"+DAOHelper.sdf.format(utest.getTask_notice_starttime())+"','"+ DAOHelper.sdf.format(utest.getTask_notice_endtime())+"',"+utest.getTask_notice_count()+",'"+DAOHelper.sdf.format(utest.getTask_notice_latesttime())+"',"+utest.getTask_notice_master()+","+ utest.getTest_complete()+",'"+DAOHelper.sdf.format(utest.getTest_completetime())+"','"+DAOHelper.sdf.format(utest.getTest_starttime())+"',"+utest.getTest_record_count_id()+",'"+utest.getNote()+"')"; return sql; } public boolean update(Object obj) { User_task_batt_test utest=(User_task_batt_test) obj; String sql="update db_user.tb_user_task_batt_test set task_id=?,task_usr_ids=?,BattGroupId=?,task_enabled=?,task_exe_date=?,task_close_date=?," + "task_notice_starttime=?,task_notice_endtime=?,task_notice_count=?,task_notice_latesttime=?,task_notice_master=?,test_complete=?," + "test_completetime=?,test_starttime=?,test_record_count_id=?,note=? where num=?"; Boolean bl=DAOHelper.executeUpdate(DBUtil.getConn(), sql, new Object[]{utest.getTask_id(),utest.getTask_usr_ids(), utest.getBattGroupId(),utest.getTask_enabled(),utest.getTask_exe_date(),utest.getTask_close_date(),utest.getTask_notice_starttime(), utest.getTask_notice_endtime(),utest.getTask_notice_count(),utest.getTask_notice_latesttime(),utest.getTask_notice_master(), utest.getTest_complete(),utest.getTest_completetime(),utest.getTest_starttime(),utest.getTest_record_count_id(),utest.getNote(), utest.getNum()}); return bl; } //4.1作业管理(修改执行人)(暂待定) public boolean updateUser(Object obj) { User_task_batt_test utest=(User_task_batt_test) obj; String sql="update db_user.tb_user_task_batt_test set task_usr_ids=? where task_id=? "; Boolean bl=DAOHelper.executeUpdate(DBUtil.getConn(), sql, new Object[]{utest.getTask_usr_ids() ,utest.getTask_id()}); return bl; } //4.1作业管理(作业变更申请中的修改) public boolean updateTask(Object obj) { User_task_batt_test utest=(User_task_batt_test) obj; String sql="update db_user.tb_user_task_batt_test set task_usr_ids=?,task_exe_date=? where num=?"; Boolean bl=DAOHelper.executeUpdate(DBUtil.getConn(), sql, new Object[]{utest.getTask_usr_ids() ,utest.getTask_exe_date(),utest.getNum()}); return bl; } //4.1作业管理(作业删除) public boolean del(Object obj) { User_task_batt_test utest=(User_task_batt_test) obj; String sql="delete from db_user.tb_user_task_batt_test where num=?"; Boolean bl=DAOHelper.executeUpdate(DBUtil.getConn(), sql, new Object[]{utest.getNum()}); return bl; } public List searchAll() { String sql="select * from db_user.tb_user_task_batt_test"; List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), null, new User_task_batt_testImpl()); return list; } //4.1根据task_id查询user_task_batt_test信息 public List serchByCondition(Object obj) { User_task utask=(User_task) obj; //System.out.println(utask); String sql="select distinct(task_id),tb_user_task_batt_test.num,task_usr_ids,tb_user_task_batt_test.BattGroupId,task_enabled,task_exe_date,task_close_date," + "task_notice_starttime,task_notice_endtime,task_notice_count,task_notice_latesttime,task_notice_master,test_complete," + "test_completetime,test_starttime,test_record_count_id,note," + "stationname ,battgroupname " + "from db_user.tb_user_task_batt_test,db_battinf.tb_battinf " + "where tb_user_task_batt_test.battgroupid=db_battinf.tb_battinf.battgroupid and task_id=? " + "order by task_id "; List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{utask.getTask_id()}, new User_task_batt_testImpl()); //System.out.println(list.size()); return list; } //4.6作业报表(根据电池组信息以及统计方式查询user_task_batt_test信息) public List serchByInfo(Object obj) { Task_Batt_Test tbt=(Task_Batt_Test) obj; //System.out.println(tbt.getUinf()); User_inf uinf=tbt.getUinf(); final BattInf binf=tbt.getBinf(); final User_task_batt_test utest=tbt.getUtest(); String sql=""; String baseSql="select distinct(tb_user_task_batt_test.BattGroupId),task_id,task_usr_ids,task_enabled,task_exe_date,task_close_date,task_notice_starttime,task_notice_endtime,task_notice_count,task_notice_latesttime,task_notice_master,test_complete,test_completetime,test_starttime,test_record_count_id,note " + "from db_user.tb_user_task_batt_test ,db_battinf.tb_battinf " + "where tb_user_task_batt_test.BattGroupId=db_battinf.tb_battinf.BattGroupId " + "and (battproductdate)>=(?) and (battproductdate)<=(?) " + "and (battinusedate)>=(?) and (battinusedate)<=(?) " + "and (task_exe_date)>=(?) and (task_exe_date)<=(?) "; //用于维护区 String station1SqlT=" and stationname1!=? ";//全部 String station1SqlF=" and stationname1=? "; if(binf.getStationName1().equals("")){ baseSql+=station1SqlT; }else{ baseSql+=station1SqlF; } //用于机房站点 String stationSqlT=" and stationname!=? ";//全部 String stationSqlF=" and stationname=? "; if(binf.getStationName().equals("")){ baseSql+=stationSqlT; }else{ baseSql+=stationSqlF; } //用于电池类型 String producerSqlT=" and battproducer!=? ";//全部 String producerSqlF=" and battproducer=? "; if(binf.getBattProducer().equals("")){ baseSql+=producerSqlT; }else{ baseSql+=producerSqlF; } //用于包机人 String baojiSqlT=" and tb_user_task_batt_test.BattGroupId not 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_battgroup.baoji_group_id= db_user.tb_user_battgroup_baojigroup_usr.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=? ) "; String baojiSqlF=" and tb_user_task_batt_test.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_battgroup.baoji_group_id= db_user.tb_user_battgroup_baojigroup_usr.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=? and db_user.tb_user_inf.ubaojiusr=1 ) "; if(uinf.getUId()==0){ baseSql+=baojiSqlT; }else{ baseSql+=baojiSqlF; } //选择执行人 String userSqlT=" and task_usr_ids!=? "; String userSqlF=" and task_usr_ids=? "; if(utest.getTask_usr_ids().equals("0")){ baseSql+=userSqlT; }else{ baseSql+=userSqlF; } //作业完成状态 String compeleteSqlT=" and test_complete!=? ";//全部 String compeleteSqlF=" and test_complete=? ";//未完成/已完成 if(utest.getTest_complete()==100){ baseSql+=compeleteSqlT; }else{ baseSql+=compeleteSqlF; if(utest.getTest_complete()==2){ //及时完成的条件 String rightNowSql=" and (test_completetime)<=(task_close_date) "; baseSql+=rightNowSql; } } //选取蓄电池组条件 String idSqlT=" and db_battinf.tb_battinf.battgroupid!=? "; String idSqlF=" and db_battinf.tb_battinf.battgroupid=? "; if(binf.getBattGroupId()==0){ baseSql+=idSqlT; }else{ baseSql+=idSqlF; } //选取系统类型 String nameSqlT=" and BattGroupName1 like ? "; String nameSqlF=" and BattGroupName1 not like '%开关电源系统%' and BattGroupName1 not like '%UPS系统%' and BattGroupName1 not like ? "; if(binf.getBattGroupName1().equals("其他")){ baseSql+=nameSqlF; }else{ baseSql+=nameSqlT; } //用于单体电压 String volSqlT=" and monVolStd!=? ";//全部 String volSqlF=" and monVolStd=?" ; if(binf.getMonVolStd()==0){ baseSql+=volSqlT; }else{ baseSql+=volSqlF; } //用于电池容量 String capSqlT=" and monCapStd!=? ";//全部 String capSqlF=" and monCapStd=?" ; if(binf.getMonCapStd()==0){ baseSql+=capSqlT; }else{ baseSql+=capSqlF; } String endSql=" order by task_exe_date "; sql=baseSql+endSql; //System.out.println("utest: "+sql); List list=DAOHelper.executeQuery(sql, DBUtil.getConn(), new Object[]{ binf.getBattProductDate(), binf.getBattProductDate1(), binf.getBattInUseDate(), binf.getBattInUseDate1(), utest.getTask_exe_date(), utest.getTask_exe_date1(), binf.getStationName1(), binf.getStationName(), binf.getBattProducer(), uinf.getUId(), utest.getTask_usr_ids(), utest.getTest_complete(), binf.getBattGroupId(), "%"+binf.getBattGroupName1()+"%", binf.getMonVolStd(), binf.getMonCapStd(), },new CallBack() { public List getResults(ResultSet rs) { List list=new ArrayList(); try { while(rs.next()){ Task_Batt_Test tbt=new Task_Batt_Test(); User_task_batt_test u=new User_task_batt_test(); u.setTask_id(rs.getInt("task_id")); u.setTask_usr_ids(rs.getString("task_usr_ids")); u.setBattGroupId(rs.getInt("BattGroupId")); u.setTask_enabled(rs.getInt("task_enabled")); u.setTask_exe_date(rs.getTimestamp("task_exe_date")); u.setTask_close_date(rs.getTimestamp("task_close_date")); u.setTask_notice_starttime(rs.getTimestamp("task_notice_starttime")); u.setTask_notice_endtime(rs.getTimestamp("task_notice_endtime")); u.setTask_notice_count(rs.getInt("task_notice_count")); u.setTask_notice_latesttime(rs.getTimestamp("task_notice_latesttime")); u.setTask_notice_master(rs.getInt("task_notice_master")); u.setTest_complete(rs.getInt("test_complete")); u.setTest_completetime(rs.getTimestamp("test_completetime")); u.setTest_starttime(rs.getTimestamp("test_starttime")); u.setTest_record_count_id(rs.getInt("test_record_count_id")); u.setNote(utest.getNote()); BattInf b=new BattInf(); if(binf.getStationName1().equals("")){ b.setStationName1("全部"); }else{ b.setStationName1(binf.getStationName1()); } if(binf.getStationName().equals("")){ b.setStationName("全部"); }else{ b.setStationName(binf.getStationName()); } if(binf.getBattGroupId()==0){ b.setBattGroupName("全部"); }else{ b.setBattGroupName(binf.getBattGroupName()); } if(binf.getSignalName().equals("")){ b.setSignalName("全部"); }else{ b.setSignalName(binf.getSignalName()); } tbt.setBinf(b); tbt.setUtest(u); list.add(tbt); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }); return list; } public static void main(String[] args) throws ParseException { User_task_batt_testService us = new User_task_batt_testService(); /*User_task_batt_test u=new User_task_batt_test(); u.setNum(10578); us.serchByCondition(u); //us.searchAll();*/ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Date date1 = sdf.parse("2000-01-01"); Date date2 = sdf.parse("2016-11-30"); Date date3 = sdf.parse("2000-01-01"); Date date4 = sdf.parse("2016-11-30"); User_task_batt_test utest=new User_task_batt_test(); utest.setTask_usr_ids("0"); utest.setTest_complete(100);//已完成:1 未完成:0 全部:100 utest.setTask_exe_date(date3); utest.setTask_exe_date1(date4); utest.setNote("1");//1:按月份 2:按季度 3:按年份 BattInf binf = new BattInf(); binf.setStationName(""); binf.setStationName1(""); binf.setBattGroupName("");//电池组名 binf.setSignalName("");//执行人 binf.setBattGroupId(0); binf.setBattGroupName1(""); binf.setBattProducer(""); binf.setMonCapStd(0f); binf.setMonVolStd(0f); binf.setBattProductDate(ActionUtil.getSimpDate(date1)); binf.setBattProductDate1(ActionUtil.getSimpDate(date2)); binf.setBattInUseDate(ActionUtil.getSimpDate(date1)); binf.setBattInUseDate1(ActionUtil.getSimpDate(date2)); User_inf uinf=new User_inf(); uinf.setUId(0); Task_Batt_Test tbt=new Task_Batt_Test(); tbt.setBinf(binf); tbt.setUtest(utest); tbt.setUinf(uinf); us.serchByInfo(tbt); } }