LiJun
2018-10-16 46b798edc2dc0249a9ab6988e079825bc2ac7280
设备远程升级页面修改
2个文件已修改
550 ■■■■■ 已修改文件
gx_tieta/WebRoot/batt-station-update.jsp 548 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
gx_tieta/src/com/fgkj/actions/ram/Fbs9100s_dfu_stateAction.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
gx_tieta/WebRoot/batt-station-update.jsp
@@ -16,6 +16,7 @@
    <link rel="stylesheet" href="css/BrdwMaint.css">
    <link rel="stylesheet" type="text/css" href="css/loading.css">
    <link rel="stylesheet" type="text/css" href="css/dischargeplan_layout.css">
    <link rel="stylesheet" type="text/css" href="src/css/layui.css">
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
@@ -39,6 +40,10 @@
        }
        #tbBrdw table {
            width: 100%;
        }
        #tbBrdw table i.fa-refresh {
            font-size:18px;
            cursor: pointer;
        }
        #cardOption input[type="checkbox"] {
            vertical-align: middle;
@@ -71,7 +76,7 @@
                        <tr>
                            <td>
                                <select id="station_name1">
                                </select>
                            </td>
                            <td>
@@ -81,7 +86,6 @@
                            </td>
                            <td>
                                <select id="station_name">
                                </select>
                            </td>
                        </tr>
@@ -107,230 +111,332 @@
        <div id="allShade"></div>
        <script type="text/javascript" src="js/loading.js"></script>
        <script type="text/javascript" src="js/createTab.js"></script>
        <script type="text/javascript" src="src/layui.js"></script>
        <script type="text/javascript">
        var arrTh = new Array();    // 表格的头部
        var arrTd = new Array();    // 表格的表体
        var tblStatus = new Array();    // 表格状态数组
        var tblOptsHd = new Array();    // 表格选项头部
        var tblOptsBd = new Array();  // 表格选项数组
        arrTh = ['机房ID', '机房名称','设备ID','设备名称'];
        //arrTh = ['<s:text name="Maintenance_area"/>', '<s:text name="Computer_name"/>',  '<s:text name="Nominal_capacity"/>(AH)', '<s:text name="Actual_capacity"/>(AH)','<s:text name="Residual_capacity"/>(AH)', '<s:text name="real_time"/><s:text name="Current"/>(A)', '<s:text name="Power_cut"/><s:text name="Endurance"/><s:text name="Time"/>'];
        //tblOptsHd = ['编号', '选项', '是否选择'];
        tblOptsHd = ['<s:text name="Number"/>', '<s:text name="Options"/>', '<s:text name="IsChecked"/>'];
        var tblHd = $('#tbHead');
        var tblBd = $('#tbBrdw');
        // 根据表格的头部生成表格选项和表格的状态数组
        $(function() {
            centerDiv($('#cardOption'));
            // 遍历表格头部生成状态数组
            for(var i = 0; i < arrTh.length; i++) {
                tblStatus.push(1);
                var temp = new Array();
                temp.push(i+1);
                temp.push(arrTh[i]);
                temp.push('<input type="checkbox" checked="checked"/>');
                tblOptsBd.push(temp);
            }
            var cardHd = $('#cardOption .tbHead');
            var cardBd = $('#cardOption .con_table');
            createCard(cardHd, tblOptsHd, tblOptsBd);
            createCard(cardBd, tblOptsHd, tblOptsBd);
        });
        // 生成表格
        $(function() {
            createAllTbl(tblHd, tblBd, arrTh, arrTd, tblStatus);
            // 点击表格选项显示表格选项弹出框
            $('#paging .card-opt').click(function() {
                var checkboxList = $('#cardOption .con_table table tbody').find('input[type="checkbox"]');
                // 根据状态数组修改表格选项复选框的状态
                for(var i = 0; i < tblStatus.length; i++) {
                    if(tblStatus[i] == 1) {
                        checkboxList.eq(i).prop('checked', true);
                    }else{
                        checkboxList.eq(i).prop('checked', false);
                    }
                }
                $('#cardOption').show();
                $('#allShade').show();
            });
            // 点击取消和确定隐藏表格选项窗口和遮罩层
            $('#cardOption .en-card-opts').click(function() {
                // 根据表格选项的复选框设置状态数组
                var checkboxList = $('#cardOption .con_table table tbody').find('input[type="checkbox"]');
                checkboxList.each(function(i) {
                    if($(this).is(':checked')) {
                       tblStatus[i] = 1;
                    }else{
                        tblStatus[i] = 0;
                    }
                });
                createAllTbl(tblHd, tblBd, arrTh, arrTd, tblStatus);
                $('#cardOption').hide();
                $('#allShade').hide();
            });
            $('#cardOption .out-card-opts').click(function() {
                $('#cardOption').hide();
                $('#allShade').hide();
            });
        });
        // 根据表格的的头部生成
        $(function() {
            $('#endtime').val(new Date().format('yyyy-MM-dd'));
        });
        // 初始化页面高度
        $(function() {
            pageInit();
            $(window).resize(function() {
                pageInit();
            });
        });
        // 初始化页面内容
        function pageInit() {
            var winHt = $(window).height();
            var bodyHt = $('body').height();
            var tblHt = $('#tbBrdw').height();
            var shiftHt = winHt - bodyHt - 32;
            if(shiftHt > 0) {
                $('#tbBrdw').height(shiftHt + tblHt);
            }
        }
        // 生成表格的头部和表体
        function createAllTbl (header, body, arrTh, arrTd, status) {
            //console.info(status);
            var newArrTh = new Array();
            var newArrTd = new Array();
            newArrTh = getArrTh(status, arrTh);
            newArrTd = getArrTd(status, arrTd);
            createTablenew(header, newArrTh, newArrTd);
            createTablenew(body, newArrTh, newArrTd);
            // 定义表格的头部和表体宽度一致
            var bdWidth = body.find('table').width();
            header.find('table').width(bdWidth);
        }
        //对于弹出串口进行定位(position:fixed)
        function centerDiv(ele){
            //获取屏幕的高度对弹出窗口进行定位
            var srnHei=$(window).height();    //屏幕的高度
            var eleHei=ele.height();    //弹出窗口的高度
            var topHei=parseInt((srnHei-eleHei)/2);    //获取居中高度
            ele.css({
                'top':topHei
            });
        }
          // 省-市-机房-电池组
        $(document).ready(function(){
            //页面加载时查询维护区中的枢纽类型
            $.post("User_battgroup_baojigroup_battgroupAction!serchStationName1InGroup",null,function(data){
                data=data.result;
                data=eval("("+data+")");
                //console.info(data);
                if(data.code==1 && data.data.length>0){
                    var $select = $("#station_name1");
                    $select.text('');
                    for(var i=0;i<=data.data.length;i++){
                        $option=$("<option></option>");
                        if(i==0){
                            $option.html("<s:text name='All'/>(<s:text name='Common'/>"+data.data.length+"<s:text name='Species'/>)");
                            $option.attr("value", "");
                        }else{
                            $option.text(data.data[i-1]);
                            $option.attr("value",data.data[i-1]);
                        }
                        $select.append($option);
                    }
                }else{
                    $("#station_name1").text('').html('<option>暂无管理的维护区</option>');
                }
                findCity();
            });
        });
            layui.use(['layer'], function() {
                var layer = layui.layer;
                var arrTh = new Array();    // 表格的头部
                var arrTd = new Array();    // 表格的表体
                var tblStatus = new Array();    // 表格状态数组
                var tblOptsHd = new Array();    // 表格选项头部
                var tblOptsBd = new Array();  // 表格选项数组
                arrTh = ['机房ID', '机房名称','设备ID','设备名称','操作'];
                //arrTh = ['<s:text name="Maintenance_area"/>', '<s:text name="Computer_name"/>',  '<s:text name="Nominal_capacity"/>(AH)', '<s:text name="Actual_capacity"/>(AH)','<s:text name="Residual_capacity"/>(AH)', '<s:text name="real_time"/><s:text name="Current"/>(A)', '<s:text name="Power_cut"/><s:text name="Endurance"/><s:text name="Time"/>'];
                //tblOptsHd = ['编号', '选项', '是否选择'];
                tblOptsHd = ['<s:text name="Number"/>', '<s:text name="Options"/>', '<s:text name="IsChecked"/>'];
                var tblHd = $('#tbHead');
                var tblBd = $('#tbBrdw');
        
        function findCity() {
            var data = {
                StationName1: $("#station_name1").val()
            };
            // 请求获取当前省下的市
            $.ajax({
                type: "post",
                url: "BattInfAction!serchStationName2",
                async:true,
                dataType:'json',
                data:"json = "+JSON.stringify(data),
                success: function(data){
                    var rs = JSON.parse(data.result);
                    var $select = $("#city");
                    if(rs.code == 1) {
                        var _data= rs.data;
                        // 根据数据构造生成下拉列表的数据
                        var optsList = [];
                        for(var i=0;i<_data.length;i++){
                            var __data = _data[i];
                            var tmp = getOptionsData(__data.StationName2, __data.StationName2, __data);
                            optsList.push(tmp);
                        }
                        // 根据数据生成下拉列表
                        createOptions($select, optsList, true);
                    }else {
                        $select.text('').html('<option>暂无可测市</option>');
                    }
                    findStationNamebyStationname1();
                // 根据表格的头部生成表格选项和表格的状态数组
                $(function() {
                    centerDiv($('#cardOption'));
                    // 遍历表格头部生成状态数组
                    for(var i = 0; i < arrTh.length; i++) {
                        tblStatus.push(1);
                        var temp = new Array();
                        temp.push(i+1);
                        temp.push(arrTh[i]);
                        temp.push('<input type="checkbox" checked="checked"/>');
                        tblOptsBd.push(temp);
                    }
                    var cardHd = $('#cardOption .tbHead');
                    var cardBd = $('#cardOption .con_table');
                    createCard(cardHd, tblOptsHd, tblOptsBd);
                    createCard(cardBd, tblOptsHd, tblOptsBd);
                });
                // 生成表格
                $(function() {
                    createAllTbl(tblHd, tblBd, arrTh, arrTd, tblStatus);
                    // 点击表格选项显示表格选项弹出框
                    $('#paging .card-opt').click(function() {
                        var checkboxList = $('#cardOption .con_table table tbody').find('input[type="checkbox"]');
                        // 根据状态数组修改表格选项复选框的状态
                        for(var i = 0; i < tblStatus.length; i++) {
                            if(tblStatus[i] == 1) {
                                checkboxList.eq(i).prop('checked', true);
                            }else{
                                checkboxList.eq(i).prop('checked', false);
                            }
                        }
                        $('#cardOption').show();
                        $('#allShade').show();
                    });
                    // 点击取消和确定隐藏表格选项窗口和遮罩层
                    $('#cardOption .en-card-opts').click(function() {
                        // 根据表格选项的复选框设置状态数组
                        var checkboxList = $('#cardOption .con_table table tbody').find('input[type="checkbox"]');
                        checkboxList.each(function(i) {
                            if($(this).is(':checked')) {
                               tblStatus[i] = 1;
                            }else{
                                tblStatus[i] = 0;
                            }
                        });
                        createAllTbl(tblHd, tblBd, arrTh, arrTd, tblStatus);
                        $('#cardOption').hide();
                        $('#allShade').hide();
                    });
                    $('#cardOption .out-card-opts').click(function() {
                        $('#cardOption').hide();
                        $('#allShade').hide();
                    });
                });
                // 根据表格的的头部生成
                $(function() {
                    $('#endtime').val(new Date().format('yyyy-MM-dd'));
                });
                // 初始化页面高度
                $(function() {
                    pageInit();
                    $(window).resize(function() {
                        pageInit();
                    });
                });
                // 初始化页面内容
                function pageInit() {
                    var winHt = $(window).height();
                    var bodyHt = $('body').height();
                    var tblHt = $('#tbBrdw').height();
                    var shiftHt = winHt - bodyHt - 32;
                    if(shiftHt > 0) {
                        $('#tbBrdw').height(shiftHt + tblHt);
                    }
                }
            });
        }
        //当维护区的值变换时更新市
        $('#station_name1').change(function(){
            findCity();
        });
        //当维护区的值变换时更新机房站点
        $('#city').change(function(){
            findStationNamebyStationname1();
        });
        
        //根据省,市查询站点
        function findStationNamebyStationname1(){
            var tmp = {
                StationName1:$("#station_name1").val(),
                StationName2:$("#city").val()
            };
            //var selectvalue=$("#station_name1 option:selected").val();
            //alert(selectvalue);
            $.post("BattInfAction!serchStationName3","json="+JSON.stringify(tmp),function(data){
                var rs = JSON.parse(data.result);
                if(rs.code==1){
                    var _data = rs.data;
                    var $select = $("#station_name");
                    // 根据数据构造生成下拉列表的数据
                    var optsList = [];
                    for(var i=0;i<_data.length;i++){
                        var __data = _data[i];
                        var _attr = {
                            StationId: __data.StationId
                        };
                        var tmp = getOptionsData(__data.StationName3, __data.StationName, __data, _attr);
                        optsList.push(tmp);
                    }
                    // 根据数据生成下拉列表
                    createOptions($select, optsList, true);
                }else{
                    $("#station_name").text('').html('<option>暂无可测机房站点</option>');
                // 生成表格的头部和表体
                function createAllTbl (header, body, arrTh, arrTd, status) {
                    //console.info(status);
                    var newArrTh = new Array();
                    var newArrTd = new Array();
                    newArrTh = getArrTh(status, arrTh);
                    newArrTd = getArrTd(status, arrTd);
                    createTablenew(header, newArrTh, newArrTd);
                    createTablenew(body, newArrTh, newArrTd);
                    // 定义表格的头部和表体宽度一致
                    var bdWidth = body.find('table').width();
                    header.find('table').width(bdWidth);
                }
                //对于弹出串口进行定位(position:fixed)
                function centerDiv(ele){
                    //获取屏幕的高度对弹出窗口进行定位
                    var srnHei=$(window).height();    //屏幕的高度
                    var eleHei=ele.height();    //弹出窗口的高度
                    var topHei=parseInt((srnHei-eleHei)/2);    //获取居中高度
                    ele.css({
                        'top':topHei
                    });
                }
                $(function(){
                    //点击添加按钮
                    $('#paging .add').click(function(){
                        var stationid = $('#station_name').find('option:selected').attr('stationid');
                        if(getSelectStation(stationid,findStationNamebyStationname1.stations) != undefined){
                            if(getSelectStation(stationid,stations) == undefined){
                                addStationFromDb();
                            }else{
                                noContent.showNoContent("该机房已经添加到表格",2000);
                            }
                        }else{
                            noContent.showNoContent("请先选择一个机房");
                        }
                    });
                });
                var stations = new Array();
                //将设备添加到表格中
                function addStationFromDb(){
                    loading.showLoading();
                    var temp = {
                        dev_id:$('#station_name').find('option:selected').attr('stationid'),
                        dfu_file:"avr_dfu.uc3",
                        dfu_wr_stat:1,
                        dfu_data_blocknum:1
                    };
                    var station = getSelectStation(temp.dev_id, findStationNamebyStationname1.stations);
                    $.ajax({
                        type: "post",
                        url: "Fbs9100s_dfu_stateAction_action_add",
                        async:true,
                        dataType:'json',
                        data:"json = "+JSON.stringify(temp),
                        success: function(data){
                            stations.push(station);
                            console.info(stations);
                            var _arrTd = new Array();
                            for(var i = 0 ; i<stations.length;i++){
                                var st = stations[i];
                                _arrTd.push(st.StationId);
                                _arrTd.push(st.StationName);
                                _arrTd.push(st.FBSDeviceId);
                                _arrTd.push(st.FBSDeviceName);
                                _arrTd.push('<i class="fa fa-refresh" title="升级设备" onclick="(updateStationVersion('+st.FBSDeviceId+'))"></i>');
                            }
                            createAllTbl(tblHd, tblBd, arrTh, _arrTd, tblStatus);
                            loading.hideLoading();
                        }
                    });
                }
                  // 省-市-机房-电池组
                $(document).ready(function(){
                    //页面加载时查询维护区中的枢纽类型
                    $.post("User_battgroup_baojigroup_battgroupAction!serchStationName1InGroup",null,function(data){
                        data=data.result;
                        data=eval("("+data+")");
                        //console.info(data);
                        if(data.code==1 && data.data.length>0){
                            var $select = $("#station_name1");
                            $select.text('');
                            for(var i=0;i<=data.data.length;i++){
                                $option=$("<option></option>");
                                if(i==0){
                                    $option.html("<s:text name='All'/>(<s:text name='Common'/>"+data.data.length+"<s:text name='Species'/>)");
                                    $option.attr("value", "");
                                }else{
                                    $option.text(data.data[i-1]);
                                    $option.attr("value",data.data[i-1]);
                                }
                                $select.append($option);
                            }
                        }else{
                            $("#station_name1").text('').html('<option>暂无管理的维护区</option>');
                        }
                        findCity();
                    });
                });
                function findCity() {
                    var data = {
                        StationName1: $("#station_name1").val()
                    };
                    // 请求获取当前省下的市
                    $.ajax({
                        type: "post",
                        url: "BattInfAction!serchStationName2",
                        async:true,
                        dataType:'json',
                        data:"json = "+JSON.stringify(data),
                        success: function(data){
                            var rs = JSON.parse(data.result);
                            var $select = $("#city");
                            if(rs.code == 1) {
                                var _data= rs.data;
                                // 根据数据构造生成下拉列表的数据
                                var optsList = [];
                                for(var i=0;i<_data.length;i++){
                                    var __data = _data[i];
                                    var tmp = getOptionsData(__data.StationName2, __data.StationName2, __data);
                                    optsList.push(tmp);
                                }
                                // 根据数据生成下拉列表
                                createOptions($select, optsList, true);
                            }else {
                                $select.text('').html('<option>暂无可测市</option>');
                            }
                            findStationNamebyStationname1();
                        }
                    });
                }
            });
        }
                //当维护区的值变换时更新市
                $('#station_name1').change(function(){
                    findCity();
                });
                //当维护区的值变换时更新机房站点
                $('#city').change(function(){
                    findStationNamebyStationname1();
                });
                //根据省,市查询站点
                function findStationNamebyStationname1(){
                    findStationNamebyStationname1.stations = new Array();
                    var tmp = {
                        StationName1:$("#station_name1").val(),
                        StationName2:$("#city").val()
                    };
                    //var selectvalue=$("#station_name1 option:selected").val();
                    //alert(selectvalue);
                    $.post("BattInfAction!serchStationName3","json="+JSON.stringify(tmp),function(data){
                        var rs = JSON.parse(data.result);
                        if(rs.code==1){
                            var _data = rs.data;
                            var $select = $("#station_name");
                            // 根据数据构造生成下拉列表的数据
                            var optsList = [];
                            for(var i=0;i<_data.length;i++){
                                var __data = _data[i];
                                //console.info(__data);
                                var _attr = {
                                    StationId: __data.FBSDeviceId,
                                };
                                var tmp = getOptionsData(__data.StationName3, __data.StationName, __data, _attr);
                                optsList.push(tmp);
                            }
                            findStationNamebyStationname1.stations = _data;
                            // 根据数据生成下拉列表
                            createOptions($select, optsList, true);
                        }else{
                            $("#station_name").text('').html('<option>暂无可测机房站点</option>');
                        }
                    });
                }
            });
            //升级指定的设备
            function updateStationVersion(dev_id){
                loading.showLoading();
                var temp = {
                    dev_id:dev_id
                };
                $.ajax({
                    type: "post",
                    url: "Fbs9100s_dfu_stateAction_action_update",
                    async:true,
                    dataType:'json',
                    data:"json = "+JSON.stringify(temp),
                    success: function(data){
                        var rs = JSON.parse(data.result);
                        if(rs.code == 1) {
                            layer.msg("升级成功!");
                        }else{
                            layer.msg("升级失败!");
                        }
                        loading.hideLoading();
                    }
                });
            }
            //获取选中的机房对象
            function getSelectStation(dev_id,arr){
                if(arr != undefined && arr.length > 0){
                    for(var i=0;i<arr.length;i++){
                        if(arr[i].FBSDeviceId == dev_id){
                            return arr[i];
                        }
                    }
                }
                return undefined;
            }
        
        
        
gx_tieta/src/com/fgkj/actions/ram/Fbs9100s_dfu_stateAction.java
@@ -6,7 +6,7 @@
import com.fgkj.services.ram.Fbs9100s_dfu_stateService;
public class Fbs9100s_dfu_stateAction extends ActionUtil{
    private Fbs9100s_dfu_stateService service;
    private Fbs9100s_dfu_stateService service = new Fbs9100s_dfu_stateService();
    private String json;
    private String result;