81041
2019-01-11 68dfe47cf6a32ac3560fc4b64e11eaa47c3bb6e7
gx_tieta/WebRoot/Top.jsp
@@ -64,27 +64,24 @@
         <div class="batt-state">
         
            <div class="list">
               <div class="list-contain"><s:text name='Computer_room'/><s:text name='Power_cut'/><s:text name='Num'/>:<a href="batt-state-manage.jsp" class="badge default" id="poweroff_num">0</a></div>      <!-- 机房停电数 -->
               <div class="list-contain"><s:text name='Power_cut'/><s:text name='Computer_room'/><s:text name='Num'/>:<a href="batt-state-manage.jsp?station_state=2" class="badge default" id="poweroff_num"><span class="num">0</span></a></div>      <!-- 机房停电数 -->
            </div>
            <div class="list">
               <div class="list-contain"><s:text name="Batt"/><s:text name="Alarm"/><s:text name="Num"/>:<a href="elewarn.jsp" class="badge danger" id="batt_alarm_num">0</a></div>                        <!-- 电池告警数 -->
               <div class="list-contain">续航不足机房数:<a href="batt-life-manage.jsp?is_stand=1" class="badge default" id="weak_home"><span class="num">0</span></a></div>      <!-- 机房续航不足数 -->
            </div>
            <div class="list">
               <div class="list-contain"><s:text name="Equipment"/><s:text name="Alarm"/><s:text name="Num"/> :<a href="equipWarn1.jsp" class="badge danger" id="dev_alarm_num">0</a></div>                  <!-- 设备告警数 -->
               <div class="list-contain"><s:text name="Batt"/><s:text name="Alarm"/><s:text name="Num"/>:<a href="elewarn.jsp" class="badge danger" id="batt_alarm_num"><span class="num">0</span></a></div>                        <!-- 电池告警数 -->
            </div>
            <div class="list">
               <div class="list-contain"><s:text name="Capacity"/><s:text name="Behind_number_monomer"/>:<a href="taskplan.jsp" class="badge default" id="batt_low_num">0</a></div>                                             <!-- 落后单体数 -->
               <div class="list-contain"><s:text name="Capacity"/>落后单体数:<a href="taskplan.jsp" class="badge default" id="batt_low_num"><span class="num">0</span></a></div>                                             <!-- 落后单体数 -->
            </div>
            <c:forEach var="cust" items="${sessionScope.custompages}">
               <c:if test="${cust.submenu eq 'Discharge_plan_manage' && cust.subflag eq 1}">
                  <div class="list">
                     <div class="list-contain"><s:text name="Unfinished"/><s:text name="Discharge_plan"/><s:text name="Num"/>:<a href="dischargeplan.jsp?discharge-state=0" class="badge default" id="discharge_plan_num">0</a></div>   <!-- 未完成放电计划数 -->
                  </div>
               </c:if>
            </c:forEach>
            <div class="list">
               <div class="list-contain"><s:text name="Equipment"/><s:text name="Alarm"/><s:text name="Num"/> :<a href="equipWarn1.jsp" class="badge danger" id="dev_alarm_num"><span class="num">0</span></a></div>                  <!-- 设备告警数 -->
            </div>
            <div class="list">
               <div class="list-contain">
                  核容测试设备:<a href="javascript:void(0);" class="badge default" id="nuclear_test">0</a>
                  核容测试设备数:<a href="javascript:void(0);" class="badge default" id="nuclear_test"><span class="num">0</span></a>
               </div>
            </div>
         </div>
@@ -127,11 +124,22 @@
            <div class="cell-list plan-ele">
               <img src="image/webStatus/plan_normal.gif" alt="放电计划监测线程" title="放电计划监测线程:正常">
            </div>
            <div class="cell-list break-ele">
            <div class="cell-list break-ele" style="display: none;">
               <img src="image/webStatus/break_ele_normal.gif" alt="机房停电监测线程" title="机房停电监测线程:正常">
            </div>
            </div>
            <div class="cell-list control">
               <img src="image/webStatus/control_normal.gif" alt="线程监控程序" title="线程监控程序运行:正常">
            </div>
            <div class="cell-list voice">
               <i class="fa fa-bell" title="关闭语音播报"></i>
               <i class="fa fa-bell-slash" title="开启语音播报"></i>
            </div>
            <div class="cell-list server-time" style="white-space: nowrap">
               2018-11-26 00:00:00
            </div>
            <div class="cell-list batt-count" style="white-space: nowrap; color: #FF0000;">
               电池总数:<span class="batt-num">0</span>&nbsp;,&nbsp;机房总数:<span class="dev-num">0</span>
            </div>         
         </div>
         <div class="international">
@@ -175,7 +183,7 @@
            <div class="navNuclearTest-header clearfix">
               <span class="navNuclearTest-title"><i class="fa fa-navicon mr5"></i>核容测试</span>
               <div class="navNuclearTest-close fr mr10">
                  <i class="fa fa-file-text-o mr10" title="更多详情"></i>
                  <!-- <i class="fa fa-file-text-o mr10" title="更多详情"></i> -->
                  <i class="fa fa-close"  title="关闭"></i>
               </div>
            </div>
@@ -188,15 +196,45 @@
      </div>
   </div>
  </body>
  <script type="text/javascript">
   // 检测页面是否被访问
   var pageIsVisit = false;
   ;(function($) {
      // 隐藏的原型
       var hiddenProperty = 'hidden' in document ? 'hidden' :
          'webkitHidden' in document ? 'webkitHidden' :
          'mozHidden' in document ? 'mozHidden' :
          null;
          // 页面初始化
          if (!document[hiddenProperty]) {
              pageIsVisit = true;
          }else{
              pageIsVisit = false;
          }
       var visibilityChangeEvent = hiddenProperty.replace(/hidden/i, 'visibilitychange');
       var onVisibilityChange = function(){
           if (!document[hiddenProperty]) {
               pageIsVisit = true;
           }else{
               pageIsVisit = false;
           }
       }
         document.addEventListener(visibilityChangeEvent, onVisibilityChange);
   })(jQuery);
  </script>
  <script src="pages/js/base.js"></script>
  <script src="pages/js/common.js"></script>
  <script src="js/dev.js"></script>
  <script src="js/createTab.js"></script>
  <script type="text/javascript" src="js/scrollBar.js"></script>
  <script type="text/javascript" src="js/VoiceUtil.js"></script>
  <script type="text/javascript" src="js/rightmenu.js"></script>
  <script type="text/javascript">
     $(document).ready(function(){
      setUserName();            //设置用户名称
      //setUserName();            //设置用户名称
      
      searchRecentlyAlarm();      //查询最近30秒的设备和电池告警
      
@@ -215,12 +253,12 @@
            });
         }
      });
      searchAlm();            //查询电池告警总数
      searchAlm(pageIsVisit);            //查询电池告警总数(我在base.js里)
      searchlowmon();            //查询落后单体总数
      searchpoweroff();         //查询机房停电总数
      searchdevalarm();         //查询设备实时告警总数
      searchnotcomplan();         //查询未放电的计划总数
      searchWeakHome();         //查询机房续航不足的个数
      /* setInterval(function(){
         searchlowmon();         //查询落后单体总数
         searchpoweroff();      //查询机房停电总数
@@ -234,6 +272,13 @@
   
   //查询落后单体总数
   function searchlowmon(){
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(searchlowmon, 5000);
         return;
      }
      $.ajax({    
             type: "post",             
           url: "BadBatt_monAction!searchNums",            
@@ -243,7 +288,7 @@
           success: function(data){ 
              data = eval("("+data+")");
              var model = eval("("+data.result+")");
              $('#batt_low_num').text(model.sum);
              $('#batt_low_num .num').text(model.sum);
              setTimeout(searchlowmon, 5000);
           },
           error:function() {
@@ -254,6 +299,12 @@
   
   //查询机房停电总数
   function searchpoweroffOld(){
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(searchpoweroffOld, 5000);
         return;
      }
      $.ajax({    
             type: "post",             
           url: "BattPower_offAction!serchPowerOff",            
@@ -263,7 +314,7 @@
           success: function(data){ 
              data = eval("("+data+")");
              var model = eval("("+data.result+")");
              $('#poweroff_num').text(model.sum);
              $('#poweroff_num .num').text(model.sum);
              setTimeout(searchpoweroff, 5000);
           },
           error:function() {
@@ -274,6 +325,11 @@
   
   //查询机房停电总数
   function searchpoweroff(){
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(searchpoweroff, 5000);
         return;
      }
      $.ajax({    
             type: "post",             
           url: "Bts_station_stateAction_action_serchByState",            
@@ -283,7 +339,7 @@
           success: function(data){ 
              var model = eval("("+data.result+")");
              //console.info(model);
              $('#poweroff_num').text(model.newsum);
              $('#poweroff_num .num').text(model.newsum);
              setTimeout(searchpoweroff, 5000);
           },
           error:function() {
@@ -294,6 +350,11 @@
   
   //查询设备告警总数
   function searchdevalarm(){
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(searchdevalarm, 5000);
         return;
      }
      $.ajax({    
             type: "post",             
           url: "Batt_devalarm_dataAction!searchNums",            
@@ -303,7 +364,7 @@
           success: function(data){ 
              data = eval("("+data+")");
              var model = eval("("+data.result+")");
              $('#dev_alarm_num').text(model.sum);
              $('#dev_alarm_num .num').text(model.sum);
              setTimeout(searchdevalarm, 5000);
           },
           error:function() {
@@ -314,6 +375,11 @@
   
   //查询放电计划延迟总数
   function searchnotcomplan(){
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(searchnotcomplan, 5000);
         return;
      }
      $.ajax({    
             type: "post",             
           url: "BattDischarge_planAction!searchNums",            
@@ -332,7 +398,82 @@
      });
   }
   
   // 机房续航不足个数
   function searchWeakHome() {
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(searchWeakHome, 5000);
         return;
      }
      $.ajax({
         type: 'post'
         ,async: true
         ,url: 'Batt_enduranceAction!serchxuhangNotInThree'
         ,data: null
         ,dataType: 'json'
         ,success: function(res) {
            var rs = JSON.parse(res.result);
            $('#weak_home .num').text(rs.sum);
            setTimeout(searchWeakHome, 5000);
         }
      });
   }
   
   // 查询所有的设备数
   searchAllDevNum();
   function searchAllDevNum() {
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(searchAllDevNum, 5000);
         return;
      }
      $.ajax({
         type: 'post'
         ,async: true
         ,url: 'BattInfAction!serchByDeviceId'
         ,data: null
         ,dataType: 'json'
         ,success: function(res) {
            var rs = JSON.parse(res.result);
            if(rs.code == 1) {
               var sum = rs.sum;
               $('.cell-list.batt-count .dev-num').text(sum);
               // $('.batt-state .dev-num').text(sum);
            }
            // 延时执行
            setTimeout(searchAllDevNum, 5000);
         }
      });
   }
   // 查询所有的电池组数
   searchAllEleGroupNum();
   function searchAllEleGroupNum() {
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(searchAllEleGroupNum, 5000);
         return;
      }
      $.ajax({
         type: 'post'
         ,async: true
         ,url: 'BattInfAction!serchByInstall_count'
         ,data: null
         ,dataType: 'json'
         ,success: function(res) {
            var rs = JSON.parse(res.result);
            if(rs.code == 1) {
               var sum = rs.sum;
               $('.cell-list.batt-count .batt-num').text(sum);
               //$('.batt-state .batt-num').text(sum);
            }
            // 延时执行
            setTimeout(searchAllEleGroupNum, 5000);
         }
      });
   }
   
   
   $(function(){
@@ -362,7 +503,6 @@
   // 添加天气插件和电池信息长度控制
   $(function() {
      limitWidth();
      //addWeather();
   });
   // 限制显示个数
@@ -486,6 +626,11 @@
    * 实时查询告警信息
    */
   function searchBattAndDevAlarm(){
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(searchBattAndDevAlarm, 3000);
         return;
      }
      $.ajax({    
           type:"post",             
           url: "Battalarm_dataAction!serchTopAlmTen",            
@@ -525,6 +670,36 @@
         } 
      }
      warnAlarmData = temp;
   }
   seachServerTime();
   //获取服务器上的时间
   function seachServerTime(){
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(seachServerTime, 1000);
         return;
      }
      $.ajax({
           type:"post",
           url: "User_infAction!searchServerTime",
           async:true,
           dataType:'text',
           data:null,
           success: function(data){
            data = eval('('+data+')');
            var model = eval('('+data.result+')');
            if(model.code == 1){
               $('.server-time').text(model.msg);
            }else{
            }
            setTimeout(seachServerTime, 1000);
          },
          error:function() {
             setTimeout(seachServerTime, 2000);
          }
      });
   }
   
   // 监测当前的告警信息是否为最新的告警
@@ -574,16 +749,17 @@
            var model = eval('('+data.result+')');
            if(model.code == 1){
               var obj = model.data[0];
               //console.info(obj);
               console.info(obj);
               if(obj.alm_cleared_type == 0){
                  //实时告警
                  window.open("elewarn.jsp?stationId="+obj.stationid+"&battgroupId="+obj.BattGroupId);
                  window.open("elewarn.jsp?home="+obj.stationname+"&battid="+obj.BattGroupId);
               }else{
                  //历史告警
                  window.open("eleHistoryWarn.jsp?stationId="+obj.stationid+"&battgroupId="+obj.BattGroupId);
                  window.open("eleHistoryWarn.jsp?home="+obj.stationname+"&battid="+obj.BattGroupId);
               }
            }else{
               alert("该告警已经被删除");
               alert("该告警已经恢复");
               //window.open("eleHistoryWarn.jsp?home="+obj.stationname+"&battid="+obj.BattGroupId);
            }            
          }             
      });
@@ -609,12 +785,12 @@
               var obj = model.data[0];
               console.info(obj);
               if(obj.alm_cleared_type == 0){
                  window.open("equipWarn1.jsp");
                  window.open("equipWarn1.jsp?home="+obj.stationName);
               }else{
                  window.open("equipHistWarn1.jsp?stationId="+obj.stationId);
                  window.open("equipHistWarn1.jsp?home="+obj.stationName);
               }
            }else{
               alert("该告警已经被删除");
               alert("该告警已经恢复");
            }      
          }             
      });
@@ -622,6 +798,11 @@
   
   //查询最近30内的设备和电池告警并播报语音
   function searchRecentlyAlarm(){
      // 判断页面是否被访问
      if(!pageIsVisit) {
         setTimeout(searchRecentlyAlarm, 5000);
         return;
      }
      $.ajax({    
             type: "post",             
           url: "Battalarm_dataAction!serchIn30",            
@@ -651,17 +832,20 @@
   
   // 核容测试模块
   $(function() {
      var arrTh = ['机房名称', '设备ID', '设备名称','设备状态', '在线电压(V)', '组端电压(V)', '组端电流(mA)','设备温度(℃)', '已测容量(AH)', '设备告警', '已测时间'];
      var arrTh = ['机房名称', '设备ID', '设备名称','设备状态', '在线电压(V)', '组端电压(V)', '组端电流(A)','设备温度(℃)', '已测容量(AH)', '设备告警', '已测时间'];
      var arrTd = [];
      var eleTh = $('#navNuclearTest-data .nuclearTest-tbl-header');
      var eleTd = $('#navNuclearTest-data .nuclearTest-tbl-body');
      var timer = new GLOBAL.Timer.timer({
         fun:search61850Nuclear_cap,
         fun:searchNuclear_cap,
         times: 4000
      });
      var isNew = true;
      var dev61850Alarms = GLOBAL.DEV61850.alarmstates;
      var dev61850Work = GLOBAL.DEV61850.workstates;
      var BTS_workstates = GLOBAL.BTS9100.workstates;
      var BTS_alarmstates = GLOBAL.BTS9100.alarmstates
      
      timer.start();
      // 点击核容测试条数
@@ -687,18 +871,49 @@
            alert('当前为详情页,不用跳转!');
         }
      });
      //查询当前用户管理的61850正在处于核容测试的设备记录
       function search61850Nuclear_cap(){
      var menuItems = [{
         txt: '实时-监测数据',cla: 'menu-control'
      }];
      eleTd.on('mousedown', '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);
      });
      //查询当前用户管理的BTS正在处于核容测试的设备记录
       function searchNuclear_cap(){
          $.ajax({    
              type:"post",       
              url: "Fbs9100_stateAction_action_seach6185Nuclear_cap",
              url: "Fbs9100_stateAction_action_seachNuclear_cap",
              async:true,            
              dataType:'json',
              data:null,      
              success: function(data){ 
               var model = eval('('+data.result+')');
               //console.info(model);
               if(model.code == 1){
                  $('#nuclear_test').text(model.data.length);
                  $('#nuclear_test .num').text(model.data.length);
                  if(model.data.length != 0) {
                     if(!$('#navNuclearTest').hasClass('hide') || isNew) {
                        createTblByModel(model);
@@ -706,7 +921,7 @@
                     isNew=false;
                  }
               }else {
                  $('#nuclear_test').text(0);
                  $('#nuclear_test .num').text(0);
                  createFullTbl(eleTh, eleTd, arrTh, []);
               }         
                },
@@ -715,10 +930,7 @@
                }             
         });
       }
       
       // 根据数据生成表格
       function createTblByModel(model) {
@@ -726,22 +938,29 @@
          arrTd = [];
         for(var i=0; i<model.data.length; i++) {
            var data = model.data[i];
            arrTd.push(data.stationName);            // 机房名称
            arrTd.push(data.dev_id);               // 设备ID
            arrTd.push(data.deviceName);            // 设备名称
            arrTd.push(dev61850Work[data.dev_workstate]);            // 设备名称
            arrTd.push(data.dev_captest_onlinevol);            // 在线电压
            arrTd.push(data.dev_captest_groupvol);            // 组端电压
            arrTd.push(data.dev_captest_curr);            // 组端电流
            arrTd.push(data.dev_temp);               // 设备温度
            arrTd.push(data.dev_captest_cap);   // 已测容量
            arrTd.push(getAlarmsText(data.dev_61850alarms));   // 设备告警
            arrTd.push(formatSeconds(data.num));      // 已测时间
            arrTd.push(data.stationName);                              // 机房名称
            arrTd.push(data.dev_id);                                 // 设备ID
            arrTd.push(data.deviceName);                              // 设备名称
            arrTd.push(getStateByArray(data.dev_workstate,BTS_workstates));      // 设备名称
            arrTd.push(data.dev_captest_onlinevol);                        // 在线电压
            arrTd.push(data.dev_captest_groupvol);                        // 组端电压
            arrTd.push(data.dev_captest_curr);                           // 组端电流
            arrTd.push(data.dev_temp);                                 // 设备温度
            arrTd.push(data.dev_captest_cap);                           // 已测容量
            arrTd.push(getStateByArray(data.dev_alarmstate,BTS_alarmstates));   // 设备告警
            arrTd.push(formatSeconds(data.dev_captest_timelong));            // 已测时间
         }
         createFullTbl(eleTh, eleTd, arrTh, arrTd);
         
         // 根据告警值设置温度,k1电阻,导通压降的字体颜色
         // 给每一行添加数据
         var trList = eleTd.find('tbody tr');
         // 遍历内容给tr添加attr
         for(var i=0; i<model.data.length; i++) {
            trList.eq(i).data('attr', model.data[i]);
         }
         // 根据告警值设置温度,k1电阻,导通压降的字体颜色
         /* var trList = eleTd.find('tbody tr');
         for(var i=0; i<model.data.length; i++) {
            var alarms = model.data[i].dev_61850alarms.split(',');   // ['k1电阻', '通讯', '温度', '导通压降']
            
@@ -749,7 +968,16 @@
            if(alarms[2] == 'true') {
               trList.eq(i).find('td').eq(7).addClass('red');
            }
         }
         } */
       }
       //根据状态获取设备的状态
       function getStateByArray(state,statearr){
          var str = "未知";
          if(statearr && state < statearr.length){
             str = statearr[state];
          }
          return str;
       }
       
       // 获取告警参数
@@ -767,5 +995,102 @@
          return str;
       }
   });
   /**
     检测服务器连接是否正常
     程序功能: 通过请求后台程序如果三次都请求失败认为服务器挂掉,跳转到登陆页面
   */
   ;(function ($) {
      var url = window.location.href;
      var loginPatt = /\/login.jsp/;
      // 判断当前页面不是登陆页面开始执行检测服务器状态
      if(!loginPatt.test(url)) {
         //checkServer();
      }
      var linkNum = 0;    // 测试服务器连接计数 =3 跳转到登陆页面
      function checkServer() {
          $.ajax({
              url:'User_infAction!checkService',
              type: 'post',
              async: true,
              success: function(rs) {
                  linkNum = 0;    // 初始化测试连接
                  setTimeout(checkServer, 200);
              },
              error:function() {
                  // 网络连接不正常
                  if(!navigator.onLine) {
                       linkNum = 0;
                       setTimeout(checkServer, 200);
                  }else{
                      linkNum++;
                       // 服务器连接不正常
                       if(linkNum == 3) {
                          console.info('出现第'+linkNum+"次测试服务器连接失败!跳转到登陆");
                          // 网络正常但服务器连续多次检测不正常跳转到登陆页面
                         alert('网络连接异常,请检查网络连接是否正常!');
                          window.location.replace("login.jsp");
                       }else {
                          console.info('出现第'+linkNum+"次测试服务器连接失败!");
                          checkServer();
                       }
                  }
              }
          });
      }
   })(jQuery);
   // 监测后台session是否存判断当前用户连接是否合法
   ;(function ($) {
      var url = window.location.href;
      var loginPatt = /\/login.jsp/;
      // 判断当前页面不是登陆页面开始执行检测服务器状态
      if(!loginPatt.test(url)) {
         checkServer();
      }
      var linkNum = 0;    // 测试服务器连接计数 =3 跳转到登陆页面
      function checkServer() {
         $.ajax({
              url:'LoginAction_check',
              type: 'post',
              async: true,
              success: function(res) {
                 //console.log(res);
                 var rs = JSON.parse(res.result);
                 if(rs.code==0) {
                    linkNum = 0;    // 初始化测试连接
                     setTimeout(checkServer, 100);
                 }else {
                    alert(rs.msg);
                     window.location.replace("login.jsp");
                 }
              },
              error: function() {
                 // 网络连接不正常
                  if(!navigator.onLine) {
                       linkNum = 0;
                       setTimeout(checkServer, 100);
                  }else{
                      linkNum++;
                       // 服务器连接不正常
                       if(linkNum == 3) {
                          console.info('出现第'+linkNum+"次测试服务器连接失败!跳转到登陆");
                          // 网络正常但服务器连续多次检测不正常跳转到登陆页面
                         alert('网络连接异常,请检查网络连接是否正常!');
                          window.location.replace("login.jsp");
                       }else {
                          console.info('出现第'+linkNum+"次测试服务器连接失败!");
                          checkServer();
                       }
                  }
              }
           });
      }
   })(jQuery);
  </script>
</html>