whycxzp
2020-12-11 2eb842765ef0b02db32ed2aada6e933d51106547
update api
15个文件已修改
1484 ■■■■ 已修改文件
src/main/java/com/fgkj/controller/Batt_devalarm_dataController.java 38 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fgkj/dto/Batt_devalarm_data_history.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fgkj/dto/ServiceModel.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fgkj/mapper/impl/Batt_devalarm_dataMapper.java 259 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fgkj/mapper/impl/Batt_devalarm_data_historyMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fgkj/mapper/impl/Battalarm_dataMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fgkj/mapper/impl/User_logMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fgkj/services/Batt_devalarm_dataService.java 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fgkj/services/Batt_devalarm_data_historyService.java 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fgkj/services/User_logService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BattAlarmDataMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BattAttentionMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BattDevAlarmDataHistoryMapper.xml 128 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BattDevAlarmDataMapper.xml 833 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fgkj/controller/Batt_devalarm_dataController.java
@@ -1,18 +1,14 @@
package com.fgkj.controller;
import com.fgkj.util.*;
import com.fgkj.dto.*;
import com.fgkj.services.Batt_devalarm_dataService;
import com.fgkj.services.Battalarm_dataService;
import com.fgkj.util.ActionUtil;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import javax.annotation.Resource;
import java.util.List;
@RequestMapping("battDevAlarmData")
@RestController
@@ -28,8 +24,7 @@
    
    //3.3设备告警实时查询
    @GetMapping("byInfo")
    public ServiceModel serchByInfo(@RequestBody Batt_devalarm_data bdd) {
        // Batt_devalarm_data bdd  = getGson().fromJson(json, Batt_devalarm_data.class);
    public ServiceModel getByInfo(@RequestBody Batt_devalarm_data bdd) {
        User_inf uinf=(User_inf) ActionUtil.getUser();
        bdd.setUinf(uinf);
        ServiceModel model= service.serchByInfo(bdd);        
@@ -40,7 +35,6 @@
    //3.4设备告警历史记录查询
    @GetMapping("byCondition")
    public ServiceModel serchByCondition(@RequestBody Batt_Maint_Dealarm bmd) {
        // Batt_Maint_Dealarm bmd = getGson("yyyy-MM-dd HH:mm:ss").fromJson(json, Batt_Maint_Dealarm.class);
        User_inf uinf=(User_inf) ActionUtil.getUser();
        bmd.setUinf(uinf);
        ServiceModel model = service.serchByCondition(bmd);
@@ -49,27 +43,24 @@
    }
    
    //3.4设备实时告警(确认告警)<多数据修改>
    @PutMapping("/")
    @PutMapping("/batch")
    public ServiceModel updatePro(@RequestBody List<Batt_devalarm_data> list) {
        // List<Batt_devalarm_data> list = getGson().fromJson(json,new TypeToken<List<Batt_devalarm_data>>(){}.getType());
        ServiceModel model = service.updatePro(list);
        return model;
    }
    
    //3.4设备实时告警(取消告警)<多数据修改>
    @PutMapping("/cancel")
    @PutMapping("/cancelBatch")
    public ServiceModel cancelPro(@RequestBody List<Batt_devalarm_data> list) {
        // List<Batt_devalarm_data> list = getGson().fromJson(json,new TypeToken<List<Batt_devalarm_data>>(){}.getType());
        ServiceModel model = service.cancelPro(list);
        return model;
    }
    //3.4设备实时告警/历史告警(删除告警)<多数据删除>
    @DeleteMapping("/")
    @DeleteMapping("/batch")
    public ServiceModel deletePro(@RequestBody List<Batt_devalarm_data> list) {
        // List<Batt_devalarm_data> list = getGson().fromJson(json,new TypeToken<List<Batt_devalarm_data>>(){}.getType());
        ServiceModel model = service.deletePro(list);
        return model;
@@ -78,8 +69,8 @@
    //查询设备告警总数
    @GetMapping("nums")
    public ServiceModel searchNums() {
        User_inf uinf=(User_inf) ActionUtil.getUser();
        ServiceModel model = service.searchNums(uinf);
        User_inf userInf=(User_inf) ActionUtil.getUser();
        ServiceModel model = service.searchNums(userInf);
        return model;
    }
@@ -87,7 +78,6 @@
    //点击项目下方的滚动,查询该设备告警的实时信息
    @GetMapping("devAlarm")
    public ServiceModel serchDev_alarm(@RequestBody Batt_devalarm_data ddata) {
        // Batt_devalarm_data ddata=getGson("yyyy-MM-dd HH:mm:ss").fromJson(json, Batt_devalarm_data.class);
        ServiceModel model = service.serchDev_alarm(ddata);
        return model;
@@ -95,8 +85,7 @@
        
    //根据设备id查询设备是否存在设备告警
    @GetMapping("levelDevAlarmOrBattAlarm_ky")
    public String serchlevelDev_alarmOrBatt_alarm_ky(@RequestBody BattInf binf){
        // BattInf binf=getGson().fromJson(json, BattInf.class);
    public ServiceModel serchlevelDev_alarmOrBatt_alarm_ky(@RequestBody BattInf binf){
        int level_d=service.serchlevelDev_alarm(binf);
        int level_b=battAlarmDataService.serchlevelBatt_alarm(binf);
        String status="";
@@ -105,7 +94,7 @@
        }else{
            status=level_b+"级告警";
        }
        return status;
        return new ServiceModel().set(1,status);
    }
    /* 查询设备实时告警记录(跨域新增)
     * @param obj
@@ -113,7 +102,6 @@
     */
    @GetMapping("devAlarm_ky")
    public ServiceModel searchDevAlarm_ky(@RequestBody Batt_devalarm_data ddata ) {
        // Batt_devalarm_data ddata=getGson("yyyy-MM-dd HH:mm:ss").fromJson(json, Batt_devalarm_data.class);
        ServiceModel model = service.searchDevAlarm(ddata);
        return model;
@@ -122,14 +110,13 @@
    //3.4设备实时告警(确认告警)<多数据修改><-----------跨域------------->
    @PutMapping("ky")
    public ServiceModel updatePro_ky(@RequestBody List<Batt_devalarm_data> list) {
        // List<Batt_devalarm_data> list = getGson().fromJson(json,new TypeToken<List<Batt_devalarm_data>>(){}.getType());
        ServiceModel model = service.updatePro(list);
        return model;
    }
    
    //3.4设备实时告警(取消告警)<多数据修改><-----------跨域------------->
    @PutMapping("/cancel_ky")
    @PutMapping("/cancelBatch_ky")
    public ServiceModel cancelPro_ky(@RequestBody List<Batt_devalarm_data> list) {
        // List<Batt_devalarm_data> list = getGson().fromJson(json,new TypeToken<List<Batt_devalarm_data>>(){}.getType());
        ServiceModel model = service.cancelPro(list);
@@ -138,7 +125,7 @@
    }
    //3.4设备实时告警/(删除告警)<多数据删除><-----------跨域------------->
    @DeleteMapping("/ky")
    @DeleteMapping("/batch_ky")
    public ServiceModel deletePro_ky(@RequestBody List<Batt_devalarm_data> list) {
        // List<Batt_devalarm_data> list = getGson().fromJson(json,new TypeToken<List<Batt_devalarm_data>>(){}.getType());
        ServiceModel model = service.deletePro(list);
@@ -146,6 +133,7 @@
        return model;
    }
    //紫晶山西根据设备id和电池组id查询机房告警信息
    //TODO 暂不需要
    @GetMapping("stationAlarm")
    public ServiceModel seachStationAlarm(@RequestBody BattInf binf) {
        // BattInf binf = getGson(ActionUtil.time_yyyyMMddHHmmss).fromJson(json,BattInf.class);
src/main/java/com/fgkj/dto/Batt_devalarm_data_history.java
@@ -1,14 +1,14 @@
package com.fgkj.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.ibatis.type.Alias;
import java.io.Serializable;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
@Alias("Batt_devalarm_data_history")
public class Batt_devalarm_data_history implements Serializable{
    private Integer num;
    private Integer record_id;
    private Long record_id;
    private Integer dev_id;
    private String dev_ip;
    private Integer alm_type;
@@ -37,10 +37,10 @@
    public void setNum(Integer num) {
        this.num = num;
    }
    public Integer getRecord_id() {
    public Long getRecord_id() {
        return record_id;
    }
    public void setRecord_id(Integer record_id) {
    public void setRecord_id(Long record_id) {
        this.record_id = record_id;
    }
    public Integer getDev_id() {
src/main/java/com/fgkj/dto/ServiceModel.java
@@ -15,6 +15,12 @@
    // public Float lowCH;        //返回更换阈值
    // public Float lowRA;        //返回电导的告警阈值
    // public Float lowRH;        //返回电导的更换阈值
    public ServiceModel set(Integer code,Object data){
        this.code =code;
        this.data = data;
        return this;
    }
    
    public Integer getCode() {
        return code;
src/main/java/com/fgkj/mapper/impl/Batt_devalarm_dataMapper.java
@@ -1,8 +1,12 @@
package com.fgkj.mapper.impl;
import java.util.List;
import com.fgkj.dto.BattInf;
import com.fgkj.dto.Batt_Maint_Dealarm;
import com.fgkj.dto.Batt_devalarm_data;
import com.fgkj.dto.User_inf;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;
public interface Batt_devalarm_dataMapper{
@@ -13,269 +17,40 @@
    public boolean del(Object obj);
    
    //3.4设备实时告警(确认告警)<多数据修改>
    public String updatePro(Object obj);
    public int updatePro(List<Batt_devalarm_data> list);
    //3.4设备实时告警(取消告警)<多数据修改>
    public String cancelPro(Object obj);
    public int cancelPro(List<Batt_devalarm_data> list);
    //3.4设备实时告警/历史告警(删除告警)<多数据删除>
    public String delPro(Object obj);
    public int delPro(List<Batt_devalarm_data> list);
    //3.4设备告警历史记录查询
    /*时间段放在binf的getBattProductDate中*/
    /*public List serchByCondition(Object obj) {
        Batt_Maint_Dealarm bmd=(Batt_Maint_Dealarm) obj;
        BattInf binf=bmd.getBinf();
        Page page=bmd.getPage();
        Connection conn=DBUtil.getConn();
        String numberSql=" SELECT FOUND_ROWS() number";
        String sql="";
        String baseSql=" SELECT SQL_CALC_FOUND_ROWS tb_devalarm_data.num,record_id,dev_id,dev_ip,alm_type,alm_level,alm_start_time,alm_end_time," +
                " alm_is_confirmed,alm_confirmed_time,alm_cleared_type, " +
                " DISTINCTbinf.stationName,DISTINCTbinf.FbsDeviceName " +
                " FROM db_alarm.tb_devalarm_data,(SELECT DISTINCT db_battinf.tb_battinf.FbsDeviceId,db_battinf.tb_battinf.stationName,db_battinf.tb_battinf.FbsDeviceName from db_battinf.tb_battinf  where db_battinf.tb_battinf.StationName LIKE ?  AND db_battinf.tb_battinf.StationName1 LIKE ? )  as DISTINCTbinf    " +
                " WHERE  tb_devalarm_data.dev_id=DISTINCTbinf.FbsDeviceId  " +
                " AND alm_start_time>=? and alm_start_time<=? ";
        //历史告警
        String alarmTypeSql=" AND alm_cleared_type!=0";
        baseSql+=alarmTypeSql;
        //排序
        String endSql=" ORDER BY alm_start_time DESC ";
        //分页
        String limitSql=" LIMIT ?,? ";
        sql=baseSql+endSql+limitSql;
        List<Batt_devalarm_data> list=DateUtil.executeQueryLimit(sql, conn,new Object[]{"%"+binf.getStationName()+"%","%"+binf.getStationName1()+"%",binf.getBattProductDate(),binf.getBattProductDate1()
            ,(page.getPageCurr() - 1)*page.getPageSize()
            ,page.getPageSize()}, new CallBack() {
            public List getResults(ResultSet rs) {
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        Batt_devalarm_data ddata=new Batt_devalarm_data();
                        ddata.setNum(rs.getInt("num"));
                        ddata.setDev_id(rs.getInt("dev_id"));
                        ddata.setDev_ip(rs.getString("dev_ip"));
                        ddata.setAlm_type(rs.getInt("alm_type"));
                        ddata.setAlm_level(rs.getInt("alm_level"));
                        ddata.setAlm_start_time(rs.getTimestamp("alm_start_time"));
                        ddata.setAlm_end_time(rs.getTimestamp("alm_end_time"));
                        ddata.setAlm_is_confirmed(rs.getInt("alm_is_confirmed"));
                        ddata.setAlm_confirmed_time(rs.getTimestamp("alm_confirmed_time"));
                        ddata.setAlm_cleared_type(rs.getInt("alm_cleared_type"));
                        ddata.setDev_name(rs.getString("FbsDeviceName"));
                        ddata.setStationName(rs.getString("stationName"));
                        list.add(ddata);
                    }
                } 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).setUsr_id(number);
        }
        return list;
    }*/
    public List serchByCondition(Object obj);
    public List serchByCondition(Batt_Maint_Dealarm bmd);
    //3.3设备告警实时查询+筛选
    /*public List serchByInfo(Object obj) {
        Batt_devalarm_data ddata=(Batt_devalarm_data) obj;
        Page page=ddata.getPage();
        Connection conn=DBUtil.getConn();
        String numberSql=" SELECT FOUND_ROWS() number ";
        String sql="";
        String baseSql=" SELECT SQL_CALC_FOUND_ROWS tb_devalarm_data.num,dev_id,dev_ip,alm_type,alm_level,alm_start_time,alm_end_time," +
                " alm_is_confirmed,alm_confirmed_time,alm_cleared_type," +
                " DISTINCTbinf.stationName,DISTINCTbinf.FbsDeviceName  " +
                " FROM db_alarm.tb_devalarm_data,(SELECT DISTINCT db_battinf.tb_battinf.FbsDeviceId,db_battinf.tb_battinf.stationName,db_battinf.tb_battinf.FbsDeviceName from db_battinf.tb_battinf)  as DISTINCTbinf  " +
                " WHERE  " +
                " tb_devalarm_data.dev_id=DISTINCTbinf.FbsDeviceId " ;
        //设备实时告警
        String alarmTypeSql=" AND alm_cleared_type=0 ";
        baseSql+=alarmTypeSql;
        //排序
        String endSql=" ORDER BY alm_start_time DESC  ";
        //分页
        String limitSql=" LIMIT ?,? ";
        sql=baseSql+endSql+limitSql;
        List<Batt_devalarm_data> list=DateUtil.executeQueryLimit(sql, conn, new Object[]{(page.getPageCurr()-1)*page.getPageSize(),page.getPageSize()}, new CallBack() {
            public List getResults(ResultSet rs) {
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        Batt_devalarm_data ddata=new Batt_devalarm_data();
                        ddata.setNum(rs.getInt("num"));
                        ddata.setDev_id(rs.getInt("dev_id"));
                        ddata.setDev_ip(rs.getString("dev_ip"));
                        ddata.setAlm_type(rs.getInt("alm_type"));
                        ddata.setAlm_level(rs.getInt("alm_level"));
                        ddata.setAlm_start_time(rs.getTimestamp("alm_start_time"));
                        ddata.setAlm_end_time(rs.getTimestamp("alm_end_time"));
                        ddata.setAlm_is_confirmed(rs.getInt("alm_is_confirmed"));
                        ddata.setAlm_confirmed_time(rs.getTimestamp("alm_confirmed_time"));
                        ddata.setAlm_cleared_type(rs.getInt("alm_cleared_type"));
                        ddata.setDev_name(rs.getString("FbsDeviceName"));
                        ddata.setStationName(rs.getString("stationName"));
                        list.add(ddata);
                    }
                } 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).setUsr_id(number);
        }
        return list;
    }*/
    public List serchByInfo(Object obj);
    public List serchByInfo(Batt_devalarm_data bdd);
    //查询设备告警总数
    /*public int searchNums() {
        String sql="select count(num) as nums  " +
                "from db_alarm.tb_devalarm_data " +
                "where alm_cleared_type=0  " +
                "and tb_devalarm_data.dev_id in (select FbsDeviceId from db_battinf.tb_battinf ) " +
                "limit 1 ";
        //System.out.println(sql);
        List list=DateUtil.executeQuery(sql, DBUtil.getConn(), null, new CallBack() {
            public List getResults(ResultSet rs) {
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        int nums=rs.getInt("nums");
                        list.add(nums);
                    }
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                return list;
            }
        });
        int nums=0;//最后的结果
        if(list!=null&&list.size()>0){
            nums=(Integer) list.get(list.size()-1);
        }
        return nums;
    }*/
    public int searchNums(Object obj);
    public int searchNums(User_inf userInf);
    //项目下方的滚动,查询最新设备告警(旧版本)
    public List serchTopAlmInDev();
   
    //项目下方的滚动,查询最新设备告警
   /* public List serchTopDevTen(){
        String sql="select distinct db_alarm.tb_devalarm_data.dev_id,db_battinf.tb_battinf.stationname,db_battinf.tb_battinf.stationid,db_battinf.tb_battinf.fbsdevicename,dev_ip,alm_type,alm_start_time " +
                "  from db_alarm.tb_devalarm_data,db_battinf.tb_battinf" +
                "  where alm_cleared_type=0 " +
                "  and db_alarm.tb_devalarm_data.dev_id=db_battinf.tb_battinf.fbsdeviceid " +
                "  order by alm_start_time desc " +
                "  limit 0,5";
        List list=DateUtil.executeQuery(sql, DBUtil.getConn(), null, new CallBack() {
            public List getResults(ResultSet rs) {
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        Batt_devalarm_data ddata=new Batt_devalarm_data();
                        ddata.setNum(1);//1表示设备告警
                        ddata.setDev_id(rs.getInt("dev_id"));
                        ddata.setDev_ip(rs.getString("dev_ip"));
                        ddata.setDev_name(rs.getString("fbsdevicename"));
                        ddata.setStationName(rs.getString("stationName"));
                        ddata.setStationId(rs.getString("stationId"));
                        ddata.setAlm_type(rs.getInt("alm_type"));
                        ddata.setAlm_start_time(rs.getTimestamp("alm_start_time"));
                        String ddataStr=""+ddata.getStationName()    // 机房名称
                                +"在"+ActionUtil.chageDateToString(ddata.getAlm_start_time(), ActionUtil.time_yyyyMMddHHmmss)    // 告警开始时间
                                +"出现了"+AlarmDaoFactory.getdevName(ddata.getAlm_type()) // 告警类型名称
                                +"告警!";
                        ddata.setNote(ddataStr);
                        list.add(ddata);
                    }
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                return list;
            }
        });
        return list;
    }*/
    public List serchTopDevTen(Object obj);
    //项目下方的滚动,查询该设备告警的实时信息
    public List serchDev_alarm(Object obj);
    public List serchDev_alarm(Batt_devalarm_data ddata);
    //根据设备id查询设备是否存在设备告警
    public int serchlevelDev_alarm(Object obj);
    @Select("select count(num) from db_alarm.tb_devalarm_data where dev_id=#{fbsDeviceId}")
    public Integer serchlevelDev_alarm(BattInf binf);
    /**
     * 查询设备实时告警记录(跨域新增)
     * @param obj
     * @return
     */
    public List searchDevAlarm(Object obj);
    public List searchDevAlarm(Batt_devalarm_data ddata);
    //紫晶山西根据设备id和电池组id查询机房告警信息
    public int seachStationAlarm(Object obj);
    /*public static void main(String[] args) throws ParseException {
        Batt_devalarm_dataImpl dimpl = new Batt_devalarm_dataImpl();
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date1 = sdf.parse("2000-01-01");
        Date date2 = sdf.parse("2020-01-01");
        Batt_devalarm_data ddata = new Batt_devalarm_data();
        ddata.setAlm_start_time(ActionUtil.getSimpDate(date1));
        ddata.setAlm_start_time1(ActionUtil.getSimpDate(date2));
        ddata.setStationName1("");
        ddata.setStationName("");
        ddata.setAlm_type(0);
        Page page = new Page();
        page.setPageCurr(1);
        page.setPageSize(20000);
        User_inf uinf=new User_inf();
        uinf.setUId(1002);
        ddata.setPage(page);
        ddata.setUinf(uinf);
        Batt_Maint_Dealarm bmd = new Batt_Maint_Dealarm();
        BattInf binf = new BattInf();
        binf.setStationName("");
        binf.setStationName1("");
        binf.setFBSDeviceId(91000012);
        binf.setBattProductDate(ActionUtil.getSimpDate(date1));
        binf.setBattProductDate1(ActionUtil.getSimpDate(date2));
        bmd.setBinf(binf);
        bmd.setPage(page);
        bmd.setUinf(uinf);
        *//*List<Batt_devalarm_data> list=dimpl.serchByInfo(ddata);
        for (Batt_devalarm_data b : list) {
            System.out.println(b);
        }*//*
        //List<Batt_devalarm_data> list = dimpl.serchByCondition(bmd);
        //System.out.println(list.size());
        int level=dimpl.serchlevelDev_alarm(binf);
        System.out.println(level);*/
    public int seachStationAlarm(BattInf binf);
}
src/main/java/com/fgkj/mapper/impl/Batt_devalarm_data_historyMapper.java
@@ -1,17 +1,18 @@
package com.fgkj.mapper.impl;
import java.util.List;
import com.fgkj.dto.Batt_Maint_Dealarm;
import com.fgkj.dto.Batt_devalarm_data_history;
import org.springframework.stereotype.Repository;
import java.util.List;
public interface Batt_devalarm_data_historyMapper{
    //3.4设备历史告警(删除告警)<多数据删除>
    public String delPro(Object obj);
    public int deletePro(List<Batt_devalarm_data_history> list);
     //3.4设备告警历史记录查询
    /*时间段放在binf的getBattProductDate中*/
    public List serchByCondition(Object obj);
    public List serchByCondition(Batt_Maint_Dealarm bmd);
   /*public static void main(String[] args) throws ParseException {
        Batt_devalarm_data_historyImpl bimpl=new Batt_devalarm_data_historyImpl();
src/main/java/com/fgkj/mapper/impl/Battalarm_dataMapper.java
@@ -1,8 +1,9 @@
package com.fgkj.mapper.impl;
import java.util.List;
import com.fgkj.dto.BattInf;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Repository;
import java.util.List;
public interface Battalarm_dataMapper {
@@ -639,10 +640,11 @@
    public List serchByCondition_ky(Object obj);
    //查询电池组最近一次告警等级
    public int serchlevelBatt_alarm(Object obj);
    @Select("select alm_level from db_alarm.tb_battalarm_data where battgroupid=#{battGroupId} order by alm_start_time desc limit 1")
    public int serchlevelBatt_alarm(BattInf binf);
    //紫晶山西根据设备id和电池组id查询机房告警信息
    public int seachStationAlarm(Object obj);
    public int seachStationAlarm(BattInf binf);
    /*public static void main(String[] args) throws ParseException {
        Battalarm_dataDAOImpl bimp = new Battalarm_dataDAOImpl();
src/main/java/com/fgkj/mapper/impl/User_logMapper.java
@@ -2,12 +2,11 @@
import com.fgkj.dto.User_log;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
public interface User_logMapper {
    /*private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");*/
    //用户的操作记录下来
    @Insert("insert into db_user.tb_user_log(uId,uOprateType,uOprateDay,uTerminalIp,uOprateMsg) " +
src/main/java/com/fgkj/services/Batt_devalarm_dataService.java
@@ -1,19 +1,16 @@
package com.fgkj.services;
import com.fgkj.dto.BattInf;
import com.fgkj.dto.Batt_devalarm_data;
import com.fgkj.dto.ServiceModel;
import com.fgkj.dto.User_log;
import com.fgkj.dto.*;
import com.fgkj.mapper.UinfDaoFactory;
import com.fgkj.mapper.impl.Batt_devalarm_dataMapper;
import com.fgkj.mapper.impl.Battalarm_dataMapper;
import org.springframework.beans.factory.annotation.Autowired;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
@Service
public class Batt_devalarm_dataService {
@@ -23,10 +20,12 @@
    @Resource
    private Battalarm_dataMapper battAlarmDataMapper;
    ServiceModel model = new ServiceModel();
    @Resource
    private User_logService userLogService;
    
    //3.4设备实时告警(确认和取消告警)
    public ServiceModel update(Object obj) {
        ServiceModel model = new ServiceModel();
        Boolean bl=mapper.update(obj);
        if(bl){
            model.setCode(1);
@@ -39,6 +38,7 @@
    }
    //3.4设备实时告警/历史告警(删除告警)
    public ServiceModel delete(Object obj) {
        ServiceModel model = new ServiceModel();
        Boolean bl=mapper.del(obj);
        if(bl){
            model.setCode(1);
@@ -51,24 +51,19 @@
    }
    //3.4设备实时告警(确认告警)<多数据修改>
    public ServiceModel updatePro(Object obj) {
        List<Batt_devalarm_data> list=(List<Batt_devalarm_data>) obj;
        ArrayList<String> sql_str = new ArrayList<String>();//存放所有的sql语句
    public ServiceModel updatePro(List<Batt_devalarm_data> list) {
        ServiceModel model = new ServiceModel();
        List<User_log> listU=new ArrayList<User_log>();//存放user_log
        for(int i=0;i<list.size();i++){
            Batt_devalarm_data ddata=list.get(i);
            String sql=mapper.updatePro(ddata);
            sql_str.add(sql);
            {
                String msg="确认"+ddata.getStationName()+ddata.getNote()+"的告警";
                User_log ulog= UinfDaoFactory.CreateULog(UinfDaoFactory.Alter, msg);
                listU.add(ulog);
             }
        }
        //TODO perry待做
        Boolean bl= true;
        //Boolean bl= DateUtil.makeManualCommit(DBUtil.getConn(), sql_str);
        (new User_logService()).addPro(listU);//将用户的操作记录下来
        Boolean bl = mapper.updatePro(list)>0;
        userLogService.addPro(listU);//将用户的操作记录下来
        if(bl){
            model.setCode(1);
            model.setMsg("修改成功!");
@@ -79,24 +74,19 @@
        return model;    
    }
    //3.4设备实时告警(取消告警)<多数据修改>
    public ServiceModel cancelPro(Object obj) {
        List<Batt_devalarm_data> list=(List<Batt_devalarm_data>) obj;
        ArrayList<String> sql_str = new ArrayList<String>();//存放所有的sql语句
    public ServiceModel cancelPro(List<Batt_devalarm_data> list) {
        ServiceModel model = new ServiceModel();
        List<User_log> listU=new ArrayList<User_log>();//存放user_log
        for(int i=0;i<list.size();i++){
            Batt_devalarm_data ddata=list.get(i);
            String sql=mapper.cancelPro(ddata);
            sql_str.add(sql);
            {
                String msg="取消"+ddata.getStationName()+ddata.getNote()+"的告警";
                User_log ulog=UinfDaoFactory.CreateULog(UinfDaoFactory.Alter, msg);
                listU.add(ulog);
             }
        }
        //TODO perry待做
        Boolean bl= true;
        //Boolean bl = DateUtil.makeManualCommit(DBUtil.getConn(), sql_str);
        (new User_logService()).addPro(listU);//将用户的操作记录下来
        Boolean bl= mapper.cancelPro(list)>0;
        userLogService.addPro(listU);//将用户的操作记录下来
        if(bl){
            model.setCode(1);
            model.setMsg("取消成功!");
@@ -107,24 +97,19 @@
        return model;    
    }
    //3.4设备实时告警/历史告警(删除告警)<多数据删除>
    public ServiceModel deletePro(Object obj) {
        List<Batt_devalarm_data> list=(List<Batt_devalarm_data>) obj;
        ArrayList<String> sql_str = new ArrayList<String>();//存放所有的sql语句
    public ServiceModel deletePro(List<Batt_devalarm_data> list) {
        ServiceModel model = new ServiceModel();
        List<User_log> listU=new ArrayList<User_log>();//存放user_log
        for(int i=0;i<list.size();i++){
            Batt_devalarm_data ddata=list.get(i);
            String sql=mapper.delPro(ddata);
            sql_str.add(sql);
            {
                String msg="删除"+ddata.getStationName()+ddata.getNote()+"的告警";
                User_log ulog=UinfDaoFactory.CreateULog(UinfDaoFactory.Delete, msg);
                listU.add(ulog);
             }
        }
        //TODO perry待做
        Boolean bl= true;
        //Boolean bl = DateUtil.makeManualCommit(DBUtil.getConn(), sql_str);
        (new User_logService()).addPro(listU);//将用户的操作记录下来
        Boolean bl= mapper.delPro(list)>0;
        userLogService.addPro(listU);//将用户的操作记录下来
        if(bl){
            model.setCode(1);
            model.setMsg("删除成功!");
@@ -136,63 +121,55 @@
    }
    
    //3.3设备告警实时查询
    public ServiceModel serchByInfo(Object obj) {
        List list = mapper.serchByInfo(obj);
        if(list!=null&&list.size()>0){
            model.setCode(1);
            model.setMsg("查询成功!");
            model.setData(list);
        }else{
            model.setCode(0);
            model.setMsg("查询失败!");
        }
    public ServiceModel serchByInfo(Batt_devalarm_data bdd) {
        ServiceModel model = new ServiceModel();
        PageHelper.startPage(bdd.getPageBean().getPageNum(),bdd.getPageBean().getPageSize(),true);
        List list = mapper.serchByInfo(bdd);
        PageInfo<Batt_devalarm_data> pageInfo = new PageInfo<>(list);
        model.setCode(1);
        model.setData(pageInfo);
        return model;
    }
    //3.4设备告警历史记录查询
    public ServiceModel serchByCondition(Object obj) {
        List list=mapper.serchByCondition(obj);
        if(list!=null&&list.size()>0){
            model.setCode(1);
            model.setMsg("查询成功!");
            model.setData(list);
        }else{
            model.setCode(0);
            model.setMsg("查询失败!");
        }
    public ServiceModel serchByCondition(Batt_Maint_Dealarm bmd) {
        ServiceModel model = new ServiceModel();
        PageHelper.startPage(bmd.getPageBean().getPageNum(),bmd.getPageBean().getPageSize(),true);
        List list=mapper.serchByCondition(bmd);
        PageInfo<Batt_Maint_Dealarm> pageInfo = new PageInfo<>(list);
        model.setCode(1);
        model.setData(pageInfo);
        
        return model;
    }    
    
    
    //查询设备告警总数
    public ServiceModel searchNums(Object obj) {
        int nums= mapper.searchNums(obj);
        //TODO perry
        // model.setSum(nums);
    public ServiceModel searchNums(User_inf userInf) {
        ServiceModel model = new ServiceModel();
        int nums= mapper.searchNums(userInf);
        model.setCode(1);
        model.setData(nums);
        return model;
    }
    //点击项目下方的滚动,查询该设备告警的实时信息
    public ServiceModel  serchDev_alarm(Object obj){
        List list=mapper.serchDev_alarm(obj);
        if(list!=null && list.size()>0){
            model.setCode(1);
            model.setData(list);
            model.setMsg("查询成功!");
        }else{
            model.setCode(0);
            model.setMsg("查询失败!");
        }
    public ServiceModel  serchDev_alarm(Batt_devalarm_data ddata){
        ServiceModel model = new ServiceModel();
        List list=mapper.serchDev_alarm(ddata);
        model.setCode(1);
        model.setData(list);
        return model;
    }
    /**
     * 查询设备实时告警记录(跨域新增)
     * @param obj
     * @return
     */
    public ServiceModel  searchDevAlarm(Object obj){
        List list=mapper.searchDevAlarm(obj);
    public ServiceModel  searchDevAlarm(Batt_devalarm_data ddata){
        ServiceModel model = new ServiceModel();
        List list=mapper.searchDevAlarm(ddata);
        if(list!=null && list.size()>0){
            model.setCode(1);
            model.setData(list);
@@ -205,9 +182,10 @@
    }
    //紫晶山西根据设备id和电池组id查询机房告警信息
    public ServiceModel seachStationAlarm(Object obj) {
        int number_d=mapper.seachStationAlarm(obj);
        int number_a=battAlarmDataMapper.seachStationAlarm(obj);
    public ServiceModel seachStationAlarm(BattInf binf) {
        ServiceModel model = new ServiceModel();
        int number_d=mapper.seachStationAlarm(binf);
        int number_a=battAlarmDataMapper.seachStationAlarm(binf);
        
        if(number_d>0||number_a>0){
            model.setCode(1);
src/main/java/com/fgkj/services/Batt_devalarm_data_historyService.java
@@ -1,44 +1,40 @@
package com.fgkj.services;
import com.fgkj.dto.Batt_devalarm_data_history;
import com.fgkj.dto.ServiceModel;
import com.fgkj.dto.User_log;
import com.fgkj.dto.*;
import com.fgkj.mapper.UinfDaoFactory;
import com.fgkj.mapper.impl.Batt_devalarm_data_historyMapper;
import org.springframework.beans.factory.annotation.Autowired;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
@Service
public class Batt_devalarm_data_historyService {
    @Resource
    private Batt_devalarm_data_historyMapper mapper;;
    private Batt_devalarm_data_historyMapper mapper;
    ServiceModel model = new ServiceModel();
    @Resource
    private User_logService userLogService;
    //3.4设备实时告警/历史告警(删除告警)<多数据删除>
    public ServiceModel deletePro(Object obj) {
        List<Batt_devalarm_data_history> list=(List<Batt_devalarm_data_history>) obj;
        ArrayList<String> sql_str = new ArrayList<String>();//存放所有的sql语句
    public ServiceModel deletePro(List<Batt_devalarm_data_history> list) {
        ServiceModel model = new ServiceModel();
        List<User_log> listU=new ArrayList<User_log>();//存放user_log
        for(int i=0;i<list.size();i++){
            Batt_devalarm_data_history ddata=list.get(i);
            String sql=mapper.delPro(ddata);
            sql_str.add(sql);
            {
                String msg="删除"+ddata.getStationName()+ddata.getNote()+"的告警";
                User_log ulog=UinfDaoFactory.CreateULog(UinfDaoFactory.Delete, msg);
                listU.add(ulog);
             }
        }
        //TODO perry待查
        boolean bl=true;
        // Boolean bl = DateUtil.makeManualCommit(DBUtil.getConn(), sql_str);
        (new User_logService()).addPro(listU);//将用户的操作记录下来
         Boolean bl = mapper.deletePro(list)>0;
        userLogService.addPro(listU);//将用户的操作记录下来
        if(bl){
            model.setCode(1);
            model.setMsg("删除成功!");
@@ -49,17 +45,17 @@
        return model;    
    }
    //3.4设备告警历史记录查询
    public ServiceModel serchByCondition(Object obj) {
        List list=mapper.serchByCondition(obj);
        if(list!=null&&list.size()>0){
            model.setCode(1);
            model.setMsg("查询成功!");
            model.setData(list);
        }else{
            model.setCode(0);
            model.setMsg("查询失败!");
        }
    public ServiceModel serchByCondition(Batt_Maint_Dealarm bmd) {
        ServiceModel model = new ServiceModel();
        PageBean pageBean = bmd.getPageBean();
        PageHelper.startPage(pageBean.getPageNum(),pageBean.getPageSize(),true);
        List list=mapper.serchByCondition(bmd);
        PageInfo<Batt_Maint_Dealarm> pageInfo = new PageInfo<>(list);
        model.setCode(1);
        model.setData(pageInfo);
        return model;
    }
}
src/main/java/com/fgkj/services/User_logService.java
@@ -11,7 +11,6 @@
import java.util.Date;
import java.util.List;
// import com.fgkj.mapper.BasemapperFactory;
@Service
public class User_logService {
    
src/main/resources/application.yml
@@ -7,8 +7,8 @@
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3360/db_user?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
#    url: jdbc:mysql://192.168.10.222:3360/db_user?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
#    url: jdbc:mysql://localhost:3360/db_user?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
    url: jdbc:mysql://192.168.10.222:3360/db_user?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
#    url: jdbc:mysql://118.89.139.230:3360/db_user?characterEncoding=utf8&serverTimezone=Asia/Shanghai&allowMultiQueries=true
    username: root
    password: lmx8688139
src/main/resources/mapper/BattAlarmDataMapper.xml
@@ -1999,7 +1999,6 @@
    <select id="serchTopBattTen" resultType="java.util.List"></select>
    <select id="serchBatt_alarm" resultType="java.util.List"></select>
    <select id="serchByCondition_ky" resultType="java.util.List"></select>
    <select id="serchlevelBatt_alarm" resultType="java.lang.Integer"></select>
    <select id="seachStationAlarm" resultType="java.lang.Integer"></select>
    <select id="serchAlm" resultType="java.util.List"></select>
</mapper>
src/main/resources/mapper/BattAttentionMapper.xml
@@ -10,7 +10,7 @@
        <result property="battGroupName" column="battGroupName"/>
        <result property="monCapStd" column="monCapStd"/>
        <result property="monVolStd" column="monVolStd"/>
        <result property="monVolLowToAvg" column="monVolStd"/>
        <result property="monVolLowToAvg" column="mon_vol"/>
        <result property="monNum" column="monNum"/>
    </resultMap>
src/main/resources/mapper/BattDevAlarmDataHistoryMapper.xml
@@ -2,93 +2,45 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.fgkj.mapper.impl.Batt_devalarm_data_historyMapper" >
    <!--
    //3.4设备历史告警(删除告警)<多数据删除>
    public String delPro(Object obj) {
        Batt_devalarm_data_history ddata=(Batt_devalarm_data_history) obj;
        String sql=" DELETE FROM db_alarm.tb_devalarm_data_history WHERE num="+ddata.getNum();
        return sql;
    }
    <resultMap id="Map_BattDevAlarmDataHistory" type="Batt_devalarm_data_history">
        <id property="num" column="num"/>
        <result property="record_id" column="record_id" />
        <result property="dev_id" column="dev_id" />
        <result property="dev_ip" column="dev_ip" />
        <result property="alm_type" column="alm_type" />
        <result property="alm_level" column="alm_level" />
        <result property="alm_start_time" column="alm_start_time" />
        <result property="alm_end_time" column="alm_end_time" />
        <result property="alm_is_confirmed" column="alm_is_confirmed" />
        <result property="alm_confirmed_time" column="alm_confirmed_time" />
        <result property="alm_cleared_type" column="alm_cleared_type" />
        <result property="stationName" column="stationName" />
        <result property="dev_name" column="FbsDeviceName" />
    </resultMap>
    <delete id="deletePro">
        DELETE FROM db_alarm.tb_devalarm_data_history WHERE num in
        <foreach collection="list" item="item" separator="," open="(" close=")">
        #{item.num}
        </foreach>
    </delete>
     //3.4设备告警历史记录查询
    /*时间段放在binf的getBattProductDate中*/
    public List serchByCondition(Object obj) {
        Batt_Maint_Dealarm bmd=(Batt_Maint_Dealarm) obj;
        User_inf uinf=bmd.getUinf();
        BattInf binf=bmd.getBinf();
        Page pageBean=bmd.getPage();
        Connection conn=DBUtil.getConn();
        String numberSql=" SELECT FOUND_ROWS() number";
        String sql="";
        String baseSql=" SELECT SQL_CALC_FOUND_ROWS tb_devalarm_data_history.num,record_id,dev_id,dev_ip,alm_type,alm_level,alm_start_time,alm_end_time," +
                " alm_is_confirmed,alm_confirmed_time,alm_cleared_type, " +
                " DISTINCTbinf.stationName,DISTINCTbinf.FbsDeviceName " +
                " FROM db_alarm.tb_devalarm_data_history,(SELECT DISTINCT db_battinf.tb_battinf.FbsDeviceId,db_battinf.tb_battinf.stationName,db_battinf.tb_battinf.FbsDeviceName from db_battinf.tb_battinf  where db_battinf.tb_battinf.StationName LIKE ?  AND db_battinf.tb_battinf.StationName1 LIKE ? )  as DISTINCTbinf    " +
                " WHERE  tb_devalarm_data_history.dev_id=DISTINCTbinf.FbsDeviceId  " +
                " AND alm_start_time>=? and alm_start_time<=? ";
        /*//历史告警
        String alarmTypeSql=" AND alm_cleared_type!=0";
        baseSql+=alarmTypeSql;*/
        //判断是否为管理的机房
        String stationSql=" and db_alarm.tb_devalarm_data_history.dev_id in(select distinct db_battinf.tb_battinf.FbsDeviceId " +
                " 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+=stationSql;
        //排序
        String endSql=" ORDER BY alm_start_time DESC ";
        //分页
        String limitSql=" LIMIT ?,? ";
        sql=baseSql+endSql+limitSql;
        List<Batt_devalarm_data_history> list=DateUtil.executeQueryLimit(sql, conn,new Object[]{"%"+binf.getStationName()+"%","%"+binf.getStationName1()+"%",binf.getBattProductDate(),binf.getBattProductDate1()
            ,uinf.getUId(),(pageBean.getPageCurr() - 1)*pageBean.getPageSize()
            ,pageBean.getPageSize()}, new CallBack() {
            public List getResults(ResultSet rs) {
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        Batt_devalarm_data_history ddata=new Batt_devalarm_data_history();
                        ddata.setNum(rs.getInt("num"));
                        ddata.setDev_id(rs.getInt("dev_id"));
                        ddata.setDev_ip(rs.getString("dev_ip"));
                        ddata.setAlm_type(rs.getInt("alm_type"));
                        ddata.setAlm_level(rs.getInt("alm_level"));
                        ddata.setAlm_start_time(rs.getTimestamp("alm_start_time"));
                        ddata.setAlm_end_time(rs.getTimestamp("alm_end_time"));
                        ddata.setAlm_is_confirmed(rs.getInt("alm_is_confirmed"));
                        ddata.setAlm_confirmed_time(rs.getTimestamp("alm_confirmed_time"));
                        ddata.setAlm_cleared_type(rs.getInt("alm_cleared_type"));
                        ddata.setDev_name(rs.getString("FbsDeviceName"));
                        ddata.setStationName(rs.getString("stationName"));
                        list.add(ddata);
                    }
                } 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).setUsr_id(number);
        }
        return list;
    }
    -->
    <delete id="delPro"></delete>
    <select id="serchByCondition" resultType="java.util.List"></select>
    <select id="serchByCondition" resultMap="Map_BattDevAlarmDataHistory">
        SELECT
            tb_devalarm_data_history.num,record_id,dev_id,dev_ip,alm_type,alm_level,alm_start_time,alm_end_time,alm_is_confirmed,alm_confirmed_time,alm_cleared_type,
            DISTINCTbinf.stationName,DISTINCTbinf.FbsDeviceName
        FROM
            db_alarm.tb_devalarm_data_history force index(`index_alm_start_time`) ,
            (SELECT DISTINCT db_battinf.tb_battinf.FbsDeviceId,db_battinf.tb_battinf.stationName,db_battinf.tb_battinf.FbsDeviceName
            from db_battinf.tb_battinf  where db_battinf.tb_battinf.StationName LIKE concat('%',#{binf.stationName},'%')  AND db_battinf.tb_battinf.StationName1 LIKE concat('%',#{binf.stationName1},'%') )  as DISTINCTbinf
        WHERE  tb_devalarm_data_history.dev_id=DISTINCTbinf.FbsDeviceId
        AND alm_start_time <![CDATA[>=]]> #{adata_H.alm_start_time} and alm_start_time <![CDATA[<=]]> #{adata_H.alm_start_time1}
        AND db_alarm.tb_devalarm_data_history.dev_id in
            (select distinct db_battinf.tb_battinf.FbsDeviceId
            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=#{uinf.UId} )
        ORDER BY alm_start_time DESC
    </select>
</mapper>
src/main/resources/mapper/BattDevAlarmDataMapper.xml
@@ -2,707 +2,150 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.fgkj.mapper.impl.Batt_devalarm_dataMapper" >
    <!--
    public List getResults(ResultSet rs) {
        List list=new ArrayList();
        try {
            while(rs.next()){
                Batt_devalarm_data ddata=new Batt_devalarm_data();
                ddata.setNum(rs.getInt("num"));
                ddata.setRecord_id(rs.getInt("record_id"));
                ddata.setDev_id(rs.getInt("dev_id"));
                ddata.setDev_ip(rs.getString("dev_ip"));
                ddata.setAlm_type(rs.getInt("alm_type"));
                ddata.setAlm_level(rs.getInt("alm_level"));
                ddata.setAlm_start_time(rs.getTimestamp("alm_start_time"));
                ddata.setAlm_end_time(rs.getTimestamp("alm_end_time"));
                ddata.setAlm_is_confirmed(rs.getInt("alm_is_confirmed"));
                ddata.setAlm_confirmed_time(rs.getTimestamp("alm_confirmed_time"));
                ddata.setAlm_cleared_type(rs.getInt("alm_cleared_type"));
                ddata.setUsr_id(rs.getInt("usr_id"));
                list.add(ddata);
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return list;
    }
    <resultMap id="Map_BattDevAlarmData" type="Batt_devalarm_data">
        <id property="num" column="num" />
        <result property="dev_id" column="dev_id" />
        <result property="dev_ip" column="dev_ip" />
        <result property="alm_type" column="alm_type" />
        <result property="alm_level" column="alm_level" />
        <result property="alm_start_time" column="alm_start_time" />
        <result property="alm_end_time" column="alm_end_time" />
        <result property="alm_is_confirmed" column="alm_is_confirmed" />
        <result property="alm_confirmed_time" column="alm_confirmed_time" />
        <result property="alm_cleared_type" column="alm_cleared_type" />
        <result property="dev_name" column="FbsDeviceName" />
        <result property="stationName" column="stationName" />
    </resultMap>
     //3.4设备实时告警(确认和取消告警)
    public boolean update(Object obj) {
        Batt_devalarm_data ddata=(Batt_devalarm_data) obj;
        String sql=" UPDATE db_alarm.tb_devalarm_data SET  alm_is_confirmed=? WHERE num=?  ";
        boolean bl=DateUtil.executeUpdate(DBUtil.getConn(), sql, new Object[]{ddata.getAlm_is_confirmed(),ddata.getNum()});
        return bl;
    }
    //3.4设备实时告警/历史告警(删除告警)
    public boolean del(Object obj) {
        Batt_devalarm_data ddata=(Batt_devalarm_data) obj;
        String sql=" DELETE FROM db_alarm.db_alarm.tb_devalarm_data WHERE num=?  ";
        boolean bl=DateUtil.executeUpdate(DBUtil.getConn(), sql, new Object[]{ddata.getNum()});
        return bl;
    }
    <resultMap id="Map_BattDevAlarmData2" type="Batt_devalarm_data">
        <result property="dev_id" column="dev_id" />
        <result property="dev_ip" column="dev_ip" />
        <result property="alm_type" column="alm_type" />
        <result property="alm_start_time" column="alm_start_time" />
        <result property="alm_cleared_type" column="alm_cleared_type" />
        <result property="stationId" column="stationId" />
        <result property="dev_name" column="FbsDeviceName" />
        <result property="stationName" column="stationName" />
    </resultMap>
    //3.4设备实时告警(确认告警)<多数据修改>
    public String updatePro(Object obj) {
        Batt_devalarm_data ddata=(Batt_devalarm_data) obj;
        String sql=" UPDATE db_alarm.tb_devalarm_data SET  alm_is_confirmed="+ddata.getAlm_is_confirmed()+",alm_confirmed_time='"+DateUtil.sdf.format(ddata.getAlm_confirmed_time())+"' WHERE num="+ddata.getNum();
        return sql;
    }
    //3.4设备实时告警(取消告警)<多数据修改>
    public String cancelPro(Object obj) {
        Batt_devalarm_data ddata=(Batt_devalarm_data) obj;
        String sql=" UPDATE db_alarm.tb_devalarm_data SET  record_id="+ddata.getRecord_id()+",alm_end_time='"+DateUtil.sdf.format(ddata.getAlm_end_time())+"',alm_cleared_type="+ddata.getAlm_cleared_type()+" WHERE num="+ddata.getNum();
        return sql;
    }
    //3.4设备实时告警/历史告警(删除告警)<多数据删除>
    public String delPro(Object obj) {
        Batt_devalarm_data ddata=(Batt_devalarm_data) obj;
        String sql=" DELETE FROM db_alarm.tb_devalarm_data WHERE num="+ddata.getNum();
        return sql;
    }
    //3.4设备告警历史记录查询
    /*时间段放在binf的getBattProductDate中*/
    /*public List serchByCondition(Object obj) {
        Batt_Maint_Dealarm bmd=(Batt_Maint_Dealarm) obj;
        BattInf binf=bmd.getBinf();
        Page pageBean=bmd.getPage();
        Connection conn=DBUtil.getConn();
        String numberSql=" SELECT FOUND_ROWS() number";
        String sql="";
        String baseSql=" SELECT SQL_CALC_FOUND_ROWS tb_devalarm_data.num,record_id,dev_id,dev_ip,alm_type,alm_level,alm_start_time,alm_end_time," +
                " alm_is_confirmed,alm_confirmed_time,alm_cleared_type, " +
                " DISTINCTbinf.stationName,DISTINCTbinf.FbsDeviceName " +
                " FROM db_alarm.tb_devalarm_data,(SELECT DISTINCT db_battinf.tb_battinf.FbsDeviceId,db_battinf.tb_battinf.stationName,db_battinf.tb_battinf.FbsDeviceName from db_battinf.tb_battinf  where db_battinf.tb_battinf.StationName LIKE ?  AND db_battinf.tb_battinf.StationName1 LIKE ? )  as DISTINCTbinf    " +
                " WHERE  tb_devalarm_data.dev_id=DISTINCTbinf.FbsDeviceId  " +
                " AND alm_start_time>=? and alm_start_time<=? ";
        //历史告警
        String alarmTypeSql=" AND alm_cleared_type!=0";
        baseSql+=alarmTypeSql;
        //排序
        String endSql=" ORDER BY alm_start_time DESC ";
        //分页
        String limitSql=" LIMIT ?,? ";
        sql=baseSql+endSql+limitSql;
        List<Batt_devalarm_data> list=DateUtil.executeQueryLimit(sql, conn,new Object[]{"%"+binf.getStationName()+"%","%"+binf.getStationName1()+"%",binf.getBattProductDate(),binf.getBattProductDate1()
            ,(pageBean.getPageCurr() - 1)*pageBean.getPageSize()
            ,pageBean.getPageSize()}, new CallBack() {
            public List getResults(ResultSet rs) {
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        Batt_devalarm_data ddata=new Batt_devalarm_data();
                        ddata.setNum(rs.getInt("num"));
                        ddata.setDev_id(rs.getInt("dev_id"));
                        ddata.setDev_ip(rs.getString("dev_ip"));
                        ddata.setAlm_type(rs.getInt("alm_type"));
                        ddata.setAlm_level(rs.getInt("alm_level"));
                        ddata.setAlm_start_time(rs.getTimestamp("alm_start_time"));
                        ddata.setAlm_end_time(rs.getTimestamp("alm_end_time"));
                        ddata.setAlm_is_confirmed(rs.getInt("alm_is_confirmed"));
                        ddata.setAlm_confirmed_time(rs.getTimestamp("alm_confirmed_time"));
                        ddata.setAlm_cleared_type(rs.getInt("alm_cleared_type"));
                        ddata.setDev_name(rs.getString("FbsDeviceName"));
                        ddata.setStationName(rs.getString("stationName"));
                        list.add(ddata);
                    }
                } 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).setUsr_id(number);
        }
        return list;
    }*/
    public List serchByCondition(Object obj) {
        Batt_Maint_Dealarm bmd=(Batt_Maint_Dealarm) obj;
        User_inf uinf=bmd.getUinf();
        BattInf binf=bmd.getBinf();
        Page pageBean=bmd.getPage();
        Connection conn=DBUtil.getConn();
        String numberSql=" SELECT FOUND_ROWS() number";
        String sql="";
        String baseSql=" SELECT SQL_CALC_FOUND_ROWS tb_devalarm_data.num,record_id,dev_id,dev_ip,alm_type,alm_level,alm_start_time,alm_end_time," +
                " alm_is_confirmed,alm_confirmed_time,alm_cleared_type, " +
                " DISTINCTbinf.stationName,DISTINCTbinf.FbsDeviceName " +
                " FROM db_alarm.tb_devalarm_data,(SELECT DISTINCT db_battinf.tb_battinf.FbsDeviceId,db_battinf.tb_battinf.stationName,db_battinf.tb_battinf.FbsDeviceName from db_battinf.tb_battinf  where db_battinf.tb_battinf.StationName LIKE ?  AND db_battinf.tb_battinf.StationName1 LIKE ? )  as DISTINCTbinf    " +
                " WHERE  tb_devalarm_data.dev_id=DISTINCTbinf.FbsDeviceId  " +
                " AND alm_start_time>=? and alm_start_time<=? ";
        //历史告警
        String alarmTypeSql=" AND alm_cleared_type!=0";
        baseSql+=alarmTypeSql;
        //判断是否为管理的机房
        String stationSql=" and db_alarm.tb_devalarm_data.dev_id in(select distinct db_battinf.tb_battinf.FbsDeviceId " +
                " 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+=stationSql;
        //排序
        String endSql=" ORDER BY alm_start_time DESC ";
        //分页
        String limitSql=" LIMIT ?,? ";
        sql=baseSql+endSql+limitSql;
        List<Batt_devalarm_data> list=DateUtil.executeQueryLimit(sql, conn,new Object[]{"%"+binf.getStationName()+"%","%"+binf.getStationName1()+"%",binf.getBattProductDate(),binf.getBattProductDate1()
            ,uinf.getUId(),(pageBean.getPageCurr() - 1)*pageBean.getPageSize()
            ,pageBean.getPageSize()}, new CallBack() {
            public List getResults(ResultSet rs) {
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        Batt_devalarm_data ddata=new Batt_devalarm_data();
                        ddata.setNum(rs.getInt("num"));
                        ddata.setDev_id(rs.getInt("dev_id"));
                        ddata.setDev_ip(rs.getString("dev_ip"));
                        ddata.setAlm_type(rs.getInt("alm_type"));
                        ddata.setAlm_level(rs.getInt("alm_level"));
                        ddata.setAlm_start_time(rs.getTimestamp("alm_start_time"));
                        ddata.setAlm_end_time(rs.getTimestamp("alm_end_time"));
                        ddata.setAlm_is_confirmed(rs.getInt("alm_is_confirmed"));
                        ddata.setAlm_confirmed_time(rs.getTimestamp("alm_confirmed_time"));
                        ddata.setAlm_cleared_type(rs.getInt("alm_cleared_type"));
                        ddata.setDev_name(rs.getString("FbsDeviceName"));
                        ddata.setStationName(rs.getString("stationName"));
                        list.add(ddata);
                    }
                } 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).setUsr_id(number);
        }
        return list;
    }
    //3.3设备告警实时查询+筛选
    /*public List serchByInfo(Object obj) {
        Batt_devalarm_data ddata=(Batt_devalarm_data) obj;
        Page pageBean=ddata.getPage();
        Connection conn=DBUtil.getConn();
        String numberSql=" SELECT FOUND_ROWS() number ";
        String sql="";
        String baseSql=" SELECT SQL_CALC_FOUND_ROWS tb_devalarm_data.num,dev_id,dev_ip,alm_type,alm_level,alm_start_time,alm_end_time," +
                " alm_is_confirmed,alm_confirmed_time,alm_cleared_type," +
                " DISTINCTbinf.stationName,DISTINCTbinf.FbsDeviceName  " +
                " FROM db_alarm.tb_devalarm_data,(SELECT DISTINCT db_battinf.tb_battinf.FbsDeviceId,db_battinf.tb_battinf.stationName,db_battinf.tb_battinf.FbsDeviceName from db_battinf.tb_battinf)  as DISTINCTbinf  " +
                " WHERE  " +
                " tb_devalarm_data.dev_id=DISTINCTbinf.FbsDeviceId " ;
        //设备实时告警
        String alarmTypeSql=" AND alm_cleared_type=0 ";
        baseSql+=alarmTypeSql;
        //排序
        String endSql=" ORDER BY alm_start_time DESC  ";
        //分页
        String limitSql=" LIMIT ?,? ";
        sql=baseSql+endSql+limitSql;
        List<Batt_devalarm_data> list=DateUtil.executeQueryLimit(sql, conn, new Object[]{(pageBean.getPageCurr()-1)*pageBean.getPageSize(),pageBean.getPageSize()}, new CallBack() {
            public List getResults(ResultSet rs) {
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        Batt_devalarm_data ddata=new Batt_devalarm_data();
                        ddata.setNum(rs.getInt("num"));
                        ddata.setDev_id(rs.getInt("dev_id"));
                        ddata.setDev_ip(rs.getString("dev_ip"));
                        ddata.setAlm_type(rs.getInt("alm_type"));
                        ddata.setAlm_level(rs.getInt("alm_level"));
                        ddata.setAlm_start_time(rs.getTimestamp("alm_start_time"));
                        ddata.setAlm_end_time(rs.getTimestamp("alm_end_time"));
                        ddata.setAlm_is_confirmed(rs.getInt("alm_is_confirmed"));
                        ddata.setAlm_confirmed_time(rs.getTimestamp("alm_confirmed_time"));
                        ddata.setAlm_cleared_type(rs.getInt("alm_cleared_type"));
                        ddata.setDev_name(rs.getString("FbsDeviceName"));
                        ddata.setStationName(rs.getString("stationName"));
                        list.add(ddata);
                    }
                } 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).setUsr_id(number);
        }
        return list;
    }*/
    public List serchByInfo(Object obj) {
        Batt_devalarm_data ddata=(Batt_devalarm_data) obj;
        User_inf uinf=ddata.getUinf();
        Page pageBean=ddata.getPage();
        Connection conn=DBUtil.getConn();
        String numberSql=" SELECT FOUND_ROWS() number ";
        String sql="";
        String baseSql=" SELECT SQL_CALC_FOUND_ROWS distinct tb_devalarm_data.num,dev_id,dev_ip,alm_type,alm_level,alm_start_time,alm_end_time," +
                " alm_is_confirmed,alm_confirmed_time,alm_cleared_type," +
                " db_battinf.tb_battinf.stationName,db_battinf.tb_battinf.FbsDeviceName  " +
                " FROM db_alarm.tb_devalarm_data,db_battinf.tb_battinf " +
                " WHERE  " +
                " tb_devalarm_data.dev_id=db_battinf.tb_battinf.FbsDeviceId " ;
        //设备实时告警
        String alarmTypeSql=" AND alm_cleared_type=0 ";
        baseSql+=alarmTypeSql;
        //用于维护区
        String station1SqlT=" and stationname1!=? ";//全部
        String station1SqlF=" and stationname1=? ";
        if(ddata.getStationName1().equals("")){
            baseSql+=station1SqlT;
        }else{
            baseSql+=station1SqlF;
        }
        //用于机房站点
        String stationSqlT=" and stationname!=? ";//全部
        String stationSqlF=" and stationname=? ";
        if(ddata.getStationName().equals("")){
            baseSql+=stationSqlT;
        }else{
            baseSql+=stationSqlF;
        }
        //用于故障事件
        String almTypeT=" and alm_type!=? ";//全部
        String almTypeF=" and alm_type=? ";
        if(ddata.getAlm_type()==0){
            baseSql+=almTypeT;
        }else{
            baseSql+=almTypeF;
        }
        //判断是否为管理的机房
        String stationSql=" and db_alarm.tb_devalarm_data.dev_id in(select distinct db_battinf.tb_battinf.FbsDeviceId " +
                " 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+=stationSql;
        //排序
        String endSql=" ORDER BY alm_start_time DESC  ";
        //分页
        String limitSql=" LIMIT ?,? ";
        sql=baseSql+endSql+limitSql;
        List<Batt_devalarm_data> list=DateUtil.executeQueryLimit(sql, conn, new Object[]{ddata.getStationName1(),ddata.getStationName(),ddata.getAlm_type(),uinf.getUId(),(pageBean.getPageCurr()-1)*pageBean.getPageSize(),pageBean.getPageSize()}, new CallBack() {
            public List getResults(ResultSet rs) {
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        Batt_devalarm_data ddata=new Batt_devalarm_data();
                        ddata.setNum(rs.getInt("num"));
                        ddata.setDev_id(rs.getInt("dev_id"));
                        ddata.setDev_ip(rs.getString("dev_ip"));
                        ddata.setAlm_type(rs.getInt("alm_type"));
                        ddata.setAlm_level(rs.getInt("alm_level"));
                        ddata.setAlm_start_time(rs.getTimestamp("alm_start_time"));
                        ddata.setAlm_end_time(rs.getTimestamp("alm_end_time"));
                        ddata.setAlm_is_confirmed(rs.getInt("alm_is_confirmed"));
                        ddata.setAlm_confirmed_time(rs.getTimestamp("alm_confirmed_time"));
                        ddata.setAlm_cleared_type(rs.getInt("alm_cleared_type"));
                        ddata.setDev_name(rs.getString("FbsDeviceName"));
                        ddata.setStationName(rs.getString("stationName"));
                        list.add(ddata);
                    }
                } 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).setUsr_id(number);
        }
        return list;
    }
    //查询设备告警总数
    /*public int searchNums() {
        String sql="select count(num) as nums  " +
                "from db_alarm.tb_devalarm_data " +
                "where alm_cleared_type=0  " +
                "and tb_devalarm_data.dev_id in (select FbsDeviceId from db_battinf.tb_battinf ) " +
                "limit 1 ";
        //System.out.println(sql);
        List list=DateUtil.executeQuery(sql, DBUtil.getConn(), null, new CallBack() {
            public List getResults(ResultSet rs) {
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        int nums=rs.getInt("nums");
                        list.add(nums);
                    }
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                return list;
            }
        });
        int nums=0;//最后的结果
        if(list!=null&&list.size()>0){
            nums=(Integer) list.get(list.size()-1);
        }
        return nums;
    }*/
    public int searchNums(Object obj) {
        User_inf uinf=(User_inf) obj;
        String sql="select distinct num,dev_id,alm_start_time  " +
                "from db_alarm.tb_devalarm_data " +
                "where alm_cleared_type=0  " +
                "and tb_devalarm_data.dev_id in (select distinct db_battinf.tb_battinf.FbsDeviceId " +
                " 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=? ) ";
        //System.out.println(sql);
        List list=DateUtil.executeQuery(sql, DBUtil.getConn(), new Object[]{uinf.getUId()}, new CallBack() {
            public List getResults(ResultSet rs) {
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        Batt_devalarm_data ddata=new Batt_devalarm_data();
                        ddata.setNum(rs.getInt("num"));
                        ddata.setDev_id(rs.getInt("dev_id"));
                        ddata.setAlm_start_time(rs.getTimestamp("alm_start_time"));
                        list.add(ddata);
                    }
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                return list;
            }
        });
        int nums=0;//最后的结果
        if(list!=null&&list.size()>0){
            nums=(Integer) list.size();
        }
        return nums;
    }
    //项目下方的滚动,查询最新设备告警(旧版本)
    public List serchTopAlmInDev(){
        String sql="select db_alarm.tb_devalarm_data.dev_id,db_battinf.tb_battinf.stationname,db_battinf.tb_battinf.stationid,db_battinf.tb_battinf.fbsdevicename,dev_ip,alm_type,alm_start_time " +
                "  from db_alarm.tb_devalarm_data,db_battinf.tb_battinf" +
                "  where alm_cleared_type=0 " +
                "  and db_alarm.tb_devalarm_data.dev_id=db_battinf.tb_battinf.fbsdeviceid " +
                "  order by alm_start_time desc " +
                "  limit 1";
        List list=DateUtil.executeQuery(sql, DBUtil.getConn(), null, new CallBack() {
            public List getResults(ResultSet rs) {
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        Batt_devalarm_data ddata=new Batt_devalarm_data();
                        ddata.setDev_id(rs.getInt("dev_id"));
                        ddata.setDev_ip(rs.getString("dev_ip"));
                        ddata.setDev_name(rs.getString("fbsdevicename"));
                        ddata.setStationName(rs.getString("stationName"));
                        ddata.setStationId(rs.getString("stationId"));
                        ddata.setAlm_type(rs.getInt("alm_type"));
                        ddata.setAlm_start_time(rs.getTimestamp("alm_start_time"));
                        list.add(ddata);
                    }
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                return list;
            }
        });
        return list;
    }
    //项目下方的滚动,查询最新设备告警
   /* public List serchTopDevTen(){
        String sql="select distinct db_alarm.tb_devalarm_data.dev_id,db_battinf.tb_battinf.stationname,db_battinf.tb_battinf.stationid,db_battinf.tb_battinf.fbsdevicename,dev_ip,alm_type,alm_start_time " +
                "  from db_alarm.tb_devalarm_data,db_battinf.tb_battinf" +
                "  where alm_cleared_type=0 " +
                "  and db_alarm.tb_devalarm_data.dev_id=db_battinf.tb_battinf.fbsdeviceid " +
                "  order by alm_start_time desc " +
                "  limit 0,5";
        List list=DateUtil.executeQuery(sql, DBUtil.getConn(), null, new CallBack() {
            public List getResults(ResultSet rs) {
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        Batt_devalarm_data ddata=new Batt_devalarm_data();
                        ddata.setNum(1);//1表示设备告警
                        ddata.setDev_id(rs.getInt("dev_id"));
                        ddata.setDev_ip(rs.getString("dev_ip"));
                        ddata.setDev_name(rs.getString("fbsdevicename"));
                        ddata.setStationName(rs.getString("stationName"));
                        ddata.setStationId(rs.getString("stationId"));
                        ddata.setAlm_type(rs.getInt("alm_type"));
                        ddata.setAlm_start_time(rs.getTimestamp("alm_start_time"));
                        String ddataStr=""+ddata.getStationName()    // 机房名称
                                +"在"+ActionUtil.chageDateToString(ddata.getAlm_start_time(), ActionUtil.time_yyyyMMddHHmmss)    // 告警开始时间
                                +"出现了"+AlarmDaoFactory.getdevName(ddata.getAlm_type()) // 告警类型名称
                                +"告警!";
                        ddata.setNote(ddataStr);
                        list.add(ddata);
                    }
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                return list;
            }
        });
        return list;
    }*/
    public List serchTopDevTen(Object obj){
        User_inf uinf=(User_inf) obj;
        String sql="select distinct db_alarm.tb_devalarm_data.dev_id,db_battinf.tb_battinf.stationname,db_battinf.tb_battinf.stationid,db_battinf.tb_battinf.fbsdevicename,dev_ip,alm_type,alm_start_time " +
                "  from db_alarm.tb_devalarm_data,db_battinf.tb_battinf" +
                "  where alm_cleared_type=0 " +
                "  and db_alarm.tb_devalarm_data.dev_id=db_battinf.tb_battinf.fbsdeviceid " +
                "  and  db_alarm.tb_devalarm_data.dev_id  in (select distinct db_battinf.tb_battinf.FbsDeviceId " +
                " 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=?)" +
                " order by alm_start_time desc " +
                "  limit 0,5";
        List list=DateUtil.executeQuery(sql, DBUtil.getConn(), new Object[]{uinf.getUId()}, new CallBack() {
            public List getResults(ResultSet rs) {
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        Batt_devalarm_data ddata=new Batt_devalarm_data();
                        ddata.setNum(1);//1表示设备告警
                        ddata.setDev_id(rs.getInt("dev_id"));
                        ddata.setDev_ip(rs.getString("dev_ip"));
                        ddata.setDev_name(rs.getString("fbsdevicename"));
                        ddata.setStationName(rs.getString("stationName"));
                        ddata.setStationId(rs.getString("stationId"));
                        ddata.setAlm_type(rs.getInt("alm_type"));
                        ddata.setAlm_start_time(rs.getTimestamp("alm_start_time"));
                        String ddataStr=""+ddata.getStationName()    // 机房名称
                                +"在"+ActionUtil.chageDateToString(ddata.getAlm_start_time(), ActionUtil.time_yyyyMMddHHmmss)    // 告警开始时间
                                +"出现了"+AlarmDaoFactory.getdevName(ddata.getAlm_type()) // 告警类型名称
                                +"告警!";
                        ddata.setNote(ddataStr);
                        list.add(ddata);
                    }
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                return list;
            }
        });
        return list;
    }
    //项目下方的滚动,查询该设备告警的实时信息
    public List serchDev_alarm(Object obj){
        Batt_devalarm_data ddata=(Batt_devalarm_data) obj;
        String sql="select distinct db_alarm.tb_devalarm_data.dev_id,db_battinf.tb_battinf.stationname,db_battinf.tb_battinf.stationid,db_battinf.tb_battinf.fbsdevicename,dev_ip,alm_type,alm_start_time,alm_cleared_type " +
                "  from db_alarm.tb_devalarm_data,db_battinf.tb_battinf " +
                "  where db_alarm.tb_devalarm_data.dev_id=db_battinf.tb_battinf.fbsdeviceid" +
                "  and  db_alarm.tb_devalarm_data.dev_id=? and alm_type=? and alm_start_time=? ";
        List list=DateUtil.executeQuery(sql, DBUtil.getConn(), new Object[]{ddata.getDev_id(),ddata.getAlm_type(),ddata.getAlm_start_time()}, new CallBack() {
            public List getResults(ResultSet rs) {
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        Batt_devalarm_data ddata=new Batt_devalarm_data();
                        ddata.setDev_id(rs.getInt("dev_id"));
                        ddata.setDev_ip(rs.getString("dev_ip"));
                        ddata.setDev_name(rs.getString("fbsdevicename"));
                        ddata.setStationName(rs.getString("stationName"));
                        ddata.setStationId(rs.getString("stationId"));
                        ddata.setAlm_type(rs.getInt("alm_type"));
                        ddata.setAlm_start_time(rs.getTimestamp("alm_start_time"));
                        ddata.setAlm_cleared_type(rs.getInt("alm_cleared_type"));
                        list.add(ddata);
                    }
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                return list;
            }
        });
        return list;
    }
    //根据设备id查询设备是否存在设备告警
    public int serchlevelDev_alarm(Object obj){
        BattInf binf=(BattInf) obj;
        int level=0;
        String sql=" select count(num) as number from db_alarm.tb_devalarm_data where dev_id=? ";
        List list=DateUtil.executeQuery(sql, DBUtil.getConn(), new Object[]{binf.getFBSDeviceId()}, new CallBack() {
            public List getResults(ResultSet rs) {
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        int number=rs.getInt("number");
                        list.add(number);
                    }
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                return list;
            }
        });
        if(list!=null&&list.size()>0){
            level=(Integer) list.get(list.size()-1);
        }else{
            level=0;
        }
        return level;
    }
    /**
     * 查询设备实时告警记录(跨域新增)
     * @param obj
     * @return
     */
    public List searchDevAlarm(Object obj){
        Batt_devalarm_data ddata=(Batt_devalarm_data) obj;
        Connection conn=DBUtil.getConn();
        String baseSql=" SELECT distinct tb_devalarm_data.num,dev_id,dev_ip,alm_type,alm_level,alm_start_time,alm_end_time,alm_is_confirmed,"
                + " alm_confirmed_time,alm_cleared_type,alm_value,db_battinf.tb_battinf.stationName,db_battinf.tb_battinf.stationName1,"
                + " db_battinf.tb_battinf.stationName2,db_battinf.tb_battinf.stationName5,db_battinf.tb_battinf.FbsDeviceName "
                + " FROM db_battinf.tb_battinf,db_alarm.tb_devalarm_data "
                + " WHERE db_alarm.tb_devalarm_data.dev_id = db_battinf.tb_battinf.FBSDeviceId "
                + " AND db_alarm.tb_devalarm_data.alm_cleared_type = 0 AND db_battinf.tb_battinf.station_install =1 " ;
        if(ddata.getDev_id() > 0){
            baseSql += " AND db_alarm.tb_devalarm_data.dev_id = " +ddata.getDev_id() ;
        }
        List<Batt_devalarm_data> list = DateUtil.executeQueryLimit(baseSql, conn,null, new CallBack() {
            public List getResults(ResultSet rs) {
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        Batt_devalarm_data ddata=new Batt_devalarm_data();
                        ddata.setNum(rs.getInt("num"));
                        ddata.setDev_id(rs.getInt("dev_id"));
                        ddata.setDev_ip(rs.getString("dev_ip"));
                        ddata.setAlm_type(rs.getInt("alm_type"));
                        ddata.setAlm_level(rs.getInt("alm_level"));
                        ddata.setAlm_start_time(rs.getTimestamp("alm_start_time"));
                        ddata.setAlm_end_time(rs.getTimestamp("alm_end_time"));
                        ddata.setAlm_is_confirmed(rs.getInt("alm_is_confirmed"));
                        ddata.setAlm_confirmed_time(rs.getTimestamp("alm_confirmed_time"));
                        ddata.setAlm_cleared_type(rs.getInt("alm_cleared_type"));
                        ddata.setAlm_value(rs.getFloat("alm_value"));
                        ddata.setDev_name(rs.getString("FbsDeviceName"));
                        ddata.setStationName(rs.getString("stationName"));
                        ddata.setStationName1(rs.getString("stationName1"));
                        ddata.setStationName2(rs.getString("stationName2"));
                        ddata.setStationName5(rs.getString("stationName5"));
                        list.add(ddata);
                    }
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                return list;
            }
        });
        try {
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return list;
    }
    //紫晶山西根据设备id和电池组id查询机房告警信息
    public int seachStationAlarm(Object obj){
        BattInf binf=(BattInf) obj;
        String sql="select count(num)  as number " +
                " from db_alarm.tb_devalarm_data "
                + " where dev_id=? limit 1 " ;
        List list=DateUtil.executeQuery(sql, DBUtil.getConn(), new Object[]{binf.getFBSDeviceId()}, new CallBack() {
            public List getResults(ResultSet rs) {
                List list=new ArrayList();
                try {
                    while(rs.next()){
                        int number=rs.getInt("number");
                        list.add(number);
                    }
                } catch (SQLException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                return list;
            }
        });
        int number=0;
        if(list!=null&&list.size()>0){
            number=(Integer) list.get(list.size()-1);
        }
        return number;
    }
    -->
    <resultMap id="Map_BattDevAlarmData3" type="Batt_devalarm_data">
        <id property="num" column="num" />
        <result property="dev_id" column="dev_id" />
        <result property="dev_ip" column="dev_ip" />
        <result property="alm_type" column="alm_type" />
        <result property="alm_level" column="alm_level" />
        <result property="alm_start_time" column="alm_start_time" />
        <result property="alm_end_time" column="alm_end_time" />
        <result property="alm_is_confirmed" column="alm_is_confirmed" />
        <result property="alm_confirmed_time" column="alm_confirmed_time" />
        <result property="alm_cleared_type" column="alm_cleared_type" />
        <result property="alm_value" column="alm_value" />
        <result property="dev_name" column="FbsDeviceName" />
        <result property="stationName" column="stationName" />
        <result property="stationName1" column="stationName1" />
        <result property="stationName2" column="stationName2" />
        <result property="stationName5" column="stationName5" />
    </resultMap>
    <update id="update"></update>
    <update id="updatePro"></update>
    <update id="updatePro">
        <foreach collection="list" item="item" separator=";">
            UPDATE db_alarm.tb_devalarm_data SET  alm_is_confirmed=#{item.alm_is_confirmed},alm_confirmed_time=#{item.alm_confirmed_time} WHERE num=#{item.num}
        </foreach>
    </update>
    <delete id="del"></delete>
    <delete id="delPro"></delete>
    <select id="serchByCondition" resultType="java.util.List"></select>
    <select id="serchByInfo" resultType="java.util.List"></select>
    <select id="searchNums" resultType="java.lang.Integer"></select>
    <delete id="delPro">
        <foreach collection="list" item="item" separator=";">
            DELETE FROM db_alarm.tb_devalarm_data WHERE num=#{item.num};
        </foreach>
    </delete>
    <select id="serchByCondition" resultMap="Map_BattDevAlarmData">
        SELECT
            tb_devalarm_data.num,record_id,dev_id,dev_ip,alm_type,alm_level,alm_start_time,alm_end_time,alm_is_confirmed,alm_confirmed_time,alm_cleared_type,
            DISTINCTbinf.stationName,DISTINCTbinf.FbsDeviceName
        FROM
            db_alarm.tb_devalarm_data,
            (SELECT DISTINCT db_battinf.tb_battinf.FbsDeviceId,db_battinf.tb_battinf.stationName,db_battinf.tb_battinf.FbsDeviceName
            from db_battinf.tb_battinf  where db_battinf.tb_battinf.StationName LIKE concat('%',#{binf.stationName},'%')  AND db_battinf.tb_battinf.StationName1 LIKE concat('%',#{binf.stationName1},'%') )  as DISTINCTbinf
        WHERE  tb_devalarm_data.dev_id=DISTINCTbinf.FbsDeviceId
        AND alm_start_time<![CDATA[>=]]> #{adata_H.alm_start_time} and alm_start_time <![CDATA[<=]]> #{adata_H.alm_start_time1}
        AND alm_cleared_type!=0
        and db_alarm.tb_devalarm_data.dev_id in
            (select distinct db_battinf.tb_battinf.FbsDeviceId
            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=#{uinf.UId})
        ORDER BY alm_start_time DESC
    </select>
    <select id="serchByInfo" resultMap="Map_BattDevAlarmData">
        SELECT
            distinct tb_devalarm_data.num,dev_id,dev_ip,alm_type,alm_level,alm_start_time,alm_end_time,alm_is_confirmed,alm_confirmed_time,alm_cleared_type,
            db_battinf.tb_battinf.stationName,db_battinf.tb_battinf.FbsDeviceName
        FROM db_alarm.tb_devalarm_data,db_battinf.tb_battinf
        WHERE  tb_devalarm_data.dev_id=db_battinf.tb_battinf.FbsDeviceId
        AND alm_cleared_type=0
        <if test="stationName1!=''">
            and stationname1=#{stationName1}
        </if>
        <if test="stationName!=''">
            and stationname1=#{stationName}
        </if>
        <if test="alm_type!=null">
            and alm_type=#{alm_type}
        </if>
        and db_alarm.tb_devalarm_data.dev_id in
            (select distinct db_battinf.tb_battinf.FbsDeviceId
            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=#{uinf.UId})
        ORDER BY alm_start_time DESC
    </select>
    <select id="searchNums" resultType="java.lang.Integer">
        select
            count(0)
        from db_alarm.tb_devalarm_data
        where alm_cleared_type=0
        and db_alarm.tb_devalarm_data.dev_id in
            (select distinct db_battinf.tb_battinf.FbsDeviceId
            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=#{UId})
    </select>
    <select id="serchTopAlmInDev" resultType="java.util.List"></select>
    <select id="serchTopDevTen" resultType="java.util.List"></select>
    <select id="serchDev_alarm" resultType="java.util.List"></select>
    <select id="serchlevelDev_alarm" resultType="java.lang.Integer"></select>
    <select id="searchDevAlarm" resultType="java.util.List"></select>
    <select id="serchDev_alarm" resultMap="Map_BattDevAlarmData2">
        select
            distinct db_alarm.tb_devalarm_data.dev_id,dev_ip,alm_type,alm_start_time,alm_cleared_type,
            db_battinf.tb_battinf.stationname,db_battinf.tb_battinf.stationid,db_battinf.tb_battinf.fbsdevicename
        from db_alarm.tb_devalarm_data,db_battinf.tb_battinf
        where db_alarm.tb_devalarm_data.dev_id=db_battinf.tb_battinf.fbsdeviceid
        and  db_alarm.tb_devalarm_data.dev_id=#{dev_id} and alm_type=#{alm_type} and alm_start_time=#{alm_start_time}
    </select>
    <select id="searchDevAlarm" resultMap="Map_BattDevAlarmData3">
        SELECT
            distinct tb_devalarm_data.num,dev_id,dev_ip,alm_type,alm_level,alm_start_time,alm_end_time,alm_is_confirmed,alm_confirmed_time,alm_cleared_type,alm_value,
            db_battinf.tb_battinf.stationName,
            db_battinf.tb_battinf.stationName1,
            db_battinf.tb_battinf.stationName2,
            db_battinf.tb_battinf.stationName5,
            db_battinf.tb_battinf.FbsDeviceName
        FROM db_battinf.tb_battinf,db_alarm.tb_devalarm_data
        WHERE db_alarm.tb_devalarm_data.dev_id = db_battinf.tb_battinf.FBSDeviceId
        AND db_alarm.tb_devalarm_data.alm_cleared_type = 0 AND db_battinf.tb_battinf.station_install =1
        <if test="dev_id>0">
            AND db_alarm.tb_devalarm_data.dev_id = #{dev_id}
        </if>
    </select>
    <select id="seachStationAlarm" resultType="java.lang.Integer"></select>
    <update id="cancelPro"></update>
    <update id="cancelPro">
        <foreach collection="list" item="item" separator=";">
            UPDATE db_alarm.tb_devalarm_data SET  record_id=#{item.record_id},alm_end_time=#{item.alm_end_time},alm_cleared_type=#{item.alm_cleared_type} WHERE num=#{item.num};
        </foreach>
    </update>
</mapper>