var passNumber = [];
var failNumber = [];
var failrate = [];
var stackeverynum = [];
var failnum = 0;
var num = 0;
var hispass = [];
var hisfail = [];
var hisstack = [];
var hisrate = [];
var goodpass = [];
var goodid = [];
var goodfailrate = [];
var badpass = [];
var badid = [];
var badfailrate = [];
var n = 0;
var sectorID = [];
var namedata = [];
var lazhang = {};


var scheduleId = utils_get_param("scheduleId");
var flowId = utils_get_param("flowId");

if(flowId == null || scheduleId == null){
    alert("出错啦!请检查参数完整性");
}

function page_document_load() {
    get_data("fcWorkScheduleLoad/list?scheduleId=" + scheduleId, first_success)
}

function first_success(obj, sta) {
    let output = first_parse(this, obj);
    let i, j, k, z;
    failnum = 0;
    let x = 0;
    let worksum = [];
    sectorID[0] = output.list[0].sectorId;
    z = 0;
    if(output.list == undefined || output.list.length == 0){
        alert("没有数据,请稍候刷新页面");
    }

    for (i = 1; i < output.list.length; i++) {
        var thisUid = output.list[i].sectorId;
        x = 0;
        for (j = 0; j < sectorID.length; j++) {
            if (sectorID[j] === thisUid) {
                x = 1;
                break;
            }
        }
        if (x === 0) {
            sectorID.push(thisUid);
        }

    }

    j = 0;
    for (k = 0; k < sectorID.length; k++) {
        var uid = sectorID[k];
        z = 0;
        passNumber[k] = 0;
        failNumber[k] = 0;
        stackeverynum[k] = 0;
        for (i = 0; i < output.list.length; i++) {
            if (uid === output.list[i].sectorId) {
                passNumber[k] = output.list[i].passNum + passNumber[j];
                failNumber[k] = output.list[i].failNum + failNumber[j];
                stackeverynum[k] = output.list[i].due + stackeverynum[j];
                z++;
            }
        }
        if (failNumber[k] + passNumber[k] == 0) {
            failrate[k] = 0;
        }
        else {
            failrate[k] = failNumber[k] / (failNumber[k] + passNumber[k]) * 100;

        }
        /*stackeverynum[k]=stackeverynum[k]/z;*/

        ///

    }

    for (i = 1; i <= 3; i++) {
        load_flows_history_data(i);
    }
    showChart();

    lazhang.timer = setInterval(request_data_realtime, 1000);

}

function request_data_realtime() {
    get_data("fcWorkScheduleLoad/list?scheduleId=" + scheduleId, realtime_success);
    //load_flows_history_realtime_data();
    load_table_red_rank();
    load_table_black_rank();
}

function load_flows_history_data(nnm) {
    get_data("fcBiFlowDaily/list?type=" + nnm + "&flowId=" + flowId, history_success);
}

function load_flows_history_realtime_data() {
    get_data("fcBiFlowDaily/list?type=1&flowId=" + flowId, history_success);
}

function load_table_red_rank() {
    get_data("fcBiWorkerDaily/get?type=0&limit=3", on_red_rank_success);
}

function load_table_black_rank() {
    get_data("fcBiWorkerDaily/get?type=4&limit=3", on_black_rank_success);

}

function get_stop_scheudle(){
    get_data("fcWorkSchedule/stopSchedule?scheduleId=" + scheduleId, stopSuccess);
}

function stopSuccess(obj, sta){
    alert("下班操作成功!");
}

function history_success(obj, sta) {
    var history = first_parse(this, obj);
    var i, j, t;
    console.log(" history : ");
    console.log(history);
    if(this.url.indexOf("type=1") >= 0){
        t = 1;
    }else if(this.url.indexOf("type=2") >= 0){
        t = 2;
    }else if(this.url.indexOf("type=3") >= 0) {
        t = 3;
    }else{
        t = 0;
    }

    if(t == 2 || t == 3) {
        hispass[t] = 0;
        hisfail[t] = 0;
        hisstack[t] = 0;
        hisrate[t] = 0;
        for (i = 0; i < history.length; i++) {
            hispass[t] = history[i].passNum + hispass[t];
            hisfail[t] = history[i].failNum + hisfail[t];
            hisstack[t] = history[i].avgDue + hisstack[t];
        }
        if (history.length != 1) {
            if (hispass[t] + hisfail[t] == 0) {
                hisrate[t] = 0;
            } else {
                hisrate[t] = Math.floor(hisfail[t] / (hispass[t] + hisfail[t]) * 10000) / 100;
            }
        }
    }else if(t == 1){
        hispass[1] = history[0].passNum;
        hisfail[1] = history[0].failNum;
        hisstack[1] = history[0].avgDue;
        if (hispass[1] + hisfail[1] == 0) {
            hisrate[1] = 0;
        } else {
            hisrate[1] = Math.floor(hisfail[1] / (hispass[1] + hisfail[1]) * 10000) / 100;
        }
    }

    hispass[0] = history[history.length - 1].passNum;
    hisfail[0] = history[history.length - 1].failNum;
    hisstack[0] = history[history.length - 1].avgDue;
    if (hispass[0] + hisfail[0] == 0) {
        hisrate[0] = 0;
    } else {
        hisrate[0] = Math.floor(hisfail[0] / (hispass[0] + hisfail[0]) * 10000) / 100;
    }

}

function on_red_rank_success(obj, sta) {
    var redchart = first_parse(this, obj);
    var i, j;
    i = j = 0;
    console.log(" redchart : ");
    console.log(redchart);
    for (i = 0; i < redchart.list.length; i++) {
        goodid[i] = getUserName(redchart.list[i].workerId);
        goodpass[i] = redchart.list[i].passNum;
        goodfailrate[i] = redchart.list[i].failRate / 100;
    }


}

function on_black_rank_success(obj, sta) {
    var blackchart = first_parse(this, obj);
    var i, j;
    i = j = 0;
    console.log(" black chart : ");
    console.log(blackchart);

    for (i = 0; i < blackchart.list.length; i++) {
        badid[i] = getUserName(blackchart.list[i].workerId);
        badpass[i] = blackchart.list[i].passNum;
        badfailrate[i] = blackchart.list[i].failRate / 100;
    }


}

function add_success(obj, sta) {
    var history1 = first_parse(this, obj);
    var i, j;
    console.log(" history1 : ");
    console.log(history1);
    hispass[t] = 0;
    hisfail[t] = 0;
    hisstack[t] = 0;
    hisrate[t] = 0;
    var lengthnum = history1.length - 1;
    for (i = lengthnum; i < history1.length; i++) {
        hispass[t] = history1[i].passNum + hispass[t];
        hisfail[t] = history1[i].failNum + hisfail[t];
        hisstack[t] = history1[i].avgDue + hisstack[t];
        hisrate[t] = history1[i].failRate;
        hisrate[t] = hisrate[t] / 100;
    }

    if (hispass[t] + hisfail[t] == 0) {
        hisrate[t] = 0;
    }
    t++;

}

function realtime_success(obj, sta) {
    var output = first_parse(this, obj);
    //在这里排序 spo\
    console.log(" output : ");
    console.log(output);

    var i, j, k, z;
    failnum = 0;
    var x = 0;
    var worksum = [];
    sectorID[0] = output.list[0].sectorId;
    passNumber[0] = 0;
    failNumber[0] = 0;
    stackeverynum[0] = 0;
    z = 0;
    for (i = 1; i < output.list.length; i++) {
        var thisUid = output.list[i].sectorId;
        x = 0;
        for (j = 0; j < sectorID.length; j++) {
            if (sectorID[j] === thisUid) {
                x = 1;
                break;
            }
        }
        if (x === 0) {
            sectorID.push(thisUid);
        }

    }
    j = 0;
    for (k = 0; k < sectorID.length; k++) {
        var uid = sectorID[k];
        z = 0;
        passNumber[k] = 0;
        failNumber[k] = 0;
        stackeverynum[k] = 0;
        for (i = 0; i < output.list.length; i++) {
            if (uid === output.list[i].sectorId) {
                passNumber[k] = output.list[i].passNum + passNumber[k];
                failNumber[k] = output.list[i].failNum + failNumber[k];
                stackeverynum[k] = output.list[i].due + stackeverynum[k];
                z++;
            }
        }
        if (failNumber[k] + passNumber[k] == 0) {
            failrate[k] = 0;
        } else {
            failrate[k] = failNumber[k] / (failNumber[k] + passNumber[k]) * 100;
        }
        /*stackeverynum[k]=stackeverynum[k]/z;*/
        ///

    }
    updateChart();

    var hhp = 0, hhf = 0, hhs = 0;
    output.list.forEach(function (val,fid,arr){
        hhp += val.passNum;
        hhf += val.failNum;
        hhs += val.due;
    })

    hispass[0] = hhp;
    hisfail[0] = hhf;

    if(output.list.length > 0) {
        hisstack[0] = hhs / output.list.length;
    }else{
        hisstack[0] = 0;
    }

    if (hispass[0] + hisfail[0] == 0) {
        hisrate[0] = 0;
    } else {
        hisrate[0] = Math.floor(hisfail[0] / (hispass[0] + hisfail[0]) * 10000) / 100;
    }

}