hdw
2019-01-10 b3c8892bf421cb0a20c0981d94baf982ca5697a2
批量设置参数中批量重启功能完善
1个文件已修改
280 ■■■■■ 已修改文件
gx_tieta/WebRoot/sys-set-test.jsp 280 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
gx_tieta/WebRoot/sys-set-test.jsp
@@ -163,7 +163,7 @@
                        </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="sysSet">批量设置系统参数</button>
                        <button class="layui-btn layui-btn-sm" id="sysRestart">批量重启设备</button>
                    </div>
                </div>
                <!-- 表格内容 -->
@@ -178,7 +178,7 @@
            {{# if(d.DtCardCount==1) { }}
                从一拖24获取
            {{# }else{  }}
                从汇集器获取
                <span style="color: #FF0000">从汇集器获取</span>
            {{# } }}
        </script>
        <!-- 操作栏 -->
@@ -203,6 +203,55 @@
                <button class="layui-btn layui-btn-sm layui-btn-disabled">未设置</button>
            {{# } }}
        </script>
        <script type="text/html" id="allStatus">
            {{#
                var getStatus = function (val) {
                    var status = '<button class="layui-btn layui-btn-sm layui-btn-danger">未知</button>';
                    switch(val) {
                        case 0:
                            status='<button class="layui-btn layui-btn-sm layui-btn-danger">读取失败</button>';
                        break;
                        case 1:
                            status='<button class="layui-btn layui-btn-sm layui-btn-normal">读取成功</button>';
                        break;
                        case 2:
                            status='<button class="layui-btn layui-btn-sm layui-btn-danger">设置失败</button>';
                        break;
                        case 3:
                            status='<button class="layui-btn layui-btn-sm">设置成功</button>';
                        break;
                        case 4:
                            status='<button class="layui-btn layui-btn-sm layui-btn-danger">重启失败</button>';
                        break;
                        case 5:
                            status='<button class="layui-btn layui-btn-sm layui-btn-warm">重启成功</button>';
                        break;
                        case 6:
                            status='<button class="layui-btn layui-btn-sm layui-btn-warm">修改未设置</button>';
                        break;
                    }
                    return status;
                };
            }}
            {{ getStatus(d.allStatus) }}
        </script>
        <!-- 电流钳量程 -->
        <script type="text/html" id="CurrentRange">
            {{# if(d.CurrentRange_bool == 1){ }}
                {{d.CurrentRange}}
            {{# }else{ }}
                <span style="color:#FF0000;">{{d.CurrentRange}}</span>
            {{# } }}
        </script>
        <!-- DCDC模块数量 -->
        <script type="text/html" id="LoaderCount">
            {{# if(d.LoaderCount_bool == 1){ }}
                {{d.LoaderCount}}
            {{# }else{ }}
                <span style="color:#FF0000;">{{d.LoaderCount}}</span>
            {{# } }}
        </script>
        <!-- 普通面板 -->
        <script type="text/html" id="normalSet">
            <div class="layui-form layui-"></div>
@@ -214,6 +263,24 @@
                    <label class="layui-form-label">{{d.msg}}</label>
                    <div class="layui-input-block">
                           <input type="text" id="sysSetVal" name="{{d.field}}" lay-verify="{{d.verify}}" lay-verType="tips" placeholder="请输入设定参数" autocomplete="off" class="layui-input">
                    </div>
                </div>
                <div class="layui-form-item t-align-right" style="display: none">
                    <button class="layui-btn layui-btn-sm mrr8" lay-submit="" lay-fllter="go" id="go">确定</button>
                    <button class="layui-btn layui-btn-sm layui-btn-danger mrr8">取消</button>
                </div>
            </div>
        </script>
        <!-- 设置单体数据来源面板 -->
        <script type="text/html" id="sysSetDtCardCountTpl">
            <div class="layui-form layui-form-pane layui-form-pane-width160 mrl8 mrr8 mrt30" id="sysSetForm" lay-filter="sysSetFilter">
                <div class="layui-form-item">
                    <label class="layui-form-label">{{d.msg}}</label>
                    <div class="layui-input-block">
                        <select name="{{d.field}}">
                            <option value="1">从一拖24获取</option>
                            <option value="0">从汇集器获取</option>
                        </select>
                    </div>
                </div>
                <div class="layui-form-item t-align-right" style="display: none">
@@ -485,17 +552,15 @@
                        ,{field:'dev_id', title:'设备ID', align:'center', width: 160}
                        ,{field:'stationName', title:'机房名称', align:'center', width: 470}
                        ,{field:'BattGroupNum', title:'电池组数', align:'center', width: 120}
                        ,{field:'readStatus', title:'读取状态', templet: '#readStatus', align:'center', width: 120}
                        ,{field:'setStatus', title:'设置状态', templet: '#setStatus', align:'center', width: 120}
                        ,{field: 'moncapstds', title: '电池组标称容量(AH)', align: 'center', width: 180}
                        ,{field: 'RealCap', title: '电池组实际容量(AH)', align: 'center', width: 180}
                        ,{field:'GroupVolRange', title:'总续航时间(分钟)<i class="fa fa-edit normal" title="设置总续航时间"></i>', align:'center', width: 180}
                        ,{field:'GroupVolSorce', title:'保一次下电续航时间(分钟)<i class="fa fa-edit normal" title="设置保一次下电续航时间"></i>', align:'center', width: 240}
                        ,{field:'CurrentRange', title:'电流钳量程(A)<i class="fa fa-edit normal" title="设置电流钳量程"></i>', templet: '', align:'center', width: 180}
                        ,{field:'CurrentRange', title:'电流钳量程(A)<i class="fa fa-edit normal" title="设置电流钳量程"></i>', templet: '#CurrentRange', align:'center', width: 180}
                        ,{field:'CurrentTyte', title:'一次下电电压(V)<i class="fa fa-edit normal" title="设置一次下电电压"></i>', align:'center', width: 180}
                        ,{field:'MonomerOrder', title:'二次下电电压(V)<i class="fa fa-edit normal" title="设置二次下电电压"></i>', align:'center', width: 180}
                        ,{field:'LoaderCount', title:'DCDC模块数量 <i class="fa fa-edit normal" title="设置DCDC模块数量"></i>', align:'center', width: 180}
                        ,{field:'DtCardCount', title:'单体数据来源类型 <i class="fa fa-edit" title="设置单体数据来源类型"></i>', templet: '#DtCardCount', align:'center', width: 200}
                        ,{field:'LoaderCount', title:'DCDC模块数量 <i class="fa fa-edit normal" title="设置DCDC模块数量"></i>',templet: '#LoaderCount', align:'center', width: 180}
                        ,{field:'DtCardCount', title:'单体数据来源类型 <i class="fa fa-edit DtCardCount" title="设置单体数据来源类型"></i>', templet: '#DtCardCount', align:'center', width: 200}
                        ,{field:'POF_BG_Boost_Cnt', title:'停电升压榨干电池数量 <i class="fa fa-edit normal" title="设置停电升压榨干电池数量"></i>', align:'center', width: 240}
                        ,{field:'POF_BG_Boost_VolStop', title:'停电升压榨干电池端电压终止电压下限(V)<i class="fa fa-edit normal" title="设置停电升压榨干电池端电压终止电压下限"></i>', align:'center', width: 400}
                        ,{field:'POF_BG_Boost_VolStart', title:'停电升压榨干电池端电压启动电压下限(V)<i class="fa fa-edit normal" title="设置停电升压榨干电池端电压启动电压下限"></i>', align:'center', width: 400}
@@ -504,7 +569,7 @@
                        ,{field:'PowerBreakChargeCurr', title:'停电充电电流(A)<i class="fa fa-edit normal" title="设置停电充电电流"></i>', align:'center', width: 240}
                        ,{field:'StationName9', title:'版本号', align:'center', width: 160}
                        ,{field:'Load_curr', title:'负载电流(A)', align:'center', width: 160}
                        ,{field:'doThings', fixed: 'right', title: '操作', toolbar: '#doThings', align: 'center', width: 120}
                        ,{field:'allStatus', fixed: 'right', title: '状态', templet: '#allStatus', align: 'center', width: 180}
                    ]]
                    ,data:[]
                    ,limit: 10000
@@ -522,7 +587,11 @@
                var sysSetForm = new LayuiForm('sysSetForm');
                
                // 设置普通系统参数模板
                var sysSetNormalTpl = $('#sysSetNormalTpl').html();
                var sysSetNormalTpl = $('#sysSetNormalTpl').html();
                // 设置单体数据来源模板
                var sysSetDtCardCountTpl = $('#sysSetDtCardCountTpl').html();
                // 点击表格中同步的按钮
                $('.layui-page-content').on('click', '.layui-table-header .fa.normal', function() {
                    var title = $(this).attr('title');
@@ -549,6 +618,32 @@
                    }
                });
                
                //  点击表格单体数据来源进行修改
                $('.layui-page-content').on('click', '.layui-table-header .fa.DtCardCount', function() {
                    var title = $(this).attr('title');
                    var th = $(this).parent().parent().parent();
                    var field = th.data('field');
                    // 判断是否存在可以设置的机房
                    if(tOptions.data.length == 0) {
                        layer.msg('请先添加机房!');
                    }else {
                        var checkStatus = table.checkStatus('pageTbl'); // 获取被选中的行
                        var checkData = checkStatus.data;
                        if(checkData.length == 0) {
                            layer.msg('请选择要设置的机房!');
                            return;
                        }
                        var keyIds= getKeyId(checkData);
                        // 更新指定的列
                           var showFormData = getShowFormData(title, field);
                           // 显示面板
                           changeTblData(sysSetDtCardCountTpl, showFormData, keyIds);
                    }
                });
                // 修改表格内容
                function changeTblData(html, data, keyIds) {
                       // 面板显示
@@ -560,14 +655,36 @@
                            ,area: ['400px', '200px']
                            ,content: html
                            ,btn:['确定', '取消']
                            ,success: function() {
                                form.render(null, 'sysSetFilter');
                            }
                            ,yes:function(index) {
                                layer.close(index);     // 关闭面板
                                $('#go').click();    // 触发layui form表单提交事件
                                sysSetForm.get(function(obj) {
                                    layer.close(index);     // 关闭面板
                                    var rsData = [];
                                    for(var i=0;i<keyIds.length; i++) {
                                        var _keyId = keyIds[i];
                                        var _rsData = $.extend({}, _keyId, obj);
                                        _rsData.allStatus = 6;        // 修改参数但未设置
                                        var _trData = layuiTbl.getTr('dev_id', _rsData.dev_id);
                                        // 判断是否为电流钳量程,设置是否符合标准
                                        if(_rsData.CurrentRange != undefined) {
                                            if(_trData.code == 1) {
                                                // 设置当前内容是否符合标准
                                                _rsData.CurrentRange_bool = checkCurrentRange(_trData.data.MonVolStd, _rsData.CurrentRange);
                                            }
                                        }
                                        // 判断是否为DCDC模块数量,设置是否符合标准
                                        if(_rsData.LoaderCount != undefined) {
                                            if(_trData.code == 1) {
                                                // 设置当前内容是否符合标准
                                                _rsData.LoaderCount_bool = checkLoaderCount(_trData.data.MonVolStd, _rsData.LoaderCount);
                                            }
                                        }
                                        rsData.push(_rsData);
                                    }
                                    
@@ -636,6 +753,10 @@
                        case 'PowerBreakChargeCurr':        // 背光时长
                            rs.verify = 'required|number|intNum|PowerBreakChargeCurr'
                            rs.msg = '取值范围0~50'
                        break;
                        case 'DtCardCount':
                            rs.verify = 'required';
                            rs.msg = '请选择来源';
                        break;
                    }
                    
@@ -795,6 +916,7 @@
                        tmp.dev_id = _data.FBSDeviceId;            // 设备ID
                        tmp.stationName = _data.StationName;        // 机房名称
                        tmp.BattGroupNum = _data.BattGroupNum;    // 电池组数
                        tmp.MonVolStd = _data.MonVolStd;        // 单体标称电压
                        tmp.moncapstds = _data.moncapstds;        // 单体标称容量
                        tmp.StationName9 = _data.StationName9;    // 设备版本号
                        tmp.Load_curr = _data.Load_curr;        // 负载电流
@@ -814,11 +936,13 @@
                        
                        // 判断读取状态 
                        if(_data.num == 1) {
                            tmp.readStatus = 1;        // 读取成功
                            tmp.allStatus = 1;        // 读取成功
                        }else {
                            tmp.readStatus = 0;        // 读取失败
                            tmp.allStatus = 0;        // 读取失败
                        }
                        tmp.setStatus = 0;
                        tmp.CurrentRange_bool = checkCurrentRange(_data.MonVolStd, tmp.CurrentRange);        // 检测电流钳量程
                        tmp.LoaderCount_bool = checkLoaderCount(_data.MonVolStd, tmp.LoaderCount);             // 检测DCDC模块数量
                        //console.log(tmp.CurrentRange_bool);
                        // 将数据添加到结果集中
                        rs.push(tmp);
                    }
@@ -914,9 +1038,9 @@
                                for(var i=0; i<data.length; i++) {
                                    var _data = data[i];
                                    if(_data.num == 1) {
                                        _data.setStatus = 1;
                                        _data.allStatus = 3;        // 设置成功
                                    }else {
                                        _data.setStatus = 2;
                                        _data.allStatus = 2;        //  设置失败
                                    }
                                    _data.CurrentTyte = _data.CurrentTyte/10;    // 一次下电电压
                                    _data.MonomerOrder = _data.MonomerOrder/10;    // 二次下电电压
@@ -930,11 +1054,95 @@
                                    var _checkData = checkData[i];
                                    var tmp = {};
                                    tmp.dev_id = _checkData.dev_id;
                                    tmp.setStatus = 0;
                                    _data.allStatus = 2;        //  设置失败
                                    rsData.push(tmp);
                                }
                                layuiTbl.update('dev_id', rsData);
                            }
                        }
                        ,complete: function() {
                            layer.close(loading);
                        }
                    });
                }
                // 批量重启设备按钮
                $('#sysRestart').click(function() {
                    var checkStatus = table.checkStatus('pageTbl'); // 获取被选中的行
                       var checkData = checkStatus.data;
                    if(checkData.length == 0) {
                        layer.msg('请选择要设置的机房!');
                        return;
                    }
                    // 调用重启设备的请求
                    batchRestartSys(checkData);
                });
                // 批量重启设备请求
                function batchRestartSys(params) {
                    // 判断data是否为空
                    if(!params || params.length==0) {
                        layer.msg('请选择要重启的设备');
                        return;
                    }
                    // 弹出询问弹出框
                    layer.confirm('是否批量重启设备', {icon: 3, title: '提示'}, function(index) {
                        // 对数据进行处理
                        var rsData = [];
                        // 遍历params的值
                        for(var i=0; i<params.length; i++)  {
                            var _params = params[i];
                            _params.op_cmd = sysSetCmd.restart;
                            _params.num = 0;
                            rsData.push(_params);
                        }
                        // 请求后台
                        ajaxBatchRestartSys(rsData);
                    });
                }
                // 更具数据向后台请求重启设备
                function ajaxBatchRestartSys(params) {
                    var loading = layer.load(1);
                    // 重启设备
                    $.ajax({
                        type: 'post'
                        ,async: true
                        ,url: 'Fbs9100_sysparamAction_action_restartPL_FBS'
                        ,data: 'json='+JSON.stringify(params)+'&json_msg='+addBattStr
                        ,dataType: 'json'
                        ,success: function(res) {
                            var rs = JSON.parse(res.result);
                            if(rs.code == 1) {
                                var data = rs.data;
                                // 遍历 data
                                for(var i=0; i<data.length; i++) {
                                    var _data = data[i];
                                    if(_data.num == 1) {
                                        _data.allStatus = 5;        //  重启成功
                                    }else {
                                        _data.allStatus = 4;        // 重启失败
                                    }
                                }
                                // 更新表格
                                layuiTbl.update('dev_id', data);
                            }
                        }
                        ,error: function() {
                            layer.msg('重启失败');
                            // 遍历params
                            for(var i=0; i<params.length; i++) {
                                var _param = params[i];
                                _param.allStatus = 4;        // 重启失败
                            }
                            // 更新表格
                            layuiTbl.update('dev_id', params);
                        }
                        ,complete: function() {
                            layer.close(loading);
@@ -963,6 +1171,46 @@
                    }
                    return rs;
                }
                // 检测电流钳数据是否符合标准
                function checkCurrentRange(monVolStd, CRange) {
                    var rsBool = 0;        // 返回结果是否符合标准0不符合, 1符合
                    // 判断对应关系
                    switch(Number(monVolStd)){
                        case 12:        // 12V设备
                            if(CRange == 100) {
                                rsBool = 1;
                            }
                        break;
                        case 2:        // 2V设备
                            if(CRange == 200) {
                                rsBool = 1;
                            }
                        break;
                    }
                    return rsBool;
                }
                // 检测DCDC模块数量
                function checkLoaderCount(monVolStd, LoaderCount) {
                    var rsBool = 0;        // 返回结果是否符合标准0不符合, 1符合
                    // 判断对应关系
                    switch(Number(monVolStd)){
                        case 12:        // 12V设备
                            if(LoaderCount == 1) {
                                rsBool = 1;
                            }
                        break;
                        case 2:        // 2V设备
                            if(LoaderCount == 2) {
                                rsBool = 1;
                            }
                        break;
                    }
                    return rsBool;
                }
            });
        </script>
    </body>