D:/workspace/chenjingjing/git/gx_tieta/gx_tieta/.gitignore
2019-01-18 2fe250ece8de95b3f70172fe5b45793ab6a3084a
gx_tieta/WebRoot/batch-set-curr.jsp
@@ -15,11 +15,13 @@
      <meta http-equiv="expires" content="0">    
      <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
      <meta http-equiv="description" content="This is my page">
       <title>批量设置信息</title>
       <title>批量核容测试</title>
      <link rel="stylesheet" type="text/css" href="pages/css/base.css">
      <link rel="stylesheet" type="text/css" href="jqueryui/jquery-ui.css">
       <link rel="stylesheet" type="text/css" href="src/css/layui.css">
       <link rel="stylesheet" type="text/css" href="pages/css/mylayui.css">
       <link rel="stylesheet" type="text/css" href="css/popup-tbl.css">
       <link rel="stylesheet" type="text/css" href="css/whyc-ui.css">
       <style>
          .dataTypeCont {
             width: 160px;
@@ -29,6 +31,18 @@
             min-width: 70px;
             margin-top: 4px;
          }
          .error-img {
            visibility: hidden;
            font-size: 20px;
            color: #FF0000;
         }
         .error-data {
            visibility:visible !important;
         }
         input.error-data {
            outline: none !important;
            border: 1px solid #FF0000 !important;
         }
       </style>
   </head>
    <body>
@@ -41,7 +55,7 @@
        <div class="layui-page-container">
           <!-- 条件筛选 -->
            <div class="layui-page-filter">
                <div class="page-filter-header layui-page-filter-fweight">批量设置信息</div>
                <div class="page-filter-header layui-page-filter-fweight">批量核容测试</div>
                <div class="page-filter-content">
                    <table>
                        <tr class="layui-page-filter-tbl-header layui-page-filter-fweight">
@@ -79,7 +93,7 @@
                               <div class="layui-form" lay-filter="countyFilter">
                                  <div class="layui-form-item">
                                     <div class="layui-input-block">
                                        <select name="county" id="county" lay-filter="county">
                                        <select name="county" id="county" lay-filter="county"  lay-search="">
                                    <option value="">请选择区/县</option>
                                 </select>
                                     </div>
@@ -103,8 +117,8 @@
                                    <div class="layui-form-item">
                                       <div class="layui-input-block">
                                          <select name="sysType" id="sysType" lay-filter="sysType" lay-search="">
                                             <option value="12">1U设备</option>
                                    <option value="2">2U设备</option>
                                             <option value="12">12V设备</option>
                                    <option value="2">2V设备</option>
                                 </select>
                                       </div>
                                    </div>
@@ -144,29 +158,144 @@
                  </div>
                  <button class="layui-btn layui-btn-sm mrl8" id="batchAdd"><i class="fa fa-plus mrr8"></i>添加电池组</button>
                     <button class="layui-btn layui-btn-sm" id="batchSetCurr">批量设置放电参数</button>
                     <button class="layui-btn layui-btn-sm" id="batchSetSys">批量设置系统参数</button>
                     <button class="layui-btn layui-btn-sm" id="batchSetSys">批量启动放电测试</button>
                     <button class="layui-btn layui-btn-sm" id="startTest">批量启动测试</button>
                  </div>
               </div>
               <!-- 表格内容 -->
            <table id="pageTbl" lay-filter="pageTbl"></table>
            </div>
        </div>
        <!-- bts设备弹出框 -->
      <div class="popup" id="bts">
         <div class="popup-title"><span>BTS设备<s:text name="Discharging"/><s:text name="Parameter_Set"/><!-- 放电参数设置 --></span> <a href="javascript:;" class="close">X</a></div>
         <div class="popup-content">
            <div class="popup-tbl">
               <table>
                  <tbody>
                     <tr>
                        <th>测试类型<!-- 放电类型 --></th>
                        <th><s:text name="Discharging"/><s:text name="Time_long"/><!-- 放电时长 -->(0~5940<s:text name="Minutes"/>)</th>
                     </tr>
                     <tr>
                        <td>
                           <select id="discharge_type">
                              <option value="37"><s:text name="Capacity"/><s:text name="Test"/><!-- 容量测试 --></option>
                              <option value="50"><s:text name="Internal_resistance"/><s:text name="Test"/><!-- 内阻测试 --></option>
                           </select>
                        </td>
                        <td><input id="distime" type="text" value="600"><i class="fa fa-frown-o error-img" title="数据格式错误"></i></td>
                     </tr>
                     <tr>
                        <th>放电电流百分比(0~300%)<!-- 放电小时率 --></th>
                        <th>放电容量百分比(0~300%)</th>
                     </tr>
                     <tr>
                        <td><input id="hourrate" type="text" value="10"><i class="fa fa-frown-o error-img" title="数据格式错误"></i></td>
                        <td><input id="disCapPer" type="text" value="60"><i class="fa fa-frown-o error-img" title="数据格式错误"></i></td>
                     </tr>
                     <tr>
                        <th>单体电压下限百分比(0~300%)</th>
                        <th>组端电压下限百分比(0~300%)</th>
                     </tr>
                     <tr>
                        <td><input id="monVolLowPer" type="text" value="90"><i class="fa fa-frown-o error-img" title="数据格式错误"></i></td>
                        <td><input id="groupVolLowPer" type="text" value="90"><i class="fa fa-frown-o error-img" title="数据格式错误"></i></td>
                     </tr>
                     <tr>
                        <th>单体下限数量百分比(0~100%)</th>
                        <th>充电电流百分比(0~300%)</th>
                     </tr>
                     <tr>
                        <td><input id="monNumLow" type="text" value="25"><i class="fa fa-frown-o error-img" title="数据格式错误"></i></td>
                        <td><input id="chargeCurrPer" type="text" value="10"><i class="fa fa-frown-o error-img" title="数据格式错误"></i></td>
                     </tr>
                     <tr>
                        <th><s:text name="Booster"/><s:text name="Upper_limit"/><!-- 升压上限 -->(V)</th>
                        <th><s:text name="On-line_voltage"/><s:text name="Low"/><s:text name="Dispose"/><!-- 在线电压低处理 --></th>
                     </tr>
                     <tr>
                        <td><input id="DCVolHighLimit" type="text" value="0"><i class="fa fa-frown-o error-img" title="数据格式错误"></i></td>
                        <td>
                           <select id="OnlineVolLowAction">
                              <option value="0"><s:text name="Stop"/><s:text name="Test"/><!-- 停止测试 --></option>
                              <option value="1"><s:text name="Continue"/><s:text name="Test"/><!-- 继续测试 --></option>
                           </select>
                        </td>
                     </tr>
                     <tr>
                        <th>温度上限(℃)</th>
                     </tr>
                     <tr>
                        <td><input id="TempUpHighLimit" type="text" value="40"><i class="fa fa-frown-o error-img" title="数据格式错误"></i></td>
                     </tr>
                  </tbody>
               </table>
            </div>
         </div>
         <div class="popup-footer">
            <input type="button" class="mrr8" name="" id="btn_set" value="参数设置" >               <!-- 参数设置 -->
         </div>
      </div>
        <!-- 存储set-curr.html的信息 -->
       <div id="setCurrIframe"></div>
       <div id="setCurrBtn"></div>
       <!-- 设备工作状态 -->
       <script type="text/html" id="devStatus">
         {{# if(d.devStatus) { }}
            {{d.devStatus}}
         {{# }else{ }}
            状态:???,告警:???,组端电压(V):???,电流(A):???,容量(AH):???
         {{# } }}
      </script>
      <!-- 已测时长 -->
      <script type="text/html" id="testTime">
         {{# if(d.testTime) { }}
            {{d.testTime}}
         {{# }else{ }}
            00:00:00
         {{# } }}
      </script>
      <!-- 通信计数signalNum -->
      <script type="text/html" id="signalNum">
         {{# if(d.signalNum) { }}
            {{d.signalNum}}
         {{# }else{ }}
            ???
         {{# } }}
      </script>
        <script type="text/html" id="setStatus">
         {{# if(d.setCurr == 1){ }}
            <button class="layui-btn layui-btn-sm layui-btn-warm">设置放电参数成功</button>
            <button class="layui-btn layui-btn-sm">设置成功</button>
         {{# }else if(d.setCurr == 2){ }}
            <button class="layui-btn layui-btn-sm layui-btn-danger">设置放电参数失败</button>
            <button class="layui-btn layui-btn-sm layui-btn-danger">设置失败</button>
         {{# }else { }}
            <button class="layui-btn layui-btn-sm layui-btn-normal">未设置放电参数</button>
            <button class="layui-btn layui-btn-sm layui-btn-normal">未设置</button>
         {{# } }}
      </script>
       <script type="text/javascript" src="js/jquery-1.8.3.js"></script>
       <script type="text/javascript" src="js/echarts.js"></script>
       <script type="text/javascript" src="jqueryui/jquery-ui.min.js"></script>
       <script type="text/javascript" src="js/popup.js"></script>
        <script type="text/javascript" src="src/layui.js"></script>
        <script type="text/javascript" src="pages/js/mylayui.js"></script>
        <script type="text/javascript" src="js/whyc-jqueryui.js"></script>
        <script type="text/javascript" src="pages/js/common.js"></script>
        <script type="text/javascript">
           var BTS_popup = new Popup($('#bts'));
           // 充放电弹出框设置
         $(function() {
            // 初始化bts弹出框
            $('#bts').find('.close').bind('click', function() {
               BTS_popup.hidePopup();   // 隐藏bts弹出框和遮罩层
            });
            // 窗口大小改变
            $(window).resize(function() {
               BTS_popup.hidePopup();   // 隐藏bts弹出框和遮罩层
            });
         });
           layui.use(['form', 'table', 'layer', 'element', 'laytpl'], function() {
              var table = layui.table;      // 获取表格模块
              var form = layui.form;         // 获取表单模块
@@ -404,31 +533,21 @@
               ,cellMinWidth: 80
               ,cols: [[
                  {type:'checkbox',fixed: 'left'}
                  ,{field:'StationName', title:'机房名称', align:'center', width: 360}
                  ,{field:'FBSDeviceName', title:'FBS设备名称', align:'center', width: 160}
                  ,{field:'GroupIndexInFBSDevice', title:'FBS设备索引', align:'center', width: 160}
                  ,{field:'FBSDeviceId', title:'设备ID', align:'center', width: 160}
                  ,{field:'StationName', title:'机房名称', align:'center', width: 470}
                  ,{field:'BattGroupId', title:'电池组ID', align:'center', width: 160}
                  ,{field:'BattGroupNum', title:'机房内电池组编号', align:'center', width: 160}
                  ,{field:'BattGroupName', title:'电池组名称', align:'center', width: 160}
                  ,{field:'FloatVolLevel', title:'浮充电压阀值', align:'center', width: 160}
                  ,{field:'OfflineVolLevel', title:'离线电压阀值', align:'center', width: 160}
                  ,{field:'BattFloatCurrent', title:'浮充阀值', align:'center', width: 100}
                  ,{field:'MonCount', title:'单体数量', align:'center', width: 100}
                  ,{field:'devStatus', title:'设备状态', templet: '#devStatus', align:'center', width: 700}
                  ,{field:'testTime', title:'已测时长', templet: '#testTime', align:'center', width: 140}
                  ,{field:'signalNum', title:'通信计数', templet: '#signalNum', align:'center', width: 140}
                  ,{field:'StationName9', title:'设备版本号', align:'center', width: 160}
                  ,{field:'Load_curr', title:'负载电流', align:'center', width: 100}
                  ,{field:'MonCapStd', title:'标称容量', align:'center', width: 100}
                  ,{field:'MonVolStd', title:'标称单体电压', align:'center', width: 140}
                  ,{field:'MonResStd', title:'标称单体内阻', align:'center', width: 140}
                  ,{field:'MonSerStd', title:'标称单体电导', align:'center', width: 140}
                  ,{field:'MonVolLowToAvg', title:'单体电压次低偏移量', align:'center', width: 140}
                  ,{field:'Load_curr', title:'负载电流', align:'center', width: 140}
                  ,{field:'DisCurrMax', title:'最大核容电流', align:'center', width: 140}
                  ,{field:'station_phone', title:'基站手机号码', align:'center', width: 140}
                  ,{field:'BattProducer', title:'电池品牌', align:'center', width: 140}
                  ,{field:'BattModel', title:'电池型号', align:'center', width: 260}
                  ,{field:'doThings', fixed: 'right', title: '设置状态', toolbar: '#setStatus', align: 'center', width: 160}
                ]]
               ,data:[]
               ,limit: 20
                ,page: true
               ,limit: 10000
                ,page: false
                ,height: 'full-252'
            };
            
@@ -438,7 +557,14 @@
              // 更新表格的对象
              var layuiTbl = new LayuiTbl(tOptions, layui, laytpl, table.cache.pageTbl);
              
              // 设备类型
              var devType = 0;      // 1U:12 2U:2
              // 查询正在放电的设备
              searchChargeDev(search, {}, false);
              // 点击添加电池组
              $('#setCurrIframe').data('setCurr', []);
              $('#batchAdd').click(function() {
                 var structData = structAddData();
               // 判断是否选择要添加的内容
@@ -446,10 +572,87 @@
                  layer.msg(structData.msg);
                  return;
               }
               $('#setCurrIframe').data('setCurr', []);
               // 弹出设置选择筛选条件
               search(structData);
               searchChargeDev(search, structData, true);
              });
              // 设置添加操作的字符串
              var addBattStr = '';
              // 查询正在放电的设备
              function searchChargeDev(callback, cParam, isCallback) {
                 var rq = structAddData();      // 获取查询条件
                 var preDevType = $('#sysType').val();
                 // 判断当前设备的类型是否和上一次一致
                 if(preDevType != devType) {
                    var loading = layer.load(1);
                    devType = preDevType;
                    // 设备类型的条件改变清空表格
                    tOptions.data = [];
                    // 清空字符串
                    addBattStr = '';
                    // 查询正在放电的内容
                    $.ajax({
                       type: 'post'
                       ,async: true
                       ,url: 'Fbs9100_stateAction_action_seachDischarge'
                       ,data: 'json='+JSON.stringify(rq)
                       ,dataType: 'json'
                       ,success:function(res) {
                          var rs = JSON.parse(res.result);
                          var rsData = [];
                          //console.log(rs);
                          if(rs.code == 1) {
                             data = rs.data;
                             var tmps = [];
                             for(var i=0; i<data.length; i++) {
                                var _tmp = {};
                                var _data = data[i];
                                _tmp.FBSDeviceId = _data.dev_id;      // 设备ID
                                _tmp.StationName = _data.stationName;   // 机房名称
                                _tmp.BattGroupId = _data.battgroupid;   // 机房ID
                                _tmp.BattGroupName = _data.note;      // 电池组名称
                                _tmp.StationName9 = _data.dev_version;            // 设备版本号
                                _tmp.GroupIndexInFBSDevice = _data.dev_testgroupnum-1;      // 电池组索引
                                _tmp.MonCount = _data.moncount;               // 单体数量
                                _tmp.MonCapStd = _data.moncapstd;               // 标称容量
                                _tmp.MonVolStd = _data.monvolstd;                     // 标称电压
                                tmps.push(_tmp);
                             }
                             rsData = tmps;
                          }
                          //console.log(rsData);
                          tOptions.data = rsData;
                          table.render(tOptions);
                          // 判断是否执行callback函数
                          if(isCallback) {
                             callback(cParam);
                          }else {
                             updateDevStatus();
                          }
                       }
                       ,complete: function() {
                          layer.close(loading);
                       }
                    });
                 }else {
                    // 设备类型的条件没有发生变化,向表格添加数据
                    callback(cParam);
                 }
              }
              // 构造查询正在放电的设备的条件
              function searchChargeDevRq() {
                 var temp = {
                    MonVolStd: $('#sysType').val()
                 };
                 return temp;
              }
              
              // 根据查询条件查询内容
              function search(temp) {
@@ -466,19 +669,59 @@
                       var rs = JSON.parse(res.result);
                       var data = [];
                       if(rs.code == 1) {
                          data = rs.data;
                       }else {
                          layer.msg('没有可设置的电池组!');
                          data = getFilterData(rs.data, tOptions.data);
                       }
                       
                       tOptions.data = data;
                       // 如果有添加的数据
                       if(data.length !=0) {
                          if(addBattStr.length == 0) {   // 字符串长度为0
                             addBattStr += getFilterStr(temp);
                          }else {
                             addBattStr += ','+getFilterStr(temp);
                          }
                       }
                       // 将数据添加到表格中
                       for(var i=0; i<data.length; i++) {
                          var _data = data[i];
                          tOptions.data.push(_data);
                       }
                       //console.log(tOptions.data);
                         // 生成表格数据
                     table.render(tOptions);
                         if(data.length != 0) {
                            table.render(tOptions);
                         }
                     updateDevStatus();
                    }
                    ,complete:function() {
                       layer.close(load);
                    }
                 });
              }
              // 根据设备对数据进行筛选
              function getFilterData(data, all) {
                 var rs = [];
                 // 遍历data的值
                 for(var i=0; i<data.length; i++) {
                    var isExist = false;
                    var _data = data[i];
                    // 遍历all
                    for(var k=0; k<all.length;k++) {
                       var _all = all[k];
                       // 判断设备id是否已经被添加
                       if(_data.FBSDeviceId == _all.FBSDeviceId) {
                          isExist = true;
                          break;
                       }
                    }
                    // 如果不存在添加数据
                    if(!isExist) {
                       rs.push(_data);
                    }
                 }
                 return rs;      // 返回结果集
              }
              
              // 点击添加构造查询
@@ -521,6 +764,7 @@
            }
            
            // 点击批量设置放电电流参数
            var pageIframe = "";
            $('#batchSetCurr').click(function() {
               var checkStatus = table.checkStatus('pageTbl');
               var data = checkStatus.data;
@@ -528,17 +772,476 @@
                  layer.msg('请选择要设置的机房');
                  return;
               }
               // console.log(data);
               // 设置放电参数
               getDisCurrParam(data);
               setBtsPopup();         // 设置BTS面板的初始值
               BTS_popup.showPopup();   // 显示BTS面板
            });
               var btsCmd = GLOBAL.CMD.BTS;      // 获取BTS的CMD
               var setParamCmd = btsCmd.setDischargeParm;   // 设置参数的cmd
               var startTest = btsCmd.start;
               // 点击放电参数设置页面设置按钮
               $('#btn_set').click(function() {
                  if($(this).hasClass('whyc-btn-disabled')) {
                     layer.msg('存在不合法的数据');
                     return;
                  }
                  var checkStatus = table.checkStatus('pageTbl');
               var data = checkStatus.data;
               var ratio = getBtsPopup();
               var currParam = getSetCurrParam(data, ratio);
               // 判断是否设置机房
               layer.confirm('是否确认批量设置参数', {icon: 3, title: '系统提示'}, function(index) {
                  layer.close(index);
                  ajaxSetParam(currParam);
               });
               });
               // 请求设置参数
               function ajaxSetParam(param) {
                  //console.log(param);
                  var load = layer.load(1);
                  // 请求后台
                  $.ajax({
                     type: 'post'
                     ,async: true
                     ,url: 'Fbs9100_setparamAction_action_updatePro'
                     ,data: 'json='+JSON.stringify(param)+'&json_msg='+addBattStr   // 添加操作记录
                     ,dataType: 'json'
                     ,success: function(res) {
                        var rs = JSON.parse(res.result);
                        if(rs.code == 1) {
                           layer.msg('设置完成!');
                           BTS_popup.hidePopup();      // 关闭面板
                           var data = rs.data;
                           console.log(data);
                           var rsList = [];
                           for(var i=0; i<data.length; i++) {
                              var _data = data[i];
                              rsList.push(_data);
                           }
                           var trIndex = getSetCurrIndex(data, tOptions.data);
                           //console.log(trIndex);
                           // 被设置参数的机房
                           for(var i=0; i<trIndex.length; i++) {
                              var _data = data[i];
                              console.log(_data);
                              var _trIndex = trIndex[i];
                              var _temp = {'doThings':''};
                              if(_data.num==1) {
                                 _temp.setCurr = 1;
                              }else {
                                 _temp.setCurr = 2;
                              }
                              layuiTbl.updateTr(i, _temp);
                           }
                           $('#setCurrIframe').data('setCurr', rsList);
                        }else {
                           layer.msg('修改失败');
                        }
                     }
                     ,complete: function() {
                        layer.close(load);
                     }
                  });
               }
               // 构造批量设置放电参数的方法
               function getSetCurrParam(data, ratio) {
                  // console.log(data);
                  var rs = [];
                  for(var i=0; i<data.length; i++) {
                     var _data = data[i];
                     var disCurr = getDisCurr(_data.MonCapStd, ratio.hourrate);                     // 小时率
                     var chargeCurr = getChargeCurr(_data.MonCapStd, ratio.chargeCurrPer);            // 充电电流
                     var groupVolLow = getGroupVolLow(_data.MonVolStd, _data.MonCount, ratio.groupVolLowPer);      // 组端电压下限
                     var monVolLow = getMonVolLow(_data.MonVolStd, ratio.monVolLowPer);               // 单体电压下限
                     var monNumLow = getMonNumLow(_data.MonCount, ratio.monNumLow);                  // 单体数量下限
                     var disCap = getDisCap(_data.MonCapStd, ratio.disCapPer);                     // 放电容量
                     var temp= {
                        num: 0
                        ,dev_id: _data.FBSDeviceId         // 设备id
                        ,op_cmd: setParamCmd            // 设置参数命令
                        ,TestCmd: ratio.testType         // 测试类型
                        ,HourRate: ratio.hourrate         // 小时率
                        ,DisCurr: disCurr               // 放电电流
                        ,DisCap: disCap                  // 放电容量
                        ,DisTime: ratio.distime            // 放电时长
                        ,GroupVol_Low: groupVolLow         // 组端电压下限
                        ,MonomerVol_Low: monVolLow         // 单体电压下限
                        ,MonomerLowCount: monNumLow         // 单体数量下限
                        ,MonomerTmp_High: ratio.TempUpHighLimit      // 温度上限
                        ,OnlineLowAction: ratio.OnlineVolLowAction   // 在线电压低处理
                        ,ChargeCurrSet: chargeCurr         // 充电电流
                        ,DCVolHighLimit: ratio.DCVolHighLimit // 升压上限
                        ,BattGroupNum: _data.GroupIndexInFBSDevice+1      // 电池组的索引
                        ,StationName: _data.StationName            // 机房名称
                     }
                     rs.push(temp);
                  }
                  return rs;
               }
               // 获取批量设置的参数
               function getBtsPopup() {
                  var temp={
                     num: 0
                     ,testType: $('#discharge_type').val()             // 测试类型
                     ,distime: $('#distime').val()                  // 放电时长
                     ,hourrate: $('#hourrate').val()                  // 放电小时率
                     ,disCapPer: $('#disCapPer').val()               // 放电容量百分比
                     ,monVolLowPer: $('#monVolLowPer').val()            // 单体电压下限百分比
                     ,groupVolLowPer: $('#groupVolLowPer').val()       // 组端电压下限百分比
                     ,monNumLow: $('#monNumLow').val()               // 单体数量百分比
                     ,chargeCurrPer: $('#chargeCurrPer').val()         // 充电电流百分比
                     ,DCVolHighLimit: $('#DCVolHighLimit').val()         // 升压上限
                     ,TempUpHighLimit: $('#TempUpHighLimit').val()      // 温度上限
                     ,OnlineVolLowAction: $('#OnlineVolLowAction').val() // 在线电压低处理
                  };
                  return temp;
               }
               // 获取放电电流(标称容量的*小时率)
               function getDisCurr(monCapStd, ratio) {
                  return monCapStd*ratio/100;
               }
               // 获取组端电压下限(标称单体电压*单体数量*百分比)
               function getGroupVolLow(monVolStd, monCount, ratio) {
                  return monVolStd*monCount*ratio/100;
               }
               // 获取单体电压下限(标称单体电压*百分比)
               function getMonVolLow(monVolStd, ratio) {
                  return monVolStd*ratio/100;
               }
               // 单体数量下限(单体节数*百分比)
               function getMonNumLow(monCount, ratio) {
                  return Math.floor(monCount*ratio/100);
               }
               // 放电容量(标称容量*百分比)
               function getDisCap(monCapStd, ratio) {
                  return monCapStd*ratio/100;
               }
               // 充电电流(标称容量*百分比)
               function getChargeCurr(monCapStd, ratio) {
                  return monCapStd*ratio/100;
               }
               // 放电时长distime
               $('#distime').testVal({
               pattern: /^[0-9]+$/,
               regVal: true,
               min: 0,
               max: 5940,
               msg: '取值范围0~5940'
            });
            
            var regs = {
               pattern: /^[0-9]+$/,
               regVal: true,
               min: 0,
               max: 300,
               msg: '取值范围0~300'
            };
            
            // 获取放电参数
            function getDisCurrParam(data) {
               console.log(data);
               var data = GetHourRate();
               // 小时率
            $('#hourrate').testVal(regs);
            // 放电容量百分比
            $('#disCapPer').testVal(regs);
            // 单体电压下限百分比
            $('#monVolLowPer').testVal(regs);
            // 组端下限百分比
            $('#groupVolLowPer').testVal(regs);
            // 充电电流百分比
            $('#chargeCurrPer').testVal(regs);
            // 单体下限数量
            $('#monNumLow').testVal({
               pattern: /^[0-9]+$/,
               regVal: true,
               min: 0,
               max: 100,
               msg: '取值范围0~100'
            });
            // 获取BTS面板的所有文本框
            $('#bts').on('input propertychange', 'input[type=text]', function() {
               setBTSPopupStatus($(this).attr('id'), $(this).val());
            });
            // 启动测试
            $('#startTest').click(function() {
               var rsList = $('#setCurrIframe').data('setCurr');
               if(rsList.length == 0) {
                  layer.msg('暂无无法启动,请先设置放电参数!');
                  return;
               }
               $('#setCurrIframe').data('addBattStr', addBattStr);
               // 显示面板
               layer.open({
                  type: 2
                  ,area: ['1200px', '500px']
                  ,resize: false
                  ,maxmin: true
                  ,fixed: true
                  ,content: 'iframe/setcurr.html'
               });
            });
            // 初始化设置参数的按钮
            var BTSBtn = {
               disabled: function() {
                  $('#btn_set').addClass('whyc-btn-disabled');   // 设置参数按钮无效
               },
               active:function() {
                  $('#btn_set').removeClass('whyc-btn-disabled');   // 设置参数按钮有效
               }
            };
            // 设置批量设置放电参数面板
               function setBtsPopup() {
                  $('#distime').val(600);            // 放电时长
                  $('#hourrate').val(10);            // 小时率
                  $('#disCapPer').val(60);         // 放电容量百分比
                  $('#monVolLowPer').val(90);         // 单体电压下限百分比
                  $('#groupVolLowPer').val(90);      // 组端电压下限百分比
                  $('#monNumLow').val(25);         // 单体数量百分比
                  $('#chargeCurrPer').val(10);      // 充电电流百分比
                  $('#DCVolHighLimit').val(56.4);      //  升压上限
                  $('#TempUpHighLimit').val(60);      //  温度上限
                  // 初始化面板状态
                  $('#bts').find('input').removeClass('error-data');      // 移除错误提示
                  $('#bts').find('.error-img').removeClass('error-data');   // 移除错误提示
                  BTSBtn.active();
               }
            //根据文本框内容设置61850的按钮状态
            function setBTSPopupStatus(id, val) {
               var textList = BTS_popup.popup.find('input[type=text]');
               var selectList = BTS_popup.popup.find('.popup-tbl select');
               var errorStatus = BTS_popup.popup.data().errorStatus; // 获取是否读取参数失败
               //console.log(BTS_popup.popup.data().attr);
               // 读取设备参数失败
               if(errorStatus) {
                  BTSBtn.disabled();
                  return false;   // 结束函数运行
               }
               // 遍历面板下的所有文本框查看是否有错误数据
               var isDisabled = false;
               textList.each(function() {
                  if($(this).hasClass('error-data')) {
                     isDisabled = true;
                  }
               });
               // 存在错误的数据
               if(isDisabled) {
                  BTSBtn.disabled();
                  return false;   // 结束函数运行
               }else {
                  BTSBtn.active();
               }
            }
            // 获取设置放电参数的下标
            function getSetCurrIndex(setData, allData) {
               var rs = [];
               // 遍历setData
               for(var i=0; i<setData.length; i++) {
                  var _setData = setData[i];
                  var setDevId = _setData.dev_id;
                  //console.log(setDevId);
                  // 遍历allData
                  for(var k=0; k<allData.length; k++) {
                     var _allData = allData[k];
                     var allDevId = _allData.FBSDeviceId;
                     if(setDevId == allDevId) {
                        rs.push(k);
                        break;
                     }
                  }
               }
               return rs;
            }
            //  更新设备状态
            var BTS9100 = GLOBAL.BTS9100;
            var workStates = BTS9100.workstates;
            var alarmStates = BTS9100.alarmstates;
            function updateDevStatus1() {
               var battlist = tOptions.data;
               var battIdList = updateDevStatusRq();
               console.log(battIdList);
               clearInterval(updateDevStatus.timer);
               if(battlist.length > 0){
                  $.ajax({
                       type: "post",
                       url: "Fbs9100_setparamAction_action_serchByInfo",
                       async:true,
                       dataType:'text',
                       data:"json="+JSON.stringify(battlist),
                       dataType: 'json',
                       success: function(res){
                        var rs = JSON.parse(res.result);
                        console.log(rs);
                        if(rs.code == 1) {
                           var data = rs.data;
                           // console.log(data);
                           for(var i=0; i<data.length; i++) {
                              var obj = data[i];
                              if(obj.fstate.num > 0){
                                 var str = '';
                                 var index = obj.fstate.dev_workstate;
                                 // 内阻测试(工作状态为0, 内阻测试不为0)
                                 if(obj.fstate.dev_workstate ==0 && obj.fstate.dev_res_test_state != 0) {
                                    index = 3;
                                 }
                                 // 设置文本值
                                 str = "状态:"   + workStates[index]+
                                      ",告警:"+alarmStates[obj.fstate.dev_alarmstate]+
                                      ",组端电压(V):"+obj.fstate.dev_captest_groupvol+
                                      ",电流(A):"+obj.fstate.dev_captest_curr+
                                      ",容量(AH):"+obj.fstate.dev_captest_cap;
                                  if(index == 3){
                                     str = "状态:"+workStates[index]+
                                          ",组号:"+obj.fstate.dev_testgroupnum+
                                          ",当前单体编号:"+(obj.fstate.dev_restest_monindex+1)+
                                          ",被测单体总数:"+obj.fstate.dev_restest_moncount;
                                  }
                                  var temp = {
                                     devStatus: str         // 设备状态
                                     ,testTime: formatSeconds(obj.fstate.dev_captest_timelong)      // 测试时长
                                     ,signalNum: obj.fstate.dev_commcount
                                  }
                                 layuiTbl.updateTr(i, temp);
                              }
                           }
                        }
                        updateDevStatus.timer = setTimeout(updateDevStatus, 4000);
                     },
                  });
               }
            }
            // 获取设备实时状态的参数
            function updateDevStatus() {
               var battIdList = updateDevStatusRq();      // 获取电池id列表
               // 判断如果battIdList长度为0不执行请求后台
               if(battIdList.length == 0) {
                  return;
               }
               clearInterval(updateDevStatus.timer);
               // 请求后台
               $.ajax({
                  type: 'post'
                  ,async:true
                  ,url: 'Fbs9100_stateAction_action_freshenDischarge'
                  ,data: 'json='+JSON.stringify(battIdList)
                  ,dataType: 'json'
                  ,success: function(res) {
                     var rs = JSON.parse(res.result);
                     //console.log(rs);
                     // 如果有查询结果
                     if(rs.code == 1) {
                        var data = rs.data;
                        for(var i=0; i<data.length; i++) {
                           var _data = data[i];
                           _data = _data[0];
                           var str = '';      // 设备工作状态
                           var index = _data.dev_workstate; // 设备状态
                           // 内阻测试(工作状态为0, 内阻测试不为0)
                           if(_data.dev_workstate ==0 && _data.dev_res_test_state != 0) {
                              index = 3;
                           }
                           var monCap = _data.dev_captest_cap==0?_data.dev_captest_cap:_data.dev_captest_cap.toFixed(1);
                           // 设置设备状态字符串
                           str = "状态:"   + workStates[index]+
                                ",告警:"+alarmStates[_data.dev_alarmstate]+
                                ",组端电压(V):"+_data.dev_captest_groupvol+
                                ",在线电压(V):"+_data.dev_captest_onlinevol+
                                ",电流(A):"+_data.dev_captest_curr+
                                ",容量(AH):"+monCap;
                           // 设置设备内阻测试的字符串
                           if(index == 3){
                               str = "状态:"+workStates[index]+
                                    ",组号:"+_data.dev_testgroupnum+
                                    ",当前单体编号:"+(_data.dev_restest_monindex+1)+
                                    ",被测单体总数:"+_data.dev_restest_moncount;
                            }
                           // 构造更新表格数据对象
                           var temp = {
                               devStatus: str         // 设备状态
                               ,testTime: formatSeconds(_data.dev_captest_timelong)      // 测试时长
                               ,signalNum: _data.dev_commcount
                            }
                            // 更新表格
                            layuiTbl.updateTr(i, temp);
                        }
                     }
                  }
                  ,complete: function() {
                     // 轮询查看内容
                     updateDevStatus.timer = setTimeout(updateDevStatus, 4000);
                  }
               });
            }
            // 构造查询设备实时状态的参数
            function updateDevStatusRq() {
               var data = tOptions.data;
               var rs = [];
               // 遍历data的值构造对象
               for(var i=0; i<data.length; i++) {
                  var _data = data[i];
                  var tmp = {
                     BattGroupId: _data.BattGroupId
                  };
                  rs.push(tmp);
               }
               return rs;
            }
            // 获取筛选条件的字符串
            function getFilterStr(data) {
               var rsString = '';
               rsString += data.StationName;
               rsString += '-'+data.MonVolStd+'V设备';
               rsString += '-'+(data.GroupIndexInFBSDevice == '0'?'电池组1': '电池组2');
               return rsString;
            }
           });
        </script>
    </body>