package com.fgkj.services; 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.BaseDAOFactory; import com.fgkj.dao.DAOHelper; import com.fgkj.dao.UinfDaoFactory; import com.fgkj.dao.impl.BattInfImpl; import com.fgkj.dao.impl.Batt_devalarm_dataImpl; import com.fgkj.dao.impl.Battalarm_dataDAOImpl; import com.fgkj.db.DBUtil; import com.fgkj.db.IDatabaseName; import com.fgkj.dto.BattInf; import com.fgkj.dto.Batt_Maint_Dealarm; import com.fgkj.dto.Batt_devalarm_data; import com.fgkj.dto.Batt_maint_inf; import com.fgkj.dto.Batt_maintenance_inf; import com.fgkj.dto.Batt_rtstate; import com.fgkj.dto.Battalarm_data; import com.fgkj.dto.Batttestdata_inf; import com.fgkj.dto.Page; import com.fgkj.dto.ServiceModel; import com.fgkj.dto.User; import com.fgkj.dto.User_inf; import com.fgkj.dto.User_log; public class Battalarm_dataService { private ServiceModel model; private BaseDAO dao; public Battalarm_dataService() { model=new ServiceModel(); dao=BaseDAOFactory.getBaseDAO(BaseDAO.BATTALARM_DATA); } public ServiceModel add(Object obj) { Boolean bl=dao.add(obj); if(bl){ model.setCode(1); model.setMsg("添加成功!"); } else{ model.setMsg("添加失败!"); } return model; } // 3.1电池告警实时查询(确认告警) public ServiceModel update(Object obj) { boolean flag=true; List list=(List)obj; if(list!=null && list.size()>0){ for (int i = 0; i < list.size(); i++) { if(!dao.update(list.get(i))){ flag=false; } } }else{ flag=false; } if(flag){ model.setCode(1); model.setMsg("修改成功!"); } else{ model.setMsg("修改失败!"); } return model; } //3.1电池告警实时查询(确认告警)(多条记录) public ServiceModel updatePro(Object obj) { List list=(List) obj; ArrayList str_sql=new ArrayList(); List listU=new ArrayList();//存放user_log if(list!=null&&list.size()>0){ for(int i=0;i list=(List) obj; ArrayList str_sql=new ArrayList(); List listU=new ArrayList();//存放user_log if(list!=null&&list.size()>0){ for(int i=0;i list=dao.serchByCondition(obj); String name="未知";//存放告警名称 String type="未知";//存放告警等级 String stationName="";//机房站点 String battgroupName="";//蓄电池组名 /*battinf中的StationName8,StationName9存放告警名称和等级*/ if(list!=null && list.size()>1){ for(int i=0;i0){ stationName=((BattInf)listB.get(0)).getStationName(); battgroupName=((BattInf)listB.get(0)).getBattGroupName(); } name=AlarmDaoFactory.getAlarmName(adata.getAlm_signal_id()); type=AlarmDaoFactory.getAlarmType(adata.getAlm_level()); binf.setStationName(stationName); binf.setBattGroupName(battgroupName); binf.setStationName8(name); binf.setStationName9(type); } model.setCode(1); model.setData(list); }else { model.setCode(0); model.setData(list); } return model; } //3.1电池告警实时查询 public ServiceModel serchByCondition(Object obj){ model=new ServiceModel(); List list=dao.serchByCondition(obj); if(list!=null && list.size()>1){ model.setCode(1); model.setData(list); }else { model.setCode(0); model.setData(list); } return model; } //3.1电池告警实时查询<***********跨域专用**************> public ServiceModel serchByCondition_ky(Object obj){ model=new ServiceModel(); List list=((Battalarm_dataDAOImpl)dao).serchByCondition_ky(obj); if(list!=null && list.size()>1){ model.setCode(1); model.setData(list); model.setMsg("查询成功!"); }else { model.setCode(0); model.setData(list); model.setMsg("查询失败!"); } return model; } //3.2电池告警历史记录查询 public ServiceModel serchByInfo(Object obj){ List list=dao.serchByInfo(obj); if(list!=null && list.size()>0){ model.setCode(1); model.setData(list); }else{ model.setCode(0); model.setMsg("查询失败!"); } return model; } public ServiceModel serch(Object obj){ Battalarm_data bdata=(Battalarm_data) obj; //告警记录总数 List list=((Battalarm_dataDAOImpl)dao).serchByBatt(bdata); //新增告警记录条数 List list1=((Battalarm_dataDAOImpl)dao).serchByAlmType(bdata); model=new ServiceModel(); if(list!=null && list.size()>0){ model.setCode(1); model.setSum(list.size()); model.setNewsum(list1.size()); model.setData(list.get(list.size()-1)); } else{ model.setCode(0); model.setSum(0); model.setNewsum(0); } return model; } //0.5查询实时告警数(电池告警率) public ServiceModel serchAlm(Object obj){ Battalarm_data adata=new Battalarm_data(); adata.setNum(0);//实时告警总数 adata.setBattGroupId(0);//容量告警告警数 adata.setMonNum(0);//组端电压告警数 adata.setAlm_id(0);//充电电流告警数 adata.setAlm_signal_id(0);//放电电流告警数 adata.setAlm_level(0);//单体电压告警数 adata.setAlm_is_confirmed(0);//单体温度告警数 adata.setAlm_cleared_type(0);//单体内阻告警数 adata.setUsr_Id(0);//连接条阻抗告警数 adata.setAlm_value(0f);//容量更换告警 adata.setRecord_Id(0l);//在线电压告警数 int numZ=0;//告警总数 //求八种类型告警的数量 List list=((Battalarm_dataDAOImpl)dao).serchAlm(obj); if(list!=null&&list.size()>0){ for(int i=0;i list=((Battalarm_dataDAOImpl)dao).serchRealTime(obj); if(list.size()>0&&list!=null){ model.setCode(1); model.setSum(list.get(0).getNum()); }else{ model.setCode(0); model.setMsg("查询失败!"); } return model; } public ServiceModel searchAll(){ List list=dao.searchAll(); if(list!=null && list.size()>0){ model.setCode(1); model.setData(list); } return model; } //饼状图电池单体健康率 public ServiceModel serchGood(Object obj){ List list=((Battalarm_dataDAOImpl)dao).serchGood(obj);//单体容量告警和单体告警告警 int moncounts=(new BattInfImpl()).serchMonAll(obj);//总单体数 model.setCode(1); model.setSum(moncounts); model.setData(list); //System.out.println(model); return model; } //取消告警 public ServiceModel cancelalarm(Object obj){ boolean flag=true; if(obj!=null){ List list=(List)obj; if(list!=null && list.size()>0){ for (int i = 0; i < list.size(); i++) { if(!((Battalarm_dataDAOImpl)dao).cancelalarm(list.get(i))){ flag=false; } } }else{ flag=false; } }else{ flag=false; } if(flag){ model.setCode(1); model.setMsg("操作成功!"); } else{ model.setMsg("操作失败!"); } return model; } //取消告警(多条记录) public ServiceModel cancelalarmPro(Object obj) { List list=(List) obj; ArrayList str_sql=new ArrayList(); List listU=new ArrayList();//存放user_log if(list!=null&&list.size()>0){ for(int i=0;i lista=((Battalarm_dataDAOImpl)dao).serchTopAlmInBatt(); List listd=(new Batt_devalarm_dataImpl()).serchTopAlmInDev(); String adataStr="";//最后的电池告警字符串 String ddataStr="";//最后的设备告警字符串 if(lista.size()>0&&lista!=null&&listd.size()>0&&listd!=null){ model.setCode(1); Battalarm_data adata=lista.get(lista.size()-1); Batt_devalarm_data ddata= listd.get(listd.size()-1); int flag=ActionUtil.compareDate(adata.getAlm_start_time(),ddata.getAlm_start_time()); if(flag==1){ model.setData(adata); adataStr=adata.getStationname() +"在"+ActionUtil.chageDateToString(adata.getAlm_start_time(), ActionUtil.time_yyyyMMddHHmmss) +"出现了"+AlarmDaoFactory.getAlarmName(adata.getAlm_signal_id()) +"告警"; model.setMsg(adataStr); model.setSum(0);//0表示电池告警 }else{ model.setData(ddata); ddataStr=""+ddata.getStationName() // 机房名称 +"在"+ActionUtil.chageDateToString(ddata.getAlm_start_time(), ActionUtil.time_yyyyMMddHHmmss) // 告警开始时间 +"出现了"+AlarmDaoFactory.getdevName(ddata.getAlm_type()) // 告警类型名称 +"告警!"; model.setMsg(ddataStr); model.setSum(1);//1表示设备告警 } }else if(lista==null&&listd.size()>0&&listd!=null){ Batt_devalarm_data ddata= listd.get(listd.size()-1); model.setData(ddata); ddataStr=ddata.getStationName() +"在"+ActionUtil.chageDateToString(ddata.getAlm_start_time(), ActionUtil.time_yyyyMMddHHmmss) +"出现了"+AlarmDaoFactory.getdevName(ddata.getAlm_type()) +"告警!"; model.setMsg(ddataStr); model.setSum(1);//1表示设备告警 }else if(listd==null&&lista.size()>0&&lista!=null){ Battalarm_data adata=lista.get(lista.size()-1); model.setData(adata); adataStr=adata.getStationname() +"在"+ActionUtil.chageDateToString(adata.getAlm_start_time(), ActionUtil.time_yyyyMMddHHmmss) +"出现了"+AlarmDaoFactory.getAlarmName(adata.getAlm_signal_id()) +"告警!"; model.setMsg(adataStr); model.setSum(0);//0表示电池告警 }else{ model.setCode(0); model.setMsg("没有最新的告警!"); } return model; } //项目下方的滚动,查询最新电池告警(电池告警和设备告警筛选出最新的五条) public ServiceModel serchTopAlmTen(Object obj){ List lista=((Battalarm_dataDAOImpl)dao).serchTopBattTen(obj); List listd=(new Batt_devalarm_dataImpl()).serchTopDevTen(obj); if(listd!=null&&listd.size()>0){ for (Batt_devalarm_data ddata : listd) { Battalarm_data data=new Battalarm_data(); data.setAlm_id(ddata.getDev_id()); data.setNote(ddata.getNote()); data.setNum(ddata.getNum());//1表示设备告警 data.setAlm_start_time(ddata.getAlm_start_time()); data.setAlm_signal_id(ddata.getAlm_type()); lista.add(data); } } if(lista!=null&&lista.size()>0){ model.setCode(1); model.setData(lista); model.setMsg("查询成功!"); }else{ model.setCode(0); model.setMsg("查询失败!"); } return model; } //告警发声(30秒之内的告警) public ServiceModel serchIn30(Object obj){ List lista=((Battalarm_dataDAOImpl)dao).serchIn30(obj); List listd=(new Batt_devalarm_dataImpl()).serchIn30(obj); if(listd!=null&&listd.size()>0){ for (Batt_devalarm_data ddata : listd) { Battalarm_data data=new Battalarm_data(); data.setAlm_id(ddata.getDev_id()); data.setNote(ddata.getNote()); data.setNum(ddata.getNum());//1表示设备告警 data.setAlm_start_time(ddata.getAlm_start_time()); data.setAlm_signal_id(ddata.getAlm_type()); lista.add(data); } } if(lista!=null&&lista.size()>0){ model.setCode(1); model.setData(lista); model.setMsg("查询成功!"); }else{ model.setCode(0); model.setMsg("查询失败!"); } return model; } //点击项目下方的滚动,查询该条告警的实时信息 public ServiceModel serchBatt_alarm(Object obj){ List list=((Battalarm_dataDAOImpl)dao).serchBatt_alarm(obj); if(list!=null && list.size()>0){ model.setCode(1); model.setData(list); model.setMsg("查询成功!"); }else{ model.setCode(0); model.setMsg("查询失败!"); } return model; } public static void main(String[] args) throws ParseException { Battalarm_dataService bs=new Battalarm_dataService(); Page p = new Page(); p.setPageCurr(1); p.setPageSize(10); /*条件所存放的位置前台: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("2017-12-09"); Batt_maint_inf mainf=new Batt_maint_inf(); mainf.setUsr_id(0); mainf.setFault_type_id(0); mainf.setFault_level(0); mainf.setRecord_uid(0); mainf.setMaint_type_id(0); mainf.setMaint_done(0); mainf.setMaint_close(0); mainf.setMaster_id(119008); mainf.setNum(1); mainf.setBattGroupId(2); mainf.setMaster_audit(3); mainf.setAppoint_uid(4); mainf.setRemark("100"); mainf.setMaint_done_time(ActionUtil.getSimpDate(date1)); mainf.setMaint_done_time1(ActionUtil.getSimpDate(date2)); Battalarm_data adata = new Battalarm_data(); adata.setAlm_id(1);//下限告警未选中 adata.setAlm_signal_id(0);//上限告警选中 adata.setUsr_Id(100);//全部包机人 adata.setAlm_cleared_type(100);//告警 adata.setAlm_start_time(ActionUtil.getSimpDate(date1)); adata.setAlm_start_time1(ActionUtil.getSimpDate(date2)); adata.setMonNum(0); adata.setRecord_Id(0l); BattInf binf = new BattInf(); binf.setStationName(""); binf.setStationName1(""); 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)); Batttestdata_inf tdata=new Batttestdata_inf(); tdata.setTest_type(0); tdata.setTest_starttype(0); tdata.setRecord_time(ActionUtil.getSimpDate(date1)); tdata.setRecord_time1(ActionUtil.getSimpDate(date2)); User_inf uinf=new User_inf(); uinf.setUId(1002); Batt_Maint_Dealarm bmd = new Batt_Maint_Dealarm(); bmd.setPage(p); bmd.setAdata(adata); bmd.setMainf(mainf); bmd.setBinf(binf); bmd.setTdata(tdata); bmd.setUinf(uinf); //System.out.println(bmd); //bs.serchByCondition(bmd); //bs.serchByInfo(bmd); bs.serchAlm(uinf); //bs.serchGood(); //bs.serchTopAlmTen(uinf); } }