admin:huo123456@qq
2019-01-21 d42cb45f8fc0932e9a0766f98c445635a85b22d3
gx_tieta/WebRoot/batt-state-manage.jsp
@@ -1,4 +1,5 @@
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
@@ -8,22 +9,23 @@
<html>
  <head>
    <base href="<%=basePath%>">
    <title>基站状态管理</title>            <!-- 基站状态管理 -->
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <link href="css/basic.css" rel="stylesheet">
    <link rel="stylesheet" href="css/BrdwMaint.css">
    <link rel="stylesheet" type="text/css" href="css/loading.css">
    <link rel="stylesheet" href="css/nocontent.css">
   <meta http-equiv="pragma" content="no-cache">
   <meta http-equiv="cache-control" content="no-cache">
   <meta http-equiv="expires" content="0">    
   <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
   <meta http-equiv="description" content="This is my page">
    <title><s:text name="Station_real_status_query"/></title>            <!-- 机房实时状态查询 -->
    <link href="css/basic.css" rel="stylesheet">
    <link rel="stylesheet" href="css/BrdwMaint.css">
    <link rel="stylesheet" type="text/css" href="css/loading.css">
    <link rel="stylesheet" type="text/css" href="css/basic-layout.css"/>
    <link rel="stylesheet" href="css/nocontent.css">
    <link rel="stylesheet" href="alifont/iconfont.css">
   <link href="src/css/layui.css" type="text/css" rel="stylesheet">
   <style type="text/css">
      body {
        body {
          overflow-x: hidden !important;
      }
      #tbHead table{
@@ -64,7 +66,11 @@
      .filter a:hover {
          background-color: #2f97ff;
          color: #FFFFFF;
      }
      }
      #eleInfor .checkCon table input {
    width: auto;
    height: 20px;
}
   </style>
    </head>
    <body>
@@ -76,37 +82,45 @@
       <!-- 主体内容 -->
        <div id="main">
            <div id="eleInfor">
                <span class="summary">基站状态管理查询--&gt;<s:text name="Show/hide_the_query_conditions"/></span>
                <div class="checkCon">
                <span class="summary"><s:text name="Station_real_status_query"/>--&gt;<s:text name="Show/hide_the_query_conditions"/></span>
                <div class="checkCon filter-container">
                   <form action="" id="search_form">
                    <!-- 维护区信息 -->
                    <table>
                        <tr class="fWeight">
                            <td>省</td>                  <!-- 省 -->
                            <td>市</td>                  <!-- 市 -->
                            <td>区/县</td>                  <!-- 区/县 -->
                            <td><s:text name="Computer_name"/></td>                           <!-- 机房名称 -->
                            
                        </tr>
                        <tr>
                            <td>
                                <select id="station_name1" name="stationname1">
                                </select>
                                <select id="station_name1" name="stationname1"></select>
                            </td>
                            <td>
                                <select id="city">
                                </select>
                                <select id="city"></select>
                            </td>
                            <td>
                                <select id="station_name3" name="stationname">
                                </select>
                                <select id="county"></select>
                            </td>
                            <td>
                                <select id="station_name3" name="stationname"></select>
                            </td>
                            
                            
                        </tr>
                    </table>
                    <table class="condi-opt">
            <tr>
               <td><input type="checkbox" checked="checked" id="ALM_TYPE_BTS9100S_POFF_ComError" name=""  value=2 class="" /><span class="checkbox-label">停电</span></td>         <!-- 停电 -->
               <td><input type="checkbox" checked="checked" id="ALM_TYPE_BTS9100S_XUHANG_ComError" name=""  value=4 class=""><span class="checkbox-label">续航</span></td>         <!-- 掉站 -->
               <td><input type="checkbox" checked="checked" id="ALM_TYPE_BTS9100S_FADIAN_ComError" name=""  value=8 class="" /><span class="checkbox-label">发电</span></td>      <!-- 发电 -->
               <td><input type="checkbox" checked="checked" id="ALM_TYPE_BTS9100S_DOOROPEN_ComError"   name="" value=16 class="" ><span class="checkbox-label">开门异常</span></td>   <!-- 开门异常 -->
               <td><input type="checkbox" checked="checked" id="ALM_TYPE_BTS9100S_DIAOZHAN_ComError" name=""  value=32 class=""><span class="checkbox-label">掉站</span></td>      <!-- 掉站 -->
            </tr>
         </table>
                    </form>
                </div>
            </div>
@@ -154,6 +168,9 @@
        <script type="text/javascript" src="js/loading.js"></script>
        <script type="text/javascript" src="js/nocontent.js"></script>
        <script type="text/javascript" src="js/createTab.js"></script>
        <script type="text/javascript" src="src/layui.all.js"></script>
        <script type="text/javascript" src="pages/js/common.js"></script>
        <script type="text/javascript" src="js/rightmenu.js"></script>
        <script type="text/javascript">
        var Page={
         pageCurr:1,
@@ -166,7 +183,7 @@
        var tblStatus = new Array();    // 表格状态数组
        var tblOptsHd = new Array();    // 表格选项头部
        var tblOptsBd = new Array();  // 表格选项数组
        arrTh = ['省','市', '机房名称','停电','停电开始时间', '发电','发电开始时间','掉站','掉站开始时间', '门禁状态','开门/关门开始时间', '温度异常','湿度异常'];
        arrTh = ['省','市', '机房名称','停电','停电开始时间','停电时长','发电','发电开始时间','发电时长','掉站','掉站开始时间', '掉站时长','续航','续航开始时间','续航时长','开门/关门异常','开门/关门异常开始时间','开门/关门异常时长', '温度异常','湿度异常'];
       
        //tblOptsHd = ['编号', '选项', '是否选择'];
        tblOptsHd = ['<s:text name="Number"/>', '<s:text name="Options"/>', '<s:text name="IsChecked"/>'];
@@ -175,6 +192,16 @@
        // 根据表格的头部生成表格选项和表格的状态数组
        $(function() {
           //当从其他页面跳转到当前页面选中指定的异常类型并且查询记录
           var station_state = getQueryString('station_state');
           if(station_state){
              //alert(station_state);
              $('#search_form .condi-opt input[type=checkbox]').prop("checked", false);
              $('#search_form .condi-opt [value='+station_state+']:checkbox').attr("checked", true);
           }
            centerDiv($('#cardOption'));
            // 遍历表格头部生成状态数组
            for(var i = 0; i < arrTh.length; i++) {
@@ -191,6 +218,17 @@
            createCard(cardHd, tblOptsHd, tblOptsBd);
            createCard(cardBd, tblOptsHd, tblOptsBd);
        });
         $(document).ready(function(){
      $('#tbBrdw').scroll(function(){
         var scrollX=$(this).scrollLeft();
         $('#tbHead table').css('left',-scrollX+'px');
      });
   });
        // 点击条件筛选更改表格的高度
        $(function() {
@@ -216,12 +254,38 @@
            createAllTbl(tblHd, tblBd, arrTh, arrTd, tblStatus);
            $('#paging .search').click(function() {
                searchstationstate();
                //noContent.showNoContent();         //显示查询失败框
                 searchstationstate(true);
            });
         var menuItems = [{
            txt: '实时-监测数据',cla: 'menu-control'
         }];
         // 添加右键菜单
         tblHd.on('click', 'tbody tr', function(e) {
            // 判断是否为右键
            if(e.which == 3) {
               var disX = (e || event).clientX + 10;   //获取鼠标点击的横坐标
               var disY = (e || event).clientY + 10;   // 获取鼠标点击的纵坐标
               var trData = $(this).data('attr');
               menuItems[0].data = trData;
               //console.log(trData);
               rightMenu.showMenu(menuItems, disX, disY);
            }
         });
         // 点击实时-监测数据跳转
         $('body').on('click', '.menu-control', function() {
            var _data = $(this).data('data');
            //console.log(_data);
            var province = _data.stationName1;
            var city = _data.stationName2;
            var county = _data.stationName5;
            var home = _data.stationName;
            var url = skipUrl('control.jsp',province,city,county,home);
            window.open(url);
         });
            // 点击表格选项显示表格选项弹出框
            $('#paging .card-opt').click(function() {
                var checkboxList = $('#cardOption .con_table table tbody').find('input[type="checkbox"]');
@@ -305,9 +369,13 @@
        }
        
        
         // 省-市-机房-电池组
        var isNewLoad = true;
        // 省-市-机房-电池组
        var filterLoad;
      $(document).ready(function(){
         filterLoad = layer.load();
         var pre_province = getQueryString('province');
         //页面加载时查询省
         $.post("User_battgroup_baojigroup_battgroupAction!serchStationName1InGroup",null,function(data){
            data=data.result;
@@ -324,6 +392,9 @@
                  }else{
                     $option.text(data.data[i-1]);
                     $option.attr("value",data.data[i-1]);   
                     if(pre_province == data.data[i-1] && isNewLoad){
                        $option.attr("selected",true);
                     }
                  }               
                  $select.append($option);
               }
@@ -334,10 +405,15 @@
         });
      });
      
      function findCity() {
      function findCity(isLoad) {
         var data = {
            StationName1: $("#station_name1").val()
         };
         // 是否添加等待
         if(isLoad) {
            filterLoad = layer.load();
         }
         var pre_city = getQueryString('city');
         // 请求获取当前省下的市
         $.ajax({    
              type: "post",             
@@ -355,6 +431,9 @@
                  for(var i=0;i<_data.length;i++){
                     var __data = _data[i];
                     var tmp = getOptionsData(__data.StationName2, __data.StationName2, __data);
                     if(pre_city == __data.StationName2 && isNewLoad){
                        tmp = getOptionsData(__data.StationName2, __data.StationName2, __data,{},true);
                     }
                     optsList.push(tmp);
                  }
                  // 根据数据生成下拉列表
@@ -362,25 +441,87 @@
                 }else {
                    $select.text('').html('<option>暂无可测市</option>');
                 }
                 findStationNamebyStationname1();
                 findCounty();
              }
          });
      }
      //当维护区的值变换时更新市
      // 查询区/县
      function findCounty(isLoad) {
         var tmp = {
            StationName1:$("#station_name1").val(),
            StationName2:$("#city").val(),
         };
         // 是否添加等待
         if(isLoad) {
            filterLoad = layer.load();
         }
         var pre_county = getQueryString('county');
         // 查询区县
         $.ajax({
            type: 'post',
            async: true,
            url: "BattInfAction!serchStationName5",
            data: "json="+JSON.stringify(tmp),
            success:function(data) {
               var rs = JSON.parse(data.result);
               var $select = $("#county");
               if(rs.code==1){
                  var _data = rs.data;
                  // 根据数据构造生成下拉列表的数据
                  var optsList = [];
                  for(var i=0;i<_data.length;i++){
                     var __data = _data[i];
                     var _attr = {
                        StationId: __data.StationId
                     };
                     var tmp = getOptionsData(__data.StationName5, __data.StationName5, __data, _attr);
                     if(pre_county == __data.StationName5 && isNewLoad){
                        tmp = getOptionsData(__data.StationName5, __data.StationName5, __data, _attr,{},true);
                     }
                     optsList.push(tmp);
                  }
                  // 根据数据生成下拉列表
                  createOptions($select, optsList, true);
               }else{
                  $select.text('').html('<option>暂无可测机房站点</option>');
               }
               findStationNamebyStationname1();
            }
         });
      }
      // 当维护区的值变换时更新市
      $('#station_name1').change(function(){
         findCity();
         findCity(true);
      });
      //当维护区的值变换时更新机房站点
      // 当维护区的值变换时更新机房站点
      $('#city').change(function(){
         findStationNamebyStationname1();
         findCounty(true);
      });
      // 当区/县的值变换时更新机房站点
      $('#county').change(function(){
         findStationNamebyStationname1(true);
      });
      // 当电池组的值变化时更新内容
      $('#station_name3').change(function() {
         searchstationstate(true);
      });
      
      //根据省,市查询站点
      function findStationNamebyStationname1(){
      function findStationNamebyStationname1(isLoad){
         var tmp = {
            StationName1:$("#station_name1").val(),
            StationName2:$("#city").val()
            StationName2:$("#city").val(),
            StationName5:$("#county").val()
         };
         // 是否添加等待
         if(isLoad) {
            filterLoad = layer.load();
         }
         var pre_home = getQueryString('home');
         //var selectvalue=$("#station_name1 option:selected").val();
         //alert(selectvalue);
         $.post("BattInfAction!serchStationName3","json="+JSON.stringify(tmp),function(data){
@@ -392,20 +533,14 @@
               var optsList = [];
               //console.info(_data[0]);
               for(var i=0;i<_data.length;i++){
               /*   $option=$("<option></option>");
                  if(i==0){
                     $option.html("<s:text name='All'/>(<s:text name='Common'/>"+_data.length+"<s:text name='Species'/>)");
                     $option.attr("value","");
                  }else{
                     $option.text(_data[i-1].StationName3);
                     $option.attr("value",_data[i-1].StationId);
                  }
                  $select.append($option);*/
                  var __data = _data[i];
                  var _attr = {
                     StationId: __data.StationId
                  };
                  var tmp = getOptionsData(__data.StationName3, __data.StationName, __data, _attr);
                  var tmp = getOptionsData(__data.StationName3, __data.StationName3, __data, _attr);
                  if(pre_home == __data.StationName && isNewLoad){
                     tmp = getOptionsData(__data.StationName3, __data.StationName3, __data, _attr,{},true);
                  }
                  optsList.push(tmp);
               }
               // 根据数据生成下拉列表
@@ -414,30 +549,75 @@
               $("#station_name3").text('').html('<option>暂无可测机房站点</option>');
               
            }
            isNewLoad = false;
            layer.close(filterLoad);
            searchstationstate(true);
         });
      }
      
      //构造查询条件
      function createSearchParam(){
         //alert($('#endu_type').val());
         var stationid = $('#station_name3').find("option:selected").attr('Stationid');
         var battgroupid = batt_condition();
         var temp = {         
            page:{
               pageSize:$('#number').val(),
               pageCurr:Page.pageCurr,
            },                                    
            StationName1:$('#station_name1').val(),                     //市
            StationName2:$('#city').val(),
            StationName3:$('#station_name3').find("option:selected").text(),
            StationId:$('#station_name3').find("option:selected").attr('Stationid'),
            StationName1:$('#station_name1').val(),      // 省
            StationName2:$('#city').val(),            // 市
            StationName5:$('#county').val(),         // 区/县
            StationName3:$('#station_name3').val(),
            StationId: stationid?stationid:0,
            BattGroupNum:battgroupid,
         };
         console.info(temp);
         //console.info(temp);
         return temp;
      }
      function batt_condition(){
         var POFF_ComError = 0;
         var XUHANG_ComError = 0;
         var FADIAN_ComError = 0;
         var DIAOZHAN = 0;
         var DOOROPEN_ComError = 0;
         var condition = 0;
         if($('#ALM_TYPE_BTS9100S_POFF_ComError').attr("checked")){
            POFF_ComError = $('#ALM_TYPE_BTS9100S_POFF_ComError').val();
            condition+=parseInt(POFF_ComError);
         }
         if($('#ALM_TYPE_BTS9100S_XUHANG_ComError').attr("checked")){
            XUHANG_ComError = $('#ALM_TYPE_BTS9100S_XUHANG_ComError').val();
            condition+=parseInt(XUHANG_ComError);
         }
         if($('#ALM_TYPE_BTS9100S_FADIAN_ComError').attr("checked")){
            FADIAN_ComError = $('#ALM_TYPE_BTS9100S_FADIAN_ComError').val();
            condition+=parseInt(FADIAN_ComError);
         }
         if($('#ALM_TYPE_BTS9100S_DIAOZHAN_ComError').attr("checked")){
            DIAOZHAN = $('#ALM_TYPE_BTS9100S_DIAOZHAN_ComError').val();
            condition+=parseInt(DIAOZHAN);
         }
         if($('#ALM_TYPE_BTS9100S_DOOROPEN_ComError').attr("checked")){
            DOOROPEN_ComError =   $('#ALM_TYPE_BTS9100S_DOOROPEN_ComError').val();
            condition+=parseInt(DOOROPEN_ComError);
         }
         //condition = POFF_ComError+XUHANG_ComError+DIAOZHAN+DOOROPEN_ComError+FADIAN_ComError;
         //console.info(condition);
         return condition;
      }
      function searchstationstate(){
      var myTimeOut;
      //查询机房状态
      function searchstationstate(isLoad){
         var temp = createSearchParam();
         var arrTd = new Array();
         arrTd = new Array();
         // 是否添加等待
         var load;
         if(isLoad) {
            load = layer.load(1);
         }
         $.ajax({
            type: "post",
            url: "Bts_station_stateAction_action_serchByCondition",
@@ -452,37 +632,146 @@
                  console.info(data.data);
                  var data = data.data;
                  //console.info(data[0].dev_id);
                  for(i=0;i<data.length;i++){
                     arrTd[index++]=data[0].stationName1;  //省
                     arrTd[index++]=data[0].stationName2;   //市
                     arrTd[index++]=data[0].stationName3;   //机房
                  //   if(data[0].station_stat_poff==1){
                  for(var i=0;i<data.length;i++){
                     var _data = data[i];
                     arrTd[index++] = _data.stationName1;  //省
                     arrTd[index++] = _data.stationName2;   //市
                     arrTd[index++] = _data.stationName3;   //机房
                     
                  //   }
                     arrTd[index++]=data[0].station_stat_poff; //停电
                     // 停电
                     if(_data.station_stat_poff) {
                        arrTd[index++] = create_ali_font('icon-tingdian-', 'red', {msg:'停电异常'});
                        arrTd[index++] = _data.station_poff_start_time; //停电开始时间
                        arrTd[index++] = StringtoData(_data.station_poff_start_time);      //停电时长
                     }else {
                        arrTd[index++] = create_ali_font('icon-tingdian-', 'green', {msg: '正常'});
                        arrTd[index++] = "-";
                        arrTd[index++] = formartTime(0);
                     }
                     // 发电
                     if(_data.station_stat_fadian) {
                        arrTd[index++] = create_ali_font('icon-dynamotor', 'red', {msg: '发电异常'}); //发电
                        arrTd[index++] = _data.station_fadian_start_time;   //发电开始时间
                        arrTd[index++] = StringtoData(_data.station_fadian_start_time);
                     }else {
                        arrTd[index++] = create_ali_font('icon-dynamotor', 'green', {msg: '正常'}); //发电
                        arrTd[index++] = "-";   //发电开始时间
                        arrTd[index++] = formartTime(0);
                     }
                     // 掉站
                     if(_data.station_stat_diaozhan) {
                        arrTd[index++] = create_ali_font('icon-dianchi', 'red', {msg: '已掉站'});
                        arrTd[index++] = _data.station_diaozhan_start_time;//掉站开始时间
                        arrTd[index++] = StringtoData(_data.station_diaozhan_start_time);
                     }else {
                        arrTd[index++] = create_ali_font('icon-dianchi4', 'green', {msg: '正常'});
                        arrTd[index++] = "-";//掉站开始时间
                        arrTd[index++] = formartTime(0);
                     }
                     //续航
                     if(_data.station_stat_xuhang){
                        arrTd[index++] = create_fa_font('fa-television','red',{msg: '续航异常'});
                        arrTd[index++] = _data.station_xuhang_start_time;
                        arrTd[index++] = StringtoData(_data.station_xuhang_start_time);
                     }else{
                        arrTd[index++] = create_fa_font('fa-television','green',{msg: '正常'});
                        arrTd[index++] = _data.station_xuhang_start_time;
                        arrTd[index++] = getXunHangTimeLong(_data.station_xuhang_end_time, _data.station_xuhang_start_time, _data.station_stat_xuhang);
                     }
                     
                     arrTd[index++]=data[0].station_poff_start_time //停电开始时间
                     // 开门关门异常
                     if(_data.station_stat_dooropen) {
                        arrTd[index++] = create_ali_font('icon-quankaimen', 'red', {msg: '开门'});
                        arrTd[index++] = _data.station_dooropen_start_time;//开门关门异常时间
                        arrTd[index++] = StringtoData(_data.station_dooropen_start_time);
                     }else {
                        arrTd[index++] = create_ali_font('icon-quankaimen', 'green', {msg: '关门'});
                        arrTd[index++] = "-";//开门关门异常时间
                        arrTd[index++] = formartTime(0);
                     }
                     arrTd[index++] = _data.station_temp; //温度
                     arrTd[index++] = _data.station_damp; //湿度
                     
                     arrTd[index++]=data[0].station_stat_fadian;//发电
                     arrTd[index++]=data[0].station_fadian_start_time;//发电开始时间
                     arrTd[index++]=data[0].station_stat_diaozhan;//掉站
                     arrTd[index++]=data[0].station_diaozhan_start_time;//掉站开始时间
                     arrTd[index++]=data[0].station_stat_dooropen;//开门关门异常
                     arrTd[index++]=data[0].station_dooropen_start_time;//开门关门异常时间
                     arrTd[index++]=data[0].station_temp; //温度
                     arrTd[index++]=data[0].station_damp; //湿度
                     Page.pageAll = _data.page.pageAll;
                  }
                  createAllTbl(tblHd, tblBd, arrTh, arrTd, tblStatus);
                  var pageNum=Math.ceil(Page.pageAll/Page.pageSize);
                  $('#total').text(Page.pageAll);
                  $('#current').text(Page.pageCurr+"/"+pageNum);
               }else{
                  Page.pageAll = 0;
                  var pageNum=Math.ceil(Page.pageAll/Page.pageSize);
                  $('#total').text(Page.pageAll);
                  $('#current').text(Page.pageCurr+"/"+pageNum);
               }
               layer.close(load);
               createFullTbl(tblHd, tblBd, arrTh, arrTd, tblStatus);
               // 给每一行添加数据
               var trList = tblBd.find('tbody tr');
               // 遍历内容给tr添加attr
               for(var i=0; i<data.length; i++) {
                  trList.eq(i).data('attr', data[i]);
               }
               window.clearTimeout(myTimeOut);
               myTimeOut = window.setTimeout(searchstationstate, 8000);
            }
         })
         });
      }
      // 页面容器大小改变触发
      $(window).resize(function() {
         setTblWidth(tblHd, tblBd);
      });
      // 获取续航时长
      function StringtoData(value){
         var date1= value;  //开始时间
           var date2 = new Date();    //结束时间
           var date3 = date2.getTime() - new Date(date1).getTime();   //时间差的毫秒数
         var date4 = Math.floor(date3/(1000));
         return formartTime(date4);
      }
      // 通过续航开始时间和结束时间获取续航的时长
      function getXunHangTimeLong(start, end, state) {
         var timeLong = '';
         if(start && end) {
            var _timeLong = new Date(end).getTime()-new Date(start).getTime();
            timeLong = Math.floor(_timeLong/(1000));
         }
         // 最终时间xx天xx时xx分钟
         var rsTime = '-';
         if(isNumber(timeLong)&&!state) {
            rsTime = formartTime(timeLong)
         }
         return rsTime;
      }
            
      //格式化时间value传入为秒
      function formartTime(value){
         value = Math.abs(parseInt(value));
         //console.info(value);
         var day_num = 0;
         var hour_num = 0;
         var min_num = 0;
         if(value>=24*60*60){
            day_num = Math.floor(value/(24*60*60));
            value = value%(24*60*60);
         }
         if(value>=60*60){
            hour_num = Math.floor(value/(60*60));
            value = value%(60*60);
         }
         min_num = Math.floor(value/60);
         return day_num+"天"+hour_num+"小时"+min_num+"分";
      }
               
      //首页
      $('#home').click(function(){
@@ -591,7 +880,16 @@
         var ArrTd="";
         for(var i=0;i<eleTd.length;i++)
         {
                ArrTd+=eleTd.eq(i).text()+"&";
            var _index = (i+1)%eleTh.length;
            var _icon = eleTd.eq(i).find('.icon');
            var _fa = eleTd.eq(i).find('.fa');
            if(_icon.length) {
               ArrTd+=eleTd.eq(i).find('.icon').data('msg')+"&";
            }else if(_fa.length){
               ArrTd+=eleTd.eq(i).find('.fa').data('msg')+"&";
            }else{
               ArrTd+=eleTd.eq(i).text()+"&";
            }
         }
         eleTh_Text.attr('value',ArrTh);
         eleTd_Text.attr('value',ArrTd);