hdw
2019-01-11 320417eb10a547e0212949751c1708f362045395
批量系统参数设置内容修改
1个文件已添加
1个文件已修改
413 ■■■■■ 已修改文件
gx_tieta/WebRoot/iframe/sys-set-test.html 212 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
gx_tieta/WebRoot/sys-set-test.jsp 201 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
gx_tieta/WebRoot/iframe/sys-set-test.html
New file
@@ -0,0 +1,212 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>机房面板显示</title>
       <link rel="stylesheet" href="../src/css/layui.css">
       <link rel="stylesheet" href="../pages/css/mylayui.css">
       <style>
           html,body{
               min-width: 400px;
           }
        body.homeinfo-tab .layui-tab {
            margin: 0;
        }
        body.homeinfo-tab .layui-tab-card{
            border: none;
        }
        body.homeinfo-tab .layui-tab-content {
            padding: 0;
        }
    </style>
</head>
<body class="homeinfo-tab">
    <div class="layui-tab layui-tab-card" lay-filter="homeInfo">
        <ul class="layui-tab-title">
            <li class="layui-this">可设置机房<span class="layui-badge" id="goodHomeNum">0</span></li>
            <li>不可设置机房<span class="layui-badge" id="badHomeNum">0</span></li>
        </ul>
        <div class="layui-tab-content">
               <div class="layui-tab-item layui-show">
                   <table id="pageTblGood" lay-filter="pageTblGood"></table>
               </div>
               <div class="layui-tab-item">
                   <table id="pageTblBad" lay-filter="pageTblBad"></table>
               </div>
           </div>
    </div>
    <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="DtCardCount">
        {{# if(d.DtCardCount==1) { }}
            从一拖24获取
        {{# }else{  }}
            <span style="color: #FF0000">从汇集器获取</span>
        {{# } }}
    </script>
    <script type="text/javascript" src="../js/jquery-1.8.3.js"></script>
    <script type="text/javascript" src="../src/layui.js"></script>
    <script type="text/javascript">
        layui.use(['table', 'element'], function() {
            let table = layui.table;        // 获取table模块
            let element = layui.element;    // 获取element模块
            // 切换选择卡
            element.on('tab(homeInfo)', function(elem){
                $(window).resize();
            });
            // 可设置机房表格的配置项
            let goodTblOpts = {
                elem: '#pageTblGood'
                ,toolbar: false
                ,defaultToolbar: []
                ,cellMinWidth: 80
                ,cols: [[
                    {field:'dev_id', title:'设备ID', align:'center', width: 160, resize: false}
                    ,{field:'stationName', title:'机房名称', align:'center', width: 500, resize: false}
                    ,{field:'BattGroupNum', title:'电池组数', align:'center', width: 120}
                    ,{field:'GroupVolRange', title:'总续航时间(分钟)', align:'center', width: 180}
                    ,{field:'GroupVolSorce', title:'保一次下电续航时间(分钟)', align:'center', width: 240}
                    ,{field:'CurrentRange', title:'电流钳量程(A)', templet: '#CurrentRange', align:'center', width: 180}
                    ,{field:'CurrentTyte', title:'一次下电(V)', align:'center', width: 180}
                    ,{field:'MonomerOrder', title:'二次下电(V)', align:'center', width: 180}
                    ,{field:'LoaderCount', title:'DCDC数量',templet: '#LoaderCount', align:'center', width: 180}
                    ,{field:'DtCardCount', title:'单体数据来源', templet: '#DtCardCount', align:'center', width: 200}
                    ,{field:'POF_BG_Boost_Cnt', title:'续航组数', align:'center', width: 240}
                    ,{field:'POF_BG_Boost_VolStop', title:'续航下限(V)', align:'center', width: 160}
                    ,{field:'POF_BG_Boost_VolStart', title:'续航启动下限(V)', align:'center', width: 200}
                    ,{field:'MajorBattGroupNum', title:'主电池组号', align:'center', width: 200}
                    ,{field: 'moncapstds', title: '标称容量(AH)', align: 'center', width: 180}
                    ,{field: 'RealCap', title: '实际容量(AH)', align: 'center', width: 180}
                    ,{field:'StationName9', title:'版本号', align:'center', width: 160}
                    ,{field:'Load_curr', title:'负载电流(A)', align:'center', width: 160}
                    ,{field:'BackLightTime', title:'背光时间(分钟)', align:'center', width: 160}
                    ,{field:'PowerBreakChargeCurr', title:'停电充电电流(A)', align:'center', width: 240}
                    ,{field:'allStatus', fixed: 'right', title: '状态', templet: '#allStatus', align: 'center', width: 180}
                ]]
                ,data:[]
                ,limit: 10000
                ,page: false
                ,height: 'full-45'
            };
            let badTblOpts = {
                elem: '#pageTblBad'
                ,toolbar: false
                ,defaultToolbar: []
                ,cellMinWidth: 80
                ,cols: [[
                    {field:'dev_id', title:'设备ID', align:'center', width: 160, resize: false}
                    ,{field:'stationName', title:'机房名称', align:'center', width: 500, resize: false}
                    ,{field:'BattGroupNum', title:'电池组数', align:'center', width: 120}
                    ,{field:'GroupVolRange', title:'总续航时间(分钟)', align:'center', width: 180}
                    ,{field:'GroupVolSorce', title:'保一次下电续航时间(分钟)', align:'center', width: 240}
                    ,{field:'CurrentRange', title:'电流钳量程(A)', templet: '#CurrentRange', align:'center', width: 180}
                    ,{field:'CurrentTyte', title:'一次下电(V)', align:'center', width: 180}
                    ,{field:'MonomerOrder', title:'二次下电(V)', align:'center', width: 180}
                    ,{field:'LoaderCount', title:'DCDC数量',templet: '#LoaderCount', align:'center', width: 180}
                    ,{field:'DtCardCount', title:'单体数据来源', templet: '#DtCardCount', align:'center', width: 200}
                    ,{field:'POF_BG_Boost_Cnt', title:'续航组数', align:'center', width: 240}
                    ,{field:'POF_BG_Boost_VolStop', title:'续航下限(V)', align:'center', width: 160}
                    ,{field:'POF_BG_Boost_VolStart', title:'续航启动下限(V)', align:'center', width: 200}
                    ,{field:'MajorBattGroupNum', title:'主电池组号', align:'center', width: 200}
                    ,{field: 'moncapstds', title: '标称容量(AH)', align: 'center', width: 180}
                    ,{field: 'RealCap', title: '实际容量(AH)', align: 'center', width: 180}
                    ,{field:'StationName9', title:'版本号', align:'center', width: 160}
                    ,{field:'Load_curr', title:'负载电流(A)', align:'center', width: 160}
                    ,{field:'BackLightTime', title:'背光时间(分钟)', align:'center', width: 160}
                    ,{field:'PowerBreakChargeCurr', title:'停电充电电流(A)', align:'center', width: 240}
                    ,{field:'allStatus', fixed: 'right', title: '状态', templet: '#allStatus', align: 'center', width: 180}
                ]]
                ,data:[]
                ,limit: 10000
                ,page: false
                ,height: 'full-45'
            };
            // 渲染表格可设置机房的表格
            table.render(goodTblOpts);
            // 渲染不可设置机房的表格
            table.render(badTblOpts);
            let goodAndBadHome = parent.$('#sysSetTestData').data('goodAndBadHome');
            goodAndBadHome = goodAndBadHome?goodAndBadHome:{good:[], bad:[]};
            //console.log(goodAndBadHome);
            // 设置good的值
            for(let i=0, len=goodAndBadHome.good.length; i<len; i++) {
                let _good = goodAndBadHome.good[i];
                goodTblOpts.data.push(_good);
            }
            // 设置不可以设置机房的个数
            $('#goodHomeNum').text(goodTblOpts.data.length);
            // 渲染表格可设置机房的表格
            table.render(goodTblOpts);
            // 设置bad的值
            for(let i=0, len=goodAndBadHome.bad.length; i<len; i++) {
                let _bad = goodAndBadHome.bad[i];
                badTblOpts.data.push(_bad);
            }
            // 设置不可以设置机房的个数
            $('#badHomeNum').text(badTblOpts.data.length);
            // 渲染不可设置机房的表格
            table.render(badTblOpts);
        });
    </script>
</body>
</html>
gx_tieta/WebRoot/sys-set-test.jsp
@@ -162,7 +162,8 @@
                            </div>
                        </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="sysSet">下发系统参数</button>
                        <button class="layui-btn layui-btn-sm" id="readSysSet">读取系统参数</button>
                        <button class="layui-btn layui-btn-sm" id="sysRestart">批量重启设备</button>
                    </div>
                </div>
@@ -171,7 +172,7 @@
            </div>
        </div>
        <!-- 存储set-curr.html的信息 -->
        <div id="setCurrIframe"></div>
        <div id="sysSetTestData"></div>
        <div id="setCurrBtn"></div>
        <!-- 单体数据来源 -->
        <script type="text/html" id="DtCardCount">
@@ -233,7 +234,7 @@
                    return status;
                };
            }}
            <button class="layui-btn layui-btn-sm" lay-event="readSysSet">读取</button>
            {{ getStatus(d.allStatus) }}
        </script>
        <!-- 电流钳量程 -->
@@ -552,24 +553,24 @@
                        ,{field:'dev_id', title:'设备ID', align:'center', width: 160}
                        ,{field:'stationName', title:'机房名称', align:'center', width: 470}
                        ,{field:'BattGroupNum', title:'电池组数', 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: '#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>',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}
                        ,{field:'MajorBattGroupNum', title:'电池合路器主电池组编号 <i class="fa fa-edit normal" title="设置电池合路器主电池组编号"></i>', align:'center', width: 300}
                        ,{field:'BackLightTime', title:'背光时间(分钟)<i class="fa fa-edit normal" title="设置背光时间"></i>', align:'center', width: 160}
                        ,{field:'PowerBreakChargeCurr', title:'停电充电电流(A)<i class="fa fa-edit normal" title="设置停电充电电流"></i>', align:'center', width: 240}
                        ,{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>',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: 160}
                        ,{field:'POF_BG_Boost_VolStart', title:'续航启动下限(V)<i class="fa fa-edit normal" title="设置续航启动下限"></i>', align:'center', width: 200}
                        ,{field:'MajorBattGroupNum', title:'主电池组号 <i class="fa fa-edit normal" title="设置主电池组号"></i>', align:'center', width: 200}
                        ,{field: 'moncapstds', title: '标称容量(AH)', align: 'center', width: 180}
                        ,{field: 'RealCap', title: '实际容量(AH)', align: 'center', width: 180}
                        ,{field:'StationName9', title:'版本号', align:'center', width: 160}
                        ,{field:'Load_curr', title:'负载电流(A)', align:'center', width: 160}
                        ,{field:'allStatus', fixed: 'right', title: '状态', templet: '#allStatus', align: 'center', width: 180}
                        ,{field:'BackLightTime', title:'背光时间(分钟)<i class="fa fa-edit normal" title="设置背光时间"></i>', align:'center', width: 160}
                        ,{field:'PowerBreakChargeCurr', title:'停电充电电流(A)<i class="fa fa-edit normal" title="设置停电充电电流"></i>', align:'center', width: 240}
                        ,{field:'allStatus', fixed: 'right', title: '状态', templet: '#allStatus', align: 'center', width: 220}
                    ]]
                    ,data:[]
                    ,limit: 10000
@@ -666,8 +667,13 @@
                                    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(_trData.data.allStatus == 0) {
                                            _rsData.allStatus = 0;
                                        }else {
                                            _rsData.allStatus = 6;        // 修改参数但未设置
                                        }
                                        
                                        // 判断是否为电流钳量程,设置是否符合标准
                                        if(_rsData.CurrentRange != undefined) {
@@ -1001,21 +1007,45 @@
                        return;
                    }
                    
                    // 遍历chackData的值
                    for(var i=0; i<checkData.length; i++) {
                        checkData[i].num = 0;                        // num为0
                        checkData[i].op_cmd = sysSetCmd.set;        //  设置系统参数命令
                        checkData[i].CurrentTyte = checkData[i].CurrentTyte*10;    //    一次
                        checkData[i].MonomerOrder =checkData[i].MonomerOrder*10;    //    二次
                    let goodAndBadHome = getGoodAndBadHome(checkData);
                    console.log(goodAndBadHome);
                    let goodHome = goodAndBadHome.good;
                    // 判断是否存在可设置参数的机房
                    if(goodHome.length != 0) {
                        // 设置存储goodAndBadHome
                        $('#sysSetTestData').data('goodAndBadHome', goodAndBadHome);
                        // 打开面板
                        layer.open({
                            type: 2
                            ,title: '系统参数设置提示'
                            ,area: ['1200px', '500px']
                            ,content: 'iframe/sys-set-test.html'
                            ,btn:['确定', '取消']
                            ,yes: function(sysSetTestIndex) {
                                // 遍历goodHome的值
                                for(var i=0; i<goodHome.length; i++) {
                                    goodHome[i].num = 0;                        // num为0
                                    goodHome[i].op_cmd = sysSetCmd.set;        //  设置系统参数命令
                                    goodHome[i].CurrentTyte = checkData[i].CurrentTyte*10;    //    一次
                                    goodHome[i].MonomerOrder =checkData[i].MonomerOrder*10;    //    二次
                                }
                                // 判断是否修改系统参数
                                layer.confirm('是否确认修改系统参数', {icon: 3, title: '提示'}, function(index) {
                                    // 关闭面板
                                    layer.close(sysSetTestIndex);
                                    // 关闭当前面板
                                    layer.close(index);
                                    // 批量设置
                                    batchSetSys(goodHome);
                                });
                            }
                        });
                    }else {
                        layer.msg('请选择读取成功的机房!');
                    }
                    //console.log(checkData);
                    // 判断是否修改系统参数
                    layer.confirm('是否确认修改系统参数', {icon: 3, title: '提示'}, function(index) {
                        layer.close(index);
                        // 批量设置
                        batchSetSys(checkData);
                    });
                });
                
                // 批量设置电池组
@@ -1107,7 +1137,7 @@
                    });
                }
                
                // 更具数据向后台请求重启设备
                // 根据数据向后台请求重启设备
                function ajaxBatchRestartSys(params) {
                    var loading = layer.load(1);
                    // 重启设备
@@ -1150,6 +1180,90 @@
                            layer.close(loading);
                        }
                    });
                }
                // 点击批量读取按钮
                $('#readSysSet').click(function() {
                    let checkStatus = table.checkStatus('pageTbl'); // 获取被选中的行
                       let checkData = checkStatus.data;
                    if(checkData.length == 0) {
                        layer.msg('请选择要读取的机房!');
                        return;
                    }
                    // 遍历checkData的值
                    for(var i=0; i<checkData.length; i++) {
                        let _checkData = checkData[i];
                        _checkData.num = 0;
                        _checkData.op_cmd = sysSetCmd.get;
                    }
                    // 向后台发送重新读取的命令
                    batchReadSysSet(checkData);
                });
                // 点击表格的读取
                table.on('tool(pageTbl)', function(obj) {
                    let event = obj.event;        // 获取事件名称
                    switch(event) {
                        case 'readSysSet':
                            let data = obj.data;
                            data.num=0;
                            data.op_cmd = sysSetCmd.get;
                            // 请求读取
                            batchReadSysSet([data]);
                        break;
                    }
                });
                // 批量读取系统参数
                function batchReadSysSet(params) {
                    // 判断长度
                    if(params.length == 0) {
                        layer.msg('请选择要读取的机房!');
                        return;
                    }
                    let loading = layer.load(1);
                    // 请求
                    $.ajax({
                        type: 'post'
                        ,async: true
                        ,url: 'Fbs9100_sysparamAction_action_readPL'
                        ,data: 'json='+JSON.stringify(params)
                        ,dataType: 'json'
                        ,success: function(res) {
                            let rs = JSON.parse(res.result);
                            let rsData = [];
                            if(rs.code == 1) {
                                let data = rs.data;
                                // 遍历结果集
                                for(let i=0; i<data.length; i++) {
                                    let _data = data[i];
                                    let _tmp = _data.obj?_data.obj[0]:params[i];
                                    if(_data.num==1) {
                                        _tmp.allStatus = 1;
                                    }else {
                                        _tmp.allStatus = 0;
                                    }
                                    rsData.push(_tmp);
                                }
                            }else {
                                layer.msg('读取失败!');
                                // 遍历params的值
                                for(let i=0; i<params.length; i++) {
                                    let _params = params[i];
                                    _params.allStatus = 0;
                                    rsData.push(_params);
                                }
                            }
                            layuiTbl.update('dev_id', rsData);
                        }
                        ,complete: function() {
                            layer.close(loading);
                        }
                    });
                }
                
                // 获取筛选条件的字符串
@@ -1213,6 +1327,29 @@
                    
                    return rsBool;
                }
                // 根据allStatus的值区分可设置参数的机房信息/不可设置参数的机房
                function getGoodAndBadHome(data) {
                    //console.log(data);
                    let rs = {
                        good:[]        // 可设置参数机房的结果集
                        ,bad:[]        // 不可设置参数机房的结果集
                    };
                    // 遍历data的值
                    for(var i=0; i<data.length; i++) {
                        let _data = data[i];
                        let status = _data.allStatus;
                        // 根据status的值对数据进行划分
                        if(status) {
                            rs.good.push(_data);
                        }else {
                            rs.bad.push(_data);
                        }
                    }
                    return rs;
                }
            });
        </script>
    </body>