Fall:" + data.ruleList["faultall"] + " (" + GetPercent(data.ruleList["faultall"], data.ruleList["ztall"]) + ")");
for (var key in data.ok) {
DATA.labels.push(key);
DATA.datasets[0].data.push(data.ok[key]);
DATA.datasets[1].data.push(data.bad[key]);
}
GetstackedBarChart(DATA);
}, error: function (xhr, textStatus, errorThrown) {
$.toastr.error('网络异常,请稍后再试。', {
time: 3000,
position: 'top-center'
});
}
});
}
//生成条形图
function GetstackedBarChart(data) {
var ctx = $('#stackedBarChart').get(0).getContext('2d');
if (mixedChart != null) {
mixedChart.destroy();
}
mixedChart = new Chart(ctx, {
type: 'bar',
data: data,
options: {
title: {
display: true,
text: "Custom Chart Title",
fontColor: "#f00",
},
scales: {
xAxes:
{
stacked: true
}
,
yAxes:
{
stacked: true
}
}
}
});
}
//判断是否存在 selected
function Checkselected(selval) {
$(".selected0").hide();
$(".selected1").hide();
$(".selected2").hide();
$(".selected" + selval).show();
return $(".selected" + selval).length > 0;
}
// 产能统计时用户点击的 产能分类
function partitioncriterion(type, that) {
let num = type;
localStorage.setItem("select_oy_num", num);
if (type != 0) {
num = num- 1;
}
if (type == 3) {
type = 2
}
else if (type == 7) {
type = 2
}
else if (type == 30)
{
type = 2
}
partitioncriterionval = type;
$('.partitioncriterion').removeClass("btn-primary");
$('.partitioncriterion_' + num).addClass("btn-primary");
if (that != null) {
// 范围选择器初始化
initTime();
}
$("#start").val(formatDate(new Date(new Date().setDate(new Date().getDate() - num))));
$("#finish").val(formatDate(new Date(new Date().setDate(new Date().getDate()))));
GoData();
}
function bian(tupe) {
}
// 生成错误信息列表
function GetError(data,date) {
let content = `
`;
//加按钮
let content2 = `
`;
// 移除第3个之后的所有元素
$($("#errinfo").children().get(2)).nextAll().remove();
let error = data.err;
let keylist = new Array();
for (let key in error) {
keylist.push(key);
}
//倒叙
keylist.sort(function (a, b) { return Number(b) - Number(a) });
var oklist = 0;
// 错误总数
var errlistall = 0;
for (let key = 0; key < keylist.length; key++) {
oklist = oklist + Number(data.ok[keylist[key]]);
errlistall += Number(data.bad[keylist[key]]);
}
$("#errinfo").append(content.replace("{{tump}}","总计"));
$("#errinfo").append(content.replace("{{tump}}", oklist));
$("#errinfo").append(content2.replace("{{tump}}", errlistall));
$("#errinfo").append(``);
let errallkey = [];
let errallval = [];
let errInfo = [];
for (let key = 0; key < keylist.length; key++) {
// 失败和成功数量 为 0 不显示
if (data.bad[keylist[key]] > 0 || data.ok[keylist[key]] > 0) {
// 添加时间
if (date != 0) {
//月查询在前面加上月份
$("#errinfo").append(content.replace("{{tump}}",keylist[key]));
} else {
$("#errinfo").append(content.replace("{{tump}}", keylist[key]));
}
// 添加成功数量
$("#errinfo").append(content.replace("{{tump}}", data.ok[keylist[key]]));
//// 添加失败数量
$("#errinfo").append(`
`.replace("{{tump}}", data.bad[keylist[key]]));
let errlist = new Array();
for (let errkey in data.err[keylist[key]]) {
errlist.push({ key: errkey, data: data.err[keylist[key]][errkey] })
}
// 取出异常信息后排序 Item2 是数量 Item1 是错误信息 key 是错误码
errlist.sort(function (a, b) { return b.data.Item2 - a.data.Item2 });
// 其他异常
let othereror = 0;
var ErrorAll = [];
for (var i = 0; i < errlist.length; i++) {
// 错误码 数量 大于 50 就显示为 其他错误
if (i <= 50) {
$("#errinfo").append(`` + errlist[i].data.Item2 + `: ` + GetPercent(errlist[i].data.Item2,data.bad[keylist[key]]) + `` + ` :` + errlist[i].key + `- ` + errlist[i].data.Item1 + "
");
}
else {
othereror += errlist[i].data.Item2;
}
ErrorAll.push(errlist[i]);
}
//添加总数失败
for (var j = 0; j < ErrorAll.length; j++) {
let index = errallkey.indexOf(ErrorAll[j].key);
if (index >= 0) {
errallval[index] = Number(errallval[index]) + Number(ErrorAll[j].data.Item2);
} else {
errallkey.push(ErrorAll[j].key);
errallval.push(Number(ErrorAll[j].data.Item2));
errInfo.push(ErrorAll[j].data.Item1);
}
}
// 添加 其他错误
if (othereror > 0) {
$("#errinfo").append(`` + othereror + `: ` + GetPercent(othereror, data.bad[keylist[key]]) + `` + ` :其他 - 其他错误`+ "
");
$("#errinfo").append(`` + "其他 : " + othereror + "
");
}
// 起到换行作用
$("#errinfo").append(``);
}
}
//判断是否大于5 0
let sun = 0;
if (errallval.length >= 50){
sun = 50;
} else {
sun = errallval.length;
}
// 错误码 数量 大于 5 就显示为 其他错误
for (var i = 0; i < sun; i++) {
let index = errallval.indexOf( Math.max.apply(null, errallval));
$("#ShowAll").append(`` + errallval[index] + `: ` + GetPercent(errallval[index], errlistall) + `` + ` :` + errallkey[index] + `- ` + errInfo[index] + "
");
errallval[index] = -1;
}
let allerrsum = 0;
for (var i = 0; i < errallval.length; i++) {
if (errallval[i] >= 0) {
allerrsum += errallval[i];
}
}
//判断是否大于5 没有则不显示
//if (sun >= 5) {
// $("#ShowAll").append(`` + allerrsum + `: ` + GetPercent(allerrsum, errlistall) + `:其他 - 其他错误
`);
//}
}
// 显示错误信息
function ShwoErr(classname) {
if ($('.' + classname).attr("class").indexOf('hide') >= 0) {
$('.' + classname).removeClass('hide');
} else {
$('.' + classname).addClass('hide');
}
}
function Showinfo() {
$("#ShowAll").toggle();
}
//多余的字用省略号代替(......)
function subStrFormat(data, max) {
if (data != null && data != undefined && data.length > max) {
return data.substr(0, max) + ` ...`;
} else {
return data;
}
}
///
/// 求百分比
///
/// 当前数
/// 总数
function GetPercent(num, total) {
num = parseFloat(num);
total = parseFloat(total);
if (isNaN(num) || isNaN(total)) {
return "-";
}
return total <= 0 ? "0%" : (Math.round(num / total * 10000) / 100.0).toFixed(1) + "%";
}