gx_tieta/WebRoot/batch-set-curr.jsp
@@ -117,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>
@@ -537,13 +537,12 @@
                  ,{field:'StationName', title:'机房名称', align:'center', width: 470}
                  ,{field:'BattGroupId', title:'电池组ID', align:'center', width: 160}
                  ,{field:'BattGroupName', title:'电池组名称', align:'center', width: 160}
                  ,{field:'devStatus', title:'设备状态', templet: '#devStatus', align:'center', width: 600}
                  ,{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:'MonCount', title:'单体数量', align:'center', width: 100}
                  ,{field:'Load_curr', title:'负载电流', align:'center', width: 100}
                  ,{field:'MonCapStd', title:'标称容量', align:'center', width: 100}
                  ,{field:'MonVolStd', title:'标称单体电压', align:'center', width: 140}
                  ,{field:'doThings', fixed: 'right', title: '设置状态', toolbar: '#setStatus', align: 'center', width: 160}
                ]]
               ,data:[]
@@ -558,8 +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();
               // 判断是否选择要添加的内容
@@ -569,8 +574,85 @@
               }
               $('#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) {
@@ -587,20 +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);
                       }
                       console.log(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;      // 返回结果集
              }
              
              // 点击添加构造查询
@@ -681,14 +802,14 @@
               
               // 请求设置参数
               function ajaxSetParam(param) {
                  console.log(param);
                  //console.log(param);
                  var load = layer.load(1);
                  // 请求后台
                  $.ajax({
                     type: 'post'
                     ,async: true
                     ,url: 'Fbs9100_setparamAction_action_updatePro'
                     ,data: 'json='+JSON.stringify(param)
                     ,data: 'json='+JSON.stringify(param)+'&json_msg='+addBattStr   // 添加操作记录
                     ,dataType: 'json'
                     ,success: function(res) {
                        var rs = JSON.parse(res.result);
@@ -704,9 +825,11 @@
                           }
                           
                           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) {
@@ -731,7 +854,7 @@
               
               // 构造批量设置放电参数的方法
               function getSetCurrParam(data, ratio) {
                  //console.log(data);
                  // console.log(data);
                  var rs = [];
                  for(var i=0; i<data.length; i++) {
                     var _data = data[i];
@@ -873,7 +996,7 @@
                  layer.msg('暂无无法启动,请先设置放电参数!');
                  return;
               }
               $('#setCurrIframe').data('addBattStr', addBattStr);
               // 显示面板
               layer.open({
                  type: 2
@@ -950,12 +1073,14 @@
               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[i];
                     var _allData = allData[k];
                     var allDevId = _allData.FBSDeviceId;
                     if(setDevId == allDevId) {
                        rs.push(k);
                        break;
                     }
                  }
                  
@@ -968,8 +1093,10 @@
            var BTS9100 = GLOBAL.BTS9100;
            var workStates = BTS9100.workstates;
            var alarmStates = BTS9100.alarmstates;
            function updateDevStatus() {
            function updateDevStatus1() {
               var battlist = tOptions.data;
               var battIdList = updateDevStatusRq();
               console.log(battIdList);
               clearInterval(updateDevStatus.timer);
               if(battlist.length > 0){
                  $.ajax({    
@@ -981,6 +1108,7 @@
                       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);
@@ -1018,7 +1146,101 @@
                     },               
                  });
               }
            }
            }
            // 获取设备实时状态的参数
            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>