geomagneticincome.js 13.1 KB
$(function () {
    $("[data-toggle='tooltip']").tooltip();
});

var fun = {
    init: function () {
        fun.statisticEqpCountAjax();
        fun.queryEqpTurnoverCountAjax();
        fun.realTimeDatasAjax();
        fun.recentIncomeAjax();
        fun.queryEqpCalculateSummary();
    },
    /*获取查询参数*/
    getQueryParam: function () {
        var data = fn.getParkLotByPlType(1);//获取路侧停车场
        var plNos = [];
        for (var i = 0; i < data.length; i++) {
            plNos.push(data[i].code);
        }
        if (plNos.length < 1) {
            plNos.push("-1X");
        }
        var req = {
            sysCode: sysComm.sysCode,
            plNos: plNos,

        };
        return req;
    },
    statisticEqpCountAjax: function () {
        var req = fun.getQueryParam();
        //设置请求参数
        req.baseRequest = {
            sysCode: sysComm.sysCode,
            pageNum: 1,
            pageSize: 0
        }
        req.sysCode = sysComm.sysCode;
        var optAjax = {
            async: false,
            method: "post",
            url: dataUrl.util.statisticEqpCountByCondition(),
            data: JSON.stringify(req),
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            success: function (res) {
                if (res.code = "8888") {
                    var data = res.data;
                    var allEqpNum = data.allEqpNum;
                    var onlineEqpNum = data.operateOnLineEqpNum;
                    var offLineEqpNum = data.operateOffLineEqpNum;
                    var faultEqpNum = data.operateFaultEqpNum;
                    var operateEqpNum = data.operateEqpNum;
                    var debugEqpNum = data.debugEqpNum;

                    $("#allEqpNum").text(fun.numberFormatter(allEqpNum));

                    $("#operateEqpNum").text(fun.numberFormatter(operateEqpNum));
                    $("#debugEqpNum").text(fun.numberFormatter(debugEqpNum));

                    $("#onlineEqpNum").text(fun.numberFormatter(onlineEqpNum));
                    $("#offLineEqpNum").text(fun.numberFormatter(offLineEqpNum));
                    $("#faultEqpNum").text(fun.numberFormatter(faultEqpNum));
                }
            }
        };
        sysAjax(optAjax);
    },
    //查询地磁周转次数
    queryEqpTurnoverCountAjax: function () {
        var req = fun.getQueryParam();
        var beginTime = new Date(new Date(new Date().toLocaleDateString()).getTime());
        var endTime = new Date();
        req.beginTime = beginTime;
        req.endTime = endTime;
        var opt = {
            method: 'post',
            url: dataUrl.util.queryEqpTurnoverCount(),
            async: false,
            data: JSON.stringify(req),
            success: function (res) {
                if (res.code == '8888') {
                    //获取数据成功
                    var eqpNum = res.data.turnoverNum;
                    var duration = res.data.duration;
                    if (eqpNum == null || isNaN(eqpNum) || eqpNum == undefined) {
                        eqpNum = 0;
                    }
                    if (duration == null || isNaN(duration) || duration == undefined) {
                        duration = 0;
                    }
                    $("#eqpNum").val(eqpNum);
                    $("#duration").val(duration);
                }
            }
        }
        sysAjax(opt);
    },
    //查询实时数据
    realTimeDatasAjax: function () {
        var req = fun.getQueryParam();
        var opt = {
            method: 'post',
            url: dataUrl.util.queryParkRealTimeDatasByPlNos(),
            async: false,
            data: JSON.stringify(req),
            success: function (res) {
                if (res.code == '8888') {
                    //获取数据成功
                    var data = res.data;
                    var eqpNum = $("#eqpNum").val();
                    var duration = $("#duration").val();
                    var operateEqpNum = $("#operateEqpNum").text();
                    $("#parkIncome").text(fun.moneyFomatter(data.parkIncome));
                    $("#eqpCalculateIncome").text(fun.moneyFomatter(eqpNum * 300));
                    // $("#averageIncome").text(fun.moneyFomatter(eqpNum*300/operateEqpNum));
                    // $("#averageDuration").text(fun.minuteFomatter(duration/operateEqpNum));
                    // if(operateEqpNum<1){
                    // 	$("#averageIncome").text(fun.moneyFomatter(0));
                    // 	$("#averageDuration").text(fun.minuteFomatter(0));
                    // }
                }
            }
        }
        sysAjax(opt);
    },
    //统计最近24小时每小时收入
    recentIncomeAjax: function () {
        var req = fun.getQueryParam();
        var beginTime = new Date(new Date(new Date().toLocaleDateString()).getTime());
        var endTime = new Date();
        req.beginTime = beginTime;
        req.endTime = endTime;
        var opt = {
            method: 'post',
            url: dataUrl.util.queryRecentIncome(),
            data: JSON.stringify(req),
            success: function (res) {
                if (res.code == '8888') {
                    //获取数据成功
                    var data = res.data;
                    var resultData = {time: [], fee: [], eqpFee: []};

                    if (data != null) {
                        $.each(data, function (index, item) {
                            resultData.time.push((item.staticTimeStr).substring(11, (item.staticTimeStr).length) + ':00');
                            resultData.fee.push(fun.moneyFomatter(item.orderActFee));
                            resultData.eqpFee.push(fun.moneyFomatter(item.eqpFee));
                        });
                    }
                    fun.createEcharts(resultData);
                }
            }
        }
        sysAjax(opt);
    },


    //查询地磁汇总测算收入
    queryEqpCalculateSummary: function () {
        var operateEqpNum = $("#operateEqpNum").text();


        var req = fun.getQueryParam();
        var beginTime = new Date(new Date(new Date().toLocaleDateString()).getTime());
        var endTime = new Date();
        req.eqpOutTimeStart = beginTime;
        req.eqpOutTimeEnd = endTime;
        var opt = {
            method: 'post',
            url: dataUrl.util.queryEqpCalculateSummary(),
            data: JSON.stringify(req),
            success: function (res) {
                if (res.code == '8888') {
                    //获取数据成功
                    console.log(res);
                    var fee;
                    var parkDuration;
                    if (res.data == null) {
                        fee = 0;
                        parkDuration = 0;
                    }else {
                        fee = res.data.parkFee;
                        fee = (fee == undefined || fee == null) ? 0 : fee;
                        parkDuration = res.data.parkDuration;
                        parkDuration = (parkDuration == undefined || parkDuration == null) ? 0 : parkDuration;
                    }

                    $("#eqpCalculateIncome").text(fun.moneyFomatter(fee));
                    if (operateEqpNum < 1) {
                        $("#averageIncome").text(fun.moneyFomatter(0));
                        $("#averageDuration").text(fun.minuteFomatter(0));
                    } else {
                        $("#averageIncome").text(fun.moneyFomatter(fee / operateEqpNum));
                        $("#averageDuration").text(fun.minuteFomatter(parkDuration / operateEqpNum));
                    }

                }
            }
        }
        sysAjax(opt);
    },


    numberFormatter: function (value) {
        if (value == undefined || value == null || isNaN(value)) {
            return "0";
        } else {
            return value;
        }
    },
    minuteFomatter: function (value) {
        if (value == undefined || value == null || isNaN(value)) {
            return "0";
        } else {
            return (value / 60).toFixed(1);
        }
    },
    moneyFomatter: function (value) {
        if (value == undefined || isNaN(value) || value == null) {
            return "0.00";
        } else {
            return (value / 100).toFixed(2);
        }
    },
    createEcharts: function (data) {
        var geochart = echarts.init(document.getElementById('geoincome_echarts'));
        var option = {
            color: ['#5fe98f', '#1e95cd'],
            tooltip: {
                trigger: 'axis'
            },
            legend: {
                right: '2%',
                top: '0',
                textStyle: {
                    color: '#888990',
                },
                itemWidth: 18,
                itemHeight: 10,
            },
            grid: {
                top: '13%',
                left: '1%',
                right: '2%',
                bottom: '2%',
                containLabel: true
            },

            xAxis: {
                type: 'category',
                boundaryGap: true,
                // data:xAxisData,
                data: data.time,//['00:00','02:00','04:00','06:00','08:00','10:00','12:00','14:00','16:00'],

                axisLabel: {
                    // interval:2,
                    show: true,
                    textStyle: {
                        color: 'rgba(0,0,0,0.5)',
                        fontSize: '12px',
                        fontFamily: '微软雅黑'
                    }
                },
                // splitNumber:10,
                // minInterval:2,
                axisTick: {
                    show: false,
                },
                splitLine: {
                    lineStyle: {
                        color: 'rgba(0,0,0,0.1)',
                    }
                },

                axisLine: {
                    show: true,
                    lineStyle: {
                        color: 'rgba(0,0,0,0.1)',
                        // width: 1,//这里是为了突出显示加上的
                    }
                },

            },
            yAxis: {
                type: 'value',
                axisLabel: {
                    show: true,
                    textStyle: {
                        color: 'rgba(0,0,0,0.5)',
                        fontSize: '12px',
                        fontFamily: '微软雅黑'
                    }
                },
                axisLabel: { //调整y轴的lable
                    textStyle: {
                        color: 'rgba(0,0,0,0.5)',
                    }
                },
                axisTick: {
                    show: false
                },

                axisLine: {
                    lineStyle: {
                        color: 'rgba(0,0,0,0.1)',
                        width: 1,//这里是为了突出显示加上的
                    }
                },
                splitLine: {
                    lineStyle: {
                        // type:'dashed',
                        color: 'rgba(0,0,0,0.1)',
                    }
                }
            },
            series: [
                {
                    name: '泊位测算收益',
                    type: 'line',
                    symbol: 'circle',
                    symbolSize: 10,
                    // smooth:true,
                    // data:inseriesData,
                    data: data.eqpFee,//[4,1,6,2,9,4,1,6,2,9,8,1],
                    itemStyle: {
                        normal: {
                            lineStyle: {
                                color: '#f0f0f2',
                            }
                        }
                    },
                    areaStyle: {
                        normal: {
                            color: '#5fe98f',
                            opacity: .2
                        }
                    },
                    lineStyle: {
                        normal: {
                            color: '#5fe98f',
                            width: 2,
                        }
                    }
                },
                {
                    name: '订单收益',
                    type: 'line',
                    symbol: 'circle',
                    symbolSize: 10,
                    // smooth:true,
                    // data:outseriesData,
                    data: data.fee,//[43,13,26,24,93,4,1,6,2,9,8,1],
                    itemStyle: {
                        normal: {
                            lineStyle: {
                                color: '#f0f0f2',
                            }
                        }
                    },
                    areaStyle: {
                        normal: {
                            color: '#1e95cd',
                            opacity: .2
                        }
                    },
                    lineStyle: {
                        normal: {
                            color: '#1e95cd',
                            width: 2,
                        }
                    }
                },

            ]
        };
        geochart.setOption(option, true);
        // 自适应
        window.onresize = geochart.resize;
    }
};
fun.init();
setInterval(function () {
    fun.init();
}, commonObj.refreshDataTime);