hdw
2018-11-29 1c6c2939c18a0dc3968ea04e398f6fb0ef3396f4
设备更新
1个文件已修改
131 ■■■■■ 已修改文件
gx_tieta/WebRoot/batt-station-update1.jsp 131 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
gx_tieta/WebRoot/batt-station-update1.jsp
@@ -380,10 +380,11 @@
                        ,{field:'stationid', title:'机房ID', align:'center'}
                        ,{field:'stationname', title:'机房名称', align:'center', width: 400}
                        ,{field:'fbsid', title:'设备ID', align:'center'}
                        ,{field:'fbsname', title:'设备名称', align:'center'}
                        ,{field:'updatestatus', title:'升级状态', align:'center'}
                        ,{field: 'version', title: '版本号', align: 'center'}
                        ,{field:'filename', title:'升级文件名', align:'center'}
                        ,{field:'status', title:'读写状态', align:'center'}
                        ,{field:'progress', title:'上传进度', align: 'center', templet:'#upProgress'}
                        ,{field:'progress', title:'读/写进度', align: 'center', templet:'#upProgress'}
                        ,{field:'datapackage', title:'当前数据包', align:'center'}
                        ,{fixed: 'right', title:'操作', align:'center', toolbar: '#barDemo', width:100}
                    ]]
@@ -495,17 +496,19 @@
                                var formaterData = formaterAddData(rs.data, allData);        //解析数据
                                if(formaterData.length) {
                                    // 遍历formaterData
                                    //console.log(formaterData);
                                    for(var i=0; i<formaterData.length; i++) {
                                        var _formaterData = formaterData[i];
                                        var tmp = {};
                                        tmp.stationid = _formaterData.StationId;        // 机房id
                                        tmp.stationname = _formaterData.StationName;    // 机房名称
                                        tmp.fbsid = _formaterData.FBSDeviceId;            // 设备id
                                        tmp.fbsname = _formaterData.FBSDeviceName;        // 设备名称
                                        tmp.filename = getFnameByVer(_formaterData.StationIp);        // 升级文件名称
                                        tmp.updatestatusnum = 0;                        // 0 等待升级
                                        tmp.updatestatus = '等待升级';                        // 升级状态
                                        tmp.status = '写';                                // 读写状态
                                        tmp.datapackage = 1;                            // 当前数据包
                                        tmp.version = _formaterData.StationIp;            // 版本号
                                        tmp.isNewAdd = true;
                                        //console.log(tmp);
                                        allData.push(tmp);
@@ -622,12 +625,16 @@
                                status: [],
                                datapackage: []
                            };
                            //console.log(rs);
                            console.log(rs);
                            if(rs.code == 1 && rs.data.length>0){
                                var tblData = tOptions.data;
                                for(var i=0; i<rs.data.length; i++) {
                                    var _data = rs.data[i];
                                    var num = -1;
                                    // 计算进度
                                    var currentPer = getStrPercent(_data.dfu_data_blocknum, _data.dfu_data_blocklen, _data.dfu_file_len, _data.dfu_wr_stat);
                                    updateTblPorgress(_data.dev_id, currentPer);
                                    //console.log(currentPer);
                                    // 遍历现有的tblData/根据表格的设别id对获取到值进行排序以便对应表格内容
                                    for(var k=0; k<tblData.length;k++) {
                                        var _tblData = tblData[k];
@@ -696,7 +703,7 @@
                }
                
                
                //验证设备是否允许设备进行远程升级
                // 验证设备是否允许设备进行远程升级
                function checkStationState(temp, all){
                    $.ajax({     
                        type: "post",                 
@@ -710,12 +717,12 @@
                            if(rs.code == 1) {
                                var data = rs.data;
                                var updateData = checkUpdating(data, all);
                                var errorUpdate = checkErrorUpdate(data, all);
                                $('#updateIframeData').data('update', updateData);                // 可更新的设备信息
                                $('#updateIframeData').data('errorUpdate', errorUpdate);    // 无法更新的设备信息
                                $('#updateIframeData').data('update', updateData.good);                // 可更新的设备信息
                                $('#updateIframeData').data('errorUpdate', updateData.bad);    // 无法更新的设备信息
                                
                                console.log(updateData);
                                // 判断是否有升级的设备
                                if(updateData.length == 0) {
                                if(updateData.good.length == 0) {
                                    if(temp.length == 1) {
                                        layer.msg('当前设备无法升级!');
                                    }else {
@@ -735,18 +742,24 @@
                                    content: 'iframe/batt-station-update.html',
                                    btn: ['确认升级', '取消'],
                                    yes: function(index, layero) {
                                        var updateData = $('#updateIframeData').data('update');    // 获取可升级设备的信息
                                        var goodUpdateData = $('#updateIframeData').data('update');    // 获取可升级设备的信息
                                        // 根据可升级设备的信息构造查询条件
                                        var updateList = [];
                                        for(var i=0; i<updateData.length; i++) {
                                        for(var i=0; i<goodUpdateData.length; i++) {
                                            var _data  = goodUpdateData[i];
                                            //var filename = getFnameByVer(_data.version);
                                            var _tmp = {
                                                dev_id: updateData[i].fbsid
                                                dev_id: _data.fbsid
                                                ,dfu_file: _data.filename
                                            };
                                            console.log(_data);
                                            // 添加到设备升级列表中
                                            updateList.push(_tmp);
                                            if(_data.filename && _data.filename.length != 0) {
                                                updateList.push(_tmp);
                                            }
                                        }
                                        //console.log(updateList);
                                        // 关闭弹出面板
                                        layer.close(index);
                                        
@@ -771,34 +784,12 @@
                
                }
                
                // 从返回的可升级的设备中剔除正在升级的设备
                // 格式话升级的设备
                function checkUpdating(rsData, all) {
                    var rs = [];
                    // 遍历all
                    for(var i=0; i<all.length; i++) {
                        var _all = all[i];
                        var isError = true;
                        for(var k=0; k<rsData.length; k++) {
                            var _rsData = rsData[k];
                            // 判断当前设备是否正在升级
                            if(_all.updatestatusnum == 1) {
                                isError = false;
                            }
                        }
                        // 根据isError判读是否是不可添加的机房
                        if(isError) {
                            rs.push(_all);
                        }
                    }
                    return rs;
                }
                // 获取无法升级的设备
                function checkErrorUpdate(rsData, all) {
                    var rs = [];
                    var rs = {
                        good: []
                        ,bad: []
                    };
                    // 遍历all
                    for(var i=0; i<all.length; i++) {
                        var _all = all[i];
@@ -816,7 +807,9 @@
                        
                        // 根据isError判读是否是不可添加的机房
                        if(isError) {
                            rs.push(_all);
                            rs.bad.push(_all);
                        }else {
                            rs.good.push(_all);
                        }
                    }
                    
@@ -868,6 +861,8 @@
                                    tmp.fbsid = _data.dev_id;                    // 设备id
                                    tmp.fbsname = _data.fBSDeviceName;            // 设备名称
                                    tmp.updatestatusnum = 1;                    // 0 等待升级 1正在升级
                                    tmp.version = _data.note;                    // 版本号
                                    tmp.filename = _data.dfu_file;                // 升级文件名称
                                    tmp.updatestatus = '升级中';                    // 升级状态
                                    tmp.status = _data.dfu_wr_stat == 1?'写':_data.dfu_wr_stat == 2?'读':_data.dfu_wr_stat == 3?'完成':'';                            // 读写状态
                                    tmp.datapackage = _data.dfu_data_blocknum;                        // 当前数据包
@@ -878,11 +873,11 @@
                                
                                // 更新表格
                                table.render(tOptions);
                                renderTblPorgess(allData);
                            }
                        }
                    });
                }
                
                // 渲染进度条
                function renderTblPorgess(tblData) {
@@ -895,6 +890,54 @@
                    }
                    
                }
                // 更新进度条
                function updateTblPorgress(fbsid, percent) {
                    // 更新进度条
                    element.progress('upload'+fbsid, percent);
                }
                // 计算进度
                function getStrPercent(current, blocklen, all, status) {
                    var rs = '0%';
                    if(all != 0) {
                        var num = Math.ceil(current*blocklen*100/all);
                        if(num>=100) {
                            num = status == 1?'写完成':'升级完成';
                        }
                        rs = num+'%';
                    }
                    return rs;
                }
                //console.log(getFnameByVer('D:8,V2.53.40'));
                // 更具版本号获取文件的名称
                function getFnameByVer(version) {
                    var fileList = [
                        {
                            filename: 'avr_dfu.uc3'
                            ,pattern: /^.*\.24\.[0-9]*$/
                        }
                        ,{
                            filename: 'E51_DFU.SM5'
                            ,pattern: /^.*\.53\.[0-9]*$/
                        }
                    ];
                    // 遍历并获取filename
                    var filename = undefined;
                    for(var i=0; i<fileList.length; i++) {
                        var _fileList = fileList[i];
                        if(_fileList.pattern.test(version)) {
                            filename = _fileList.filename;
                        }
                    }
                    return filename;
                }
            });
        </script>
    </body>