/// 主体下拉框更改事件 $("#title_selected").bind().change(function () { Getselectcontent(); }); //条形图对象 var mixedChart = null; //产能统计时用户点击的 产能分类划分值 var partitioncriterionval = 0; //保存日期 var preservetime = 0; //获取主体内容 function Getselectcontent() { let selval = $("#title_selected").val(); let resdata = { typeid: selval }; if (Checkselected(selval)) { return; } $.ajax({ url: "/app/Dataanalysis/selected", async: true, type: "post", data: resdata, success: function (data) { if (data.indexOf("selected" + selval) >= 0) { $("#selectcontent").append(data); } else { $.toastr.error('查询失败,请稍后再试。', { time: 3000, position: 'top-center' }); } }, error: function (xhr, textStatus, errorThrown) { $.toastr.error('网络异常,请稍后再试。', { time: 3000, position: 'top-center' }); } }); } //请求参数 暂未用到 function getdata(selval) { let data = []; switch (selval) { case 0: data.push(0); break; case 1: break; case 2: break; } } // 历史选择 var TodayProductions_old_select = null; //加载使用产能统计 let select_oy_Capacitydata = localStorage.getItem("select_oy_Capacitydata") || null; if (select_oy_Capacitydata != null) { select_oy_Capacitydata = JSON.parse(select_oy_Capacitydata); } if (TodayProductions_old_select == null && select_oy_Capacitydata != null) { TodayProductions_old_select = select_oy_Capacitydata; partitioncriterionval = TodayProductions_old_select.typeid; } Getselectcontent(); // 获取机型订单 function GetOrderList() { var projectID = $("#projectList").val(); let resdata = { "projectID": projectID }; $.ajax({ url: "/app/Home/GetOrderList", async: true, type: "post", data: resdata, success: function (data) { $("#OrderList").html(data); if (TodayProductions_old_select != null && TodayProductions_old_select.OrderInternalID != null) { $("#OrderList").val(TodayProductions_old_select.OrderInternalID); if (TodayProductions_old_select.Station == null) { TodayProductions_old_select = null; } else { TodayProductions_old_select.OrderInternalID = null; } } }, error: function (xhr, textStatus, errorThrown) { $.toastr.error('网络异常,请稍后再试。', { time: 3000, position: 'top-center' }); } }); } // 工艺站 function GetstationList() { var projectID = $("#projectList").val(); $("#checkbox").html(""); //$("#checkbox").html(``); if (projectID != 0) { $.ajax({ type: "POST", url: "/APP/TestLog/GetStation", cache: false, data: { "productID": projectID }, success: function (data) { if (data.Status == 200) { for (var i = 0; i < data.Data.length; i++) { $("#checkbox").append(` `); } } if (TodayProductions_old_select != null && TodayProductions_old_select.Station != null) { preservetime = localStorage.getItem("select_oy_num"); //读取历史记录改变查询日期颜色 partitioncriterion(preservetime, null); //保存去重历史记录 $("#checkboxtool input").get(0).checked = TodayProductions_old_select.tool[0]; $("#checkbox").val(TodayProductions_old_select.Station.Station); if (TodayProductions_old_select != null) { GoData(); } if (TodayProductions_old_select.OrderInternalID == null) { TodayProductions_old_select = null; } else { TodayProductions_old_select.Station = null; } } } }); } }; //选择机型 function projectListchange() { // 更改订单选择下拉框 GetOrderList(); // 更改站位 GetstationList(); }; // 查询点击事件 function GoData() { let startTime = $("#startTime").val(); let finish = $("#finish").val(); let EndTime = $("#EndTime").val(); let star = $("#start").val(); let tool = new Array(); // 选择的划分类型 let typeid = partitioncriterionval; // 判断是否去重 tool.push($("#checkboxtool input").get(0).checked); // 合并站位 暂未使用 tool.push(true); //判断是否为已天为单位 if (star == finish) { typeid = 0 } // 获取选择中的时间 let datatime = $("#start").bind().val(); //给详细信息添加日期单位 if (typeid == 0) { $('#dateselect').html("时间 日"); } else if (typeid == 1) { $('#dateselect').html("时间 周"); } else if (typeid == 2) { $('#dateselect').html("时间 月"); } // 订单id let OrderInternalID = Number($("#OrderList").val()); // 产品 let projectID = Number($("#projectList").val()); if (projectID <= 0) { $.toastr.error('请选择产品!', { time: 3000, position: 'top-center' }); return; } let Station = Number($("#checkbox").val()); $('#cesid').html("详细数据"); if (Station <= 0) { $.toastr.error('请选择站位!', { time: 3000, position: 'top-center' }); return; } console.log(Station); // 默认日产能查询范围 0 -23 var resdata = { "typeid": typeid, "datatime": datatime, "jsTime": finish, "productID": projectID, "startTime": startTime, "EndTime": EndTime, "OrderInternalID": OrderInternalID, "Station":Station , "tool": tool, "OrderInternalID": OrderInternalID }; //保存历史记录 localStorage.setItem("select_oy_Capacitydata", JSON.stringify(resdata)); $.ajax({ url: "/App/Dataanalysis/SelectData2", type: "post", async: false, data: resdata, success: function (data) { try { data = JSON.parse(data); } catch (e) { $.toastr.error('查询失败~', { time: 3000, position: 'top-center' }); } let DATASTR = JSON.parse(JSON.stringify(data)); //异常信息 if (typeid == 2) { //月查询 GetError(DATASTR, datatime.substr(5, 2)); } else { GetError(DATASTR,0); } let DATA = { labels: [], datasets: [] }; DATA.datasets.push({ label: 'PASS', data: [], backgroundColor: "#9bbefd", borderColor: [ 'rgba(55,99,12,1)', 'rgba(5, 16, 235, 1)', 'rgba(55, 26, 86, 1)', 'rgba(7, 19, 192, 1)', 'rgba(13, 12, 255, 1)', 'rgba(25, 19, 64, 1)' ], }); DATA.datasets.push({ label: 'FALL', data: [], backgroundColor: "red", borderColor: [], }); $('#cesid').append(" Total:" + data.ruleList["ztall"] + ",Pass:" + data.ruleList["tureall"] + " (" + GetPercent(data.ruleList["tureall"], data.ruleList["ztall"]) + ")" + " / " + " 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) + "%"; }