whychdw
2021-04-13 95d8d8fd868f15c68d83f530dd337af5e060725c
内容提交1
2个文件已添加
619 ■■■■■ 已修改文件
gx_tieta/WebRoot/js/dischargetest/curing.js 514 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
gx_tieta/WebRoot/js/dischargetest/stopCuring.js 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
gx_tieta/WebRoot/js/dischargetest/curing.js
New file
@@ -0,0 +1,514 @@
const CMD_ReadFodParam = 0xA0;        // 读取FOD参数
const CMD_WriteFodParam = 0xA1;        // 设置FOD参数
const CMD_stop_FOD_test = 0xA4;        // 停止除硫
//初始化设置参数的按钮
var CuringBtn = {
    disabled: function() {
        $('#curing_btn_start_test').addClass('whyc-btn-disabled');    // 启动测试无效
        $('#curing_btn_ensure').addClass('whyc-btn-disabled'); // 设定参数无效
    },
    active:function() {
        if(!$('#curing_btn_start_test').hasClass('no-remove-disabled')) {
            $('#curing_btn_start_test').removeClass('whyc-btn-disabled'); // 启动测试可以点击
        }
        if(!$('#curing_btn_ensure').hasClass('no-remove-disabled')) {
            $('#curing_btn_ensure').removeClass('whyc-btn-disabled');     // 设置参数可以点击
        }
    },
    startTest:function(param) {
        if(param) {
            $('#curing_btn_start_test').removeClass('whyc-btn-disabled');    // 启动测试可以点击
        }else {
            $('#curing_btn_start_test').addClass('whyc-btn-disabled');    // 启动测试无效
        }
    },
    ensure: function(param) {
        if(param) {
            $('#curing_btn_ensure').removeClass('no-remove-disabled');     // 移除无法移除不可点击
            $('#curing_btn_ensure').removeClass('whyc-btn-disabled');     // 设置参数可以点击
        }else {
            $('#curing_btn_ensure').addClass('whyc-btn-disabled'); // 设定参数无效
        }
    }
};
$(function() {
    // 点击显示弹出面板
    $("#setCuringParamBtn").click(function() {
        var batt = getBatt();
        $('#curing_dev_id').val(batt.FBSDeviceId);    // 设置设备id
        $('#curing_btn_ensure').addClass('no-remove-disabled');     // 添加无法移除不可点击
        readCuringParams();        // 读取参数
    });
    // 点击读取
    $('#curing_btn_flush').click(function() {
        var batt = getBatt();
        $('#curing_dev_id').val(batt.FBSDeviceId);    // 设置设备id
        readCuringEquipParams(true);        // 读取参数
    });
    // 点击设定
    $('#curing_btn_ensure').click(function() {
        setCuringParams();
    });
    // 点击启动
    $('#curing_btn_start_test').click(startCuringTest);
    // 点击停止除硫
    //$('#stopCuring').click(stopCuringTest);
    // 浮充电压规则
    $('#curing_FloatVol').testVal({
        pattern: /^[0-9]+(\.[0-9]*)?$/,
        regVal: true,
        min: 0,
        max: 90,
        msg: '取值范围0~90'
    });
    // 除硫强度规则
    $('#curing_Strength').testVal({
        pattern: /^[0-9]+$/,
        regVal: true,
        min: 0,
        max: 30,
        msg: '取值范围0~30'
    });
    // 养护强度规则
    $('#curing_YHStrength').testVal({
        pattern: /^[0-9]+$/,
        regVal: true,
        min: 0,
        max: 30,
        msg: '取值范围0~30'
    });
    // 除硫参数规则
    $('#curing_TimeLong').testVal({
        pattern: /^[0-9]+$/,
        regVal: true,
        min: 0,
        max: 999,
        msg: '取值范围0~999'
    });
    // 获取BTS面板的所有文本框
    $('#curingPopup').on('input propertychange', 'input[type=text]', function() {
        setCuringPopupBtnStatus();
    });
    // 切换电池组号
    $('#curing_GroupNum').change(function() {
        var val = $(this).val();
        var allData = curing_popup.popup.data('alldata');
        if(allData) {
            CuringBtn.startTest();
            // 根据查询结果设置面板的值
            setCuringPopupVal(allData, val);
        }
    });
});
// 设置养护面板的按钮
function setCuringPopupBtnStatus() {
    var textList = curing_popup.popup.find('input[type=text]');
    var errorStatus = curing_popup.popup.data('errorStatus'); // 获取是否读取参数失败
    // 读取设备参数失败
    if(errorStatus) {
        CuringBtn.disabled();
        return false;    // 结束函数运行
    }
    // 遍历面板下的所有文本框查看是否有错误数据
    var isDisabled = false;
    textList.each(function() {
        if($(this).hasClass('error-data')) {
            isDisabled = true;
        }
    });
    // 存在错误的数据
    if(isDisabled) {
        CuringBtn.disabled();
        return false;    // 结束函数运行
    }else {
        CuringBtn.active();
    }
    // 遍历textList
    var isGood = true;
    for(var i=0; i<textList.length; i++) {
        var text = textList.eq(i);
        if(text.data('val') != text.val()) {
            isGood = false;
        }
    }
    // 不存再修改数据
    if(isGood) {
        CuringBtn.startTest(true);
    }else {
        CuringBtn.startTest();
    }
}
// 读取参数
function readCuringParams(flush) {
    var searchParams = {
        dev_id: $('#curing_dev_id').val()
    };
    // 是否为更新
    if(!flush) {
        CuringBtn.disabled();
    }
    var layer = layui.layer;
    var load = layer.load(1);
    $.ajax({
        type: 'post',
        url: 'Fbs9100s_fod_paramAction_action_serchByCondition',
        data: 'json='+JSON.stringify(searchParams),
        dataType: 'json',
        success: function(res) {
            layer.close(load);
            var rs = JSON.parse(res.result);
            if(rs.code == 1) {
                var data = rs.data[0];
                var group = $('#curing_GroupNum').val();
                // 根据查询结果设置面板的值
                setCuringPopupVal(data, group);
                if(!flush) {
                    curing_popup.showPopup();
                }
            }else {
                layer.msg('获取参数失败!');
            }
        },
        error: function() {
            layer.close(load);
        }
    });
}
// 读取设备的参数
function readCuringEquipParams() {
    var searchParams = {
        op_cmd: CMD_ReadFodParam,
        dev_id: $('#curing_dev_id').val()
    };
    CuringBtn.disabled();
    var layer = layui.layer;
    var load = layer.load(1);
    $.ajax({
        type: 'post',
        url: 'Fbs9100s_fod_paramAction_action_update',
        data: 'json='+JSON.stringify(searchParams),
        dataType: 'json',
        success: function(res) {
            layer.close(load);
            var rs = JSON.parse(res.result);
            if(rs.code == 1) {
                readCuringParams(true);        // 读取参数
                // 根据查询结果设置面板的值
                CuringBtn.ensure(true);
                layer.msg('获取设备参数成功!');
            }else {
                layer.msg('获取设备参数失败!');
            }
        },
        error: function() {
            layer.close(load);
        }
    });
}
// 设置除硫养护参数面板
function setCuringPopupVal(alldata, group) {
    data = getCuringParamsByGroup(alldata, group);
    curing_popup.popup.data('alldata', alldata);
    $('#curing_STDCap').val(data.STDCap).data('val', data.STDCap);        // 标称容量
    $('#curing_FloatVol').val(data.FloatVol).data('val', data.FloatVol);    // 浮充电压
    $('#curing_Strength').val(data.Strength).data('val', data.Strength);    // 除硫强度
    $('#curing_YHStrength').val(data.YHStrength).data('val', data.YHStrength);    // 养护强度
    $('#curing_TimeLong').val(data.TimeLong).data('val', data.TimeLong);    // 除硫天数
}
// 获取电池编号(文本值)
function getCuringGroupNum(group) {
    var groupNum = null;
    group = Number(group);
    switch(group) {
        case 1:
            groupNum = '_one';
        break;
        case 2:
            groupNum = '_two';
        break;
        case 3:
            groupNum = '_three';
        break;
        case 4:
            groupNum = '_four';
        break;
    }
    return groupNum;
}
// 获取指定电池组的除硫养护参数
function getCuringParamsByGroup(data, group) {
    var groupNum = getCuringGroupNum(group);
    // 判断groupNum存在
    if(groupNum) {
        result = {
            dev_id: data.dev_id,        // 设备id
            GroupNum: data.GroupNum,        // 电池组号
            STDCap: data['STDCap'+groupNum],        // 标称容量
            FloatVol: data['FloatVol'+groupNum],    // 浮充电压
            Strength: data['Strength'+groupNum],    // 除硫强度
            YHStrength: data['YHStrength'+groupNum],    // 养护强度
            TimeLong: data['TimeLong'+groupNum]    // 除硫天数
        };
    }else {
        result = {
            dev_id: data.dev_id,        // 设备id
            GroupNum: 0,        // 电池组号
            STDCap: 0,        // 标称容量
            FloatVol: 0,    // 浮充电压
            Strength: 0,    // 除硫强度
            YHStrength: 0,    // 养护强度
            TimeLong: 0    // 除硫天数
        };
    }
    return result;
}
// 点击设定设置参数
function setCuringParams() {
    if($('#curing_btn_ensure').hasClass('whyc-btn-disabled')) {
        return;
    }
    var layer = layui.layer;
    // 二次校验除硫强度和养护强度
    var curing_Strength = Number($('#curing_Strength').val());
    var curing_YHStrength = Number($('#curing_YHStrength').val());
    var pattern = /^[0-9]+$/;
    if(!pattern.test(curing_Strength) || !pattern.test(curing_YHStrength)) {
        layer.msg('请按照规则输入参数');
        return;
    }
    if(curing_Strength<0 || curing_Strength>30) {
        layer.msg('除硫强度取值范围0~30');
        return;
    }
    if(curing_YHStrength<0 || curing_YHStrength>30) {
        layer.msg('养护强度取值范围0~30');
        return;
    }
    if(curing_YHStrength>curing_Strength) {
        layer.msg('养护强度不能大于除硫强度');
        return;
    }
    var popupParams = getCuringParam();
    // 判断获取参数的值
    if(!popupParams) {
        layer.msg('获取面板参数失败');
        return;
    }
    popupParams.op_cmd = CMD_WriteFodParam;        // 添加设置的命令
    var load = layer.load(1);
    CuringBtn.startTest();
    // 请求后台
    $.ajax({
        type: 'post',
        url: 'Fbs9100s_fod_paramAction_action_update',
        data: 'json='+JSON.stringify(popupParams),
        dataType: 'json',
        success: function(res) {
            layer.close(load);
            var rs = JSON.parse(res.result);
            if(rs.code == 1) {
                CuringBtn.startTest(true);
                layer.msg('设置参数成功!');
            }else {
                layer.msg('设置参数失败!');
            }
        },
        error: function() {
            layer.msg('设置参数失败!');
            layer.close(load);
        }
    });
}
// 获取养护除硫面板的值
function getCuringParam() {
    var allData = curing_popup.popup.data('alldata');
    allData.GroupNum = $('#curing_GroupNum').val();        // 电池组号
    var groupNum = getCuringGroupNum(allData.GroupNum);
    if(groupNum) {
        allData['STDCap'+groupNum] = $('#curing_STDCap').val();        // 标称容量
        allData['FloatVol'+groupNum] = $('#curing_FloatVol').val(),    // 浮充电压
        allData['Strength'+groupNum] = $('#curing_Strength').val(),    // 除硫强度
        allData['YHStrength'+groupNum] = $('#curing_YHStrength').val(),    // 养护强度
        allData['TimeLong'+groupNum] = $('#curing_TimeLong').val()    // 除硫天数
    }else {
        return false;
    }
    return allData;
}
// 启动测试
function startCuringTest() {
    if($('#curing_btn_start_test').hasClass('whyc-btn-disabled')) {
        return;
    }
    var curing_style = $('#curing_style option:selected').text();
    var curing_GroupNum = $('#curing_GroupNum').val();
    var layer = layui.layer;
    layer.confirm('确定启动<span style="color: #FF0000">组'+curing_GroupNum+'</span>的<span style="color: #FF0000">'+curing_style+'</span>', {icon:3, title: '提示'}, function(index) {
        layer.close(index);
        var batt = getBatt();
        var startParams = {
            op_cmd: Number($('#curing_style').val()),
            dev_id: batt.FBSDeviceId,
            GroupNum: curing_GroupNum
        };
        var load = layer.load(1);
        // 发送停止命令,请求后台
        $.ajax({
            type: 'post',
            async: true,
            url: 'Fbs9100s_fod_paramAction_action_update',
            data: 'json='+JSON.stringify(startParams),
            dataType: 'json',
            success: function(res) {
                layer.close(load);
                var rs = JSON.parse(res.result);
                if(rs.code == 1) {
                    layer.msg('启动成功!')
                }else {
                    layer.msg('启动失败!')
                }
            }
        });
    });
}
// 停止测试
function stopCuringTest() {
    var layer = layui.layer;
    var batt = getBatt();
    var battNum = batt.GroupIndexInFBSDevice+1;
    layer.confirm('确定停止<span style="color:#FF0000">组'+battNum+'</span>的养护/除硫', {icon: 3, title: '提示'}, function(index) {
        layer.close(index);
        var stopParams = {
            op_cmd: CMD_stop_FOD_test,
            dev_id: batt.FBSDeviceId,
            GroupNum: battNum
        };
        var load = layer.load(1);
        // 发送停止命令,请求后台
        $.ajax({
            type: 'post',
            async: true,
            url: 'Fbs9100s_fod_paramAction_action_update',
            data: 'json='+JSON.stringify(stopParams),
            dataType: 'json',
            success: function(res) {
                layer.close(load);
                var rs = JSON.parse(res.result);
                if(rs.code == 1) {
                    layer.msg('停止成功!')
                }else {
                    layer.msg('停止失败!')
                }
            }
        });
    });
}
// 读取状态信息
function readCuringStatus(status) {
    var batt = getBatt();
    // 检测设备是否为bts和61850设备
    if(regEquipType(batt.FBSDeviceId, globalPattern.BTS) ||
        regEquipType(batt.FBSDeviceId, globalPattern.equip61850)) {
        var searchParams = {
            dev_id: batt.FBSDeviceId
        };
        // 设置当前设备不在除硫状态
        $.ajax({
            type: 'post',
            async: true,
            url: 'Fbs9100s_fod_stateAction_action_serchByCondition',
            data: 'json='+JSON.stringify(searchParams),
            dataType: 'json',
            success: function(res) {
                var rs = JSON.parse(res.result);
                if(rs.code == 1) {
                    var data = rs.data[0];
                    var curingStatus = getCuringStatusByGroupNum(batt.GroupIndexInFBSDevice, data);
                    status.setStatus('resDay', '剩余天数:'+curingStatus.resDay);
                    status.setStatus('workModel', '工作模式:'+curingStatus.workModel);
                    status.setStatus('groupVol', '组端电压:'+curingStatus.groupVol+'V');
                    status.setStatus('peakVol', '峰值电压:'+curingStatus.peakVol+'V');
                    if(curingStatus.workModel == '除硫') {
                        GLOBAL.analog.setTopVal(curingStatus.peakVol-curingStatus.groupVol);
                    }else {
                        GLOBAL.analog.setTopVal(0);
                    }
                    status.show();
                }
            }
        })
    }
}
var curingWorkModel = ['停止', '养护', '除硫'];
// 根据电池索引获状态值
function getCuringStatusByGroupNum(groupNum, data) {
    var num = Number(groupNum);
    var result = {
        resDay: '未知',
        workModel: '未知',
        groupVol: '未知',
        peakVol: '未知'
    };
    var dataNum = 'one';
    switch(num) {
        case 0:
            dataNum = 'one';
        break;
        case 1:
            dataNum = 'two';
        break;
        case 2:
            dataNum = 'three';
        break;
        case 3:
            dataNum = 'four';
        break;
    }
    var workModel = data['WorkState_'+dataNum];
    result = {
        resDay: data['RestTime_'+dataNum],
        workModel: curingWorkModel[workModel],
        groupVol: data['VGroupVol_'+dataNum],
        peakVol: data['VpeakVol_'+dataNum]
    };
    return result;
}
gx_tieta/WebRoot/js/dischargetest/stopCuring.js
New file
@@ -0,0 +1,105 @@
$('#stop_Curing_module_num').change(function() {
    changeStopModuleState();
});
// 停止测试
$('#stopCuring').click(function() {
    stopReadCuringInfo();
});
$('#stop_curing_btn').click(function() {
    confirmStopCuringState();
});
// 读取养护除硫的信息
function stopReadCuringInfo() {
    var layer = layui.layer;
    let batt = getBatt();
    let loading = layer.load(1);
    $.ajax({
        type:"post",
        url:"Fbs9100s_fod_stateAction_action_serchByCondition",
        async:true,
        datatype:'json',
        data:"json="+JSON.stringify({
            battGroupId: batt.BattGroupId,
        }),
        success:function(res){
            layer.close(loading);
            let rs = JSON.parse(res.result);
            if(rs.code == 1) {
                let data = rs.data[0];
                let nums = ['one', 'two', 'three', 'four', 'five'];
                // 解析数据
                let list = nums.map((item,index)=>{
                    return data['WorkState_'+item];
                });
                console.log(list);
                stopCuringPopup.data = list;
                // 修改模块状态
                changeStopModuleState();
                // 显示面板
                stopCuringPopup.showPopup();
            }else {
                layer.msg('未获取到养护除硫数据');
                stopCuringPopup.data = [0, 0, 0, 0, 0];
            }
        }
    });
}
// 根据模块编号修改状态
function changeStopModuleState() {
    let list = stopCuringPopup.data;
    let moduleNum = $('#stop_Curing_module_num').val()-1;
    let workModel = list[moduleNum];
    $('#stop_Curing_module_state').val(workModel);
    if(workModel == 0) {
        $('#stop_curing_btn').addClass('whyc-btn-disabled');
    }else {
        $('#stop_curing_btn').removeClass('whyc-btn-disabled');
    }
}
// 确认停止
function confirmStopCuringState() {
    if($('#stop_curing_btn').hasClass('whyc-btn-disabled')) {
        return;
    }
    let layer = layui.layer;
    layer.confirm('确认停止', function(index) {
        layer.close(index);
        stopCuringState();
    });
}
// 停止养护除硫
function stopCuringState() {
    let layer = layui.layer;
    let batt = getBatt();
    let groupNum = $('#stop_Curing_module_num').val();
    let battGroupNum = batt.GroupIndexInFBSDevice;
    let loading = layer.load();
    $.ajax({
        type:"post",
        url:"Fbs9100s_fod_paramAction_action_update",
        async:true,
        datatype:'json',
        data:"json="+JSON.stringify({
            op_cmd: 0xA4,
            dev_id: batt.FBSDeviceId,
            GroupNum: groupNum,
            BattGroupNum: battGroupNum
        }),
        success:function(res){
            let rs = JSON.parse(res.result);
            layer.msg(rs.msg);
            // 关闭等待框
            layer.close(loading);
        }
    });
}