From da4d9e70d2c37f59a365b0fb88ad70e8c1ba79b4 Mon Sep 17 00:00:00 2001 From: yangfeng <wanwan926_4@163.com> Date: 星期一, 11 十二月 2023 10:25:01 +0800 Subject: [PATCH] 机器开机率优化 --- src/views/cockpitPage/index.vue | 261 +++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 197 insertions(+), 64 deletions(-) diff --git a/src/views/cockpitPage/index.vue b/src/views/cockpitPage/index.vue index 286e86a..ab3dd35 100644 --- a/src/views/cockpitPage/index.vue +++ b/src/views/cockpitPage/index.vue @@ -18,19 +18,25 @@ ></OrderCompleteRadio> </template> <template #leftBlock5> - <WorkOrderProgress :table-data="workOrderData"></WorkOrderProgress> + <WorkOrderProgress + :work-order-finish-rate="workOrderFinishRate" + :table-data="workOrderData" + ></WorkOrderProgress> </template> <template #leftBlock6> - <PerSonnelProductivity></PerSonnelProductivity> + <PerSonnelProductivity + ref="leftBlock6" + :chartData="perSonnelChartData" + ></PerSonnelProductivity> </template> <template #rightBlock1> <DeviceChart ref="rightBlock1" :chartData="deviceChartData"></DeviceChart> </template> <template #rightBlock2> - <MaterialChart></MaterialChart> + <MaterialChart :chartData="materialChartData"></MaterialChart> </template> <template #rightBlock3> - <BarChart></BarChart> + <BarChart :chartData="barChartData"></BarChart> </template> </BackgroundBoardLayout> </template> @@ -69,7 +75,7 @@ { value: 0, label: "鎬讳骇閲�" }, { value: 0, label: "鐢熶骇宸ュ崟鏁�" }, { value: 0, label: "寤舵湡浜や粯" }, - { value: 0, label: "鐗╂枡涓嶈冻" }, + { value: 0, label: "鐗╂枡涓嶈冻/寰呮帓绋�" }, { value: 0, label: "璁″垝杈炬垚鐜�" }, ], // 鏈哄櫒寮�鏈虹巼 @@ -88,38 +94,65 @@ }, // 宸ュ崟杩涘害缁熻 workOrderData: [], + workOrderFinishRate: "", + // 浜哄憳鐢熶骇鏁堢巼 + perSonnelChartData: { + datax: [], + datay: [], + }, // 璁惧璐熻嵎瀵规瘮 deviceChartData: { datax: [], datay: [], }, - dataindex: 0, + // 鐗╂枡闇�姹傜粺璁� + materialChartData: { + datax: [], + datay: [], + }, + // 杞﹂棿姝e搧鐜� + barChartData: { + total: 0, + rate: "0", + datax: [], + datay: [], + datay2: [], + }, }; }, mounted() { this.getDashboard(); - setInterval(() => { - this.getDashboard(); - }, 30000); }, watch: {}, methods: { async getDashboard() { - await getDashboard().then((res) => { - console.log(res); - // 宸︿笂鏁板�肩粺璁℃暟鎹� - this.setLeftBlock1(res.data); - // 鏈哄櫒寮�鏈虹巼鏁版嵁 - this.setleftBlock2(res.data); - // 宸︿腑鏁版嵁缁熻鍊� - this.setLeftBlock3(res.data); - // 璁㈠崟瀹屾垚姣旂巼 - this.setLeftBlock4(res.data); - // 宸ュ崟杩涘害缁熻 - this.setLeftBlock5(res.data); - // 璁惧璐熻嵎瀵规瘮 - this.setRightBlock1(res.data); - }); + await getDashboard() + .then((res) => { + console.log(res); + // 宸︿笂鏁板�肩粺璁℃暟鎹� + this.setLeftBlock1(res.data); + // 鏈哄櫒寮�鏈虹巼鏁版嵁 + this.setleftBlock2(res.data); + // 宸︿腑鏁版嵁缁熻鍊� + this.setLeftBlock3(res.data); + // 璁㈠崟瀹屾垚姣旂巼 + this.setLeftBlock4(res.data); + // 宸ュ崟杩涘害缁熻 + this.setLeftBlock5(res.data); + // 浜哄憳鐢熸晥鏁堢巼姣� 浜哄憳鎶�鑳� + this.setLeftBlock6(res.data); + // 璁惧璐熻嵎瀵规瘮 + this.setRightBlock1(res.data); + // 鐗╂枡闇�姹傜粺璁� + this.setRightBlock2(res.data); + // 杞﹂棿姝e搧鐜� + this.setRightBlock3(res.data); + }) + .finally(() => { + setTimeout(() => { + this.getDashboard(); + }, 300000); + }); }, // 澶勭悊宸︿笂鏁版嵁 setLeftBlock1(data) { @@ -132,10 +165,11 @@ item.value = data?.WorkOrderAmount ?? 0; } else if (item.label === "寤舵湡浜や粯") { item.value = data?.DelayWorkOrderAmount ?? 0; - } else if (item.label === "鐗╂枡涓嶈冻") { + } else if (item.label === "鐗╂枡涓嶈冻/寰呮帓绋�") { item.value = data?.MaterialMissWorkOrderAmount ?? 0; + item.value1 = data?.WaitSchedulingWorkOrderAmount ?? 0; } else if (item.label === "璁″垝杈炬垚鐜�") { - item.value = + let value = typeof data?.PlanOrderFinishRate === "string" ? parseFloat( data?.PlanOrderFinishRate.length > 0 @@ -143,6 +177,7 @@ : "0" ) : data?.PlanOrderFinishRate ?? 0; + item.value = value.toString() + "%"; } }); }, @@ -170,61 +205,159 @@ }, // 宸︿腑鏁版嵁缁熻鍊� setLeftBlock3(data) { + console.log(this.setNumbers(data?.OutPlanProductionAmount ?? 0)); this.totalObject = { - InternalDeviceRunningAmount: data?.InternalDeviceRunningAmount ?? 0, + InternalDeviceRunningAmount: ( + data?.InternalDeviceRunningAmount ?? 0 + ).toString(), ExternalDeviceRunningAmount: data?.ExternalDeviceRunningAmount ?? 0, - OutPlanProductionAmount: data?.OutPlanProductionAmount ?? 0, - PlanProductionAmount: data?.PlanProductionAmount ?? 0, - RealExternalProductionAmount: data?.RealExternalProductionAmount ?? 0, - RealProductionAmount: data?.RealProductionAmount ?? 0, + OutPlanProductionAmount: this.setNumbers( + data?.OutPlanProductionAmount ?? 0 + ), + PlanProductionAmount: this.setNumbers(data?.PlanProductionAmount ?? 0), + RealExternalProductionAmount: this.setNumbers( + data?.RealExternalProductionAmount ?? 0 + ), + RealProductionAmount: this.setNumbers(data?.RealProductionAmount ?? 0), }; }, // 璁㈠崟瀹屾垚姣旂巼 setLeftBlock4(data) { this.orderCompleteObject.startIndex = 0; this.orderCompleteObject.orderCompleteList = []; - let list = data.OrderFinishRate.map((item) => { - return { - title: item.Name, - radio: parseFloat(item.Value), - }; - }); - this.orderCompleteObject.orderCompleteList = list; + if (data.OrderFinishRate && data.OrderFinishRate.length > 0) { + let list = data?.OrderFinishRate.map((item) => { + return { + title: item.Name, + radio: parseFloat(item.Value), + }; + }); + this.orderCompleteObject.orderCompleteList = list; + } }, // 宸ュ崟杩涘害缁熻 setLeftBlock5(data) { - let list = data.WorkOrderStats.map((item) => { - let completeProgerss = []; - for (let i = 0; i < item.ProcedureNum; i++) { - let status = 0; - if (i < item.FinishProcedureNum) { - status = 1; - } else if ( - i >= item.FinishProcedureNum && - i < item.FinishProcedureNum + item.ProcessingProcedureNum - ) { - status = 2; - } else { - status = 0; + this.workOrderFinishRate = data?.WorkOrderFinishRate.toString() ?? "0"; + if (data.WorkOrderStats && data.WorkOrderStats.length > 0) { + let list = data.WorkOrderStats.map((item) => { + let completeProgerss = []; + for (let i = 0; i < item.ProcedureNum; i++) { + let status = 0; + if (i < item.FinishProcedureNum) { + status = 1; + } else if ( + i >= item.FinishProcedureNum && + i < item.FinishProcedureNum + item.ProcessingProcedureNum + ) { + status = 2; + } else { + status = 0; + } + completeProgerss.push({ status: status }); } - completeProgerss.push({ status: status }); - } - return { - ...item, - completeProgerss: completeProgerss, - }; - }); - this.workOrderData = list; + return { + ...item, + completeProgerss: completeProgerss, + }; + }); + this.workOrderData = list; + } + }, + // 浜哄憳鐢熸晥鏁堢巼姣� 浜哄憳鎶�鑳� + setLeftBlock6(data) { + this.perSonnelChartData.datax = []; + this.perSonnelChartData.datay = []; + if (data.PersonnelProductivity && data.PersonnelProductivity.length > 0) { + data.PersonnelProductivity.map((item) => { + this.perSonnelChartData.datax.push(item.Name); + this.perSonnelChartData.datay.push(parseFloat(item.Value)); + }); + } + // 浜哄憳鎶�鑳介ゼ鍥� + let chartData2 = []; + if (data.WorkerTypeStats && data.WorkerTypeStats.length > 0) { + chartData2 = data.WorkerTypeStats.map((item) => { + return { + name: item.Name, + value: parseFloat(item.Value), + }; + }); + this.$refs.leftBlock6.getChartRight("chart2", chartData2); + } }, // 璁惧璐熻嵎瀵规瘮 setRightBlock1(data) { this.deviceChartData.datax = []; this.deviceChartData.datay = []; - data.DeviceLoad.map((item) => { - this.deviceChartData.datax.push(item.Name); - this.deviceChartData.datay.push(parseFloat(item.Value)); - }); - // this.$refs.rightBlock1.pieChart("chart", this.deviceChartData); + if (data.DeviceLoad && data.DeviceLoad.length > 0) { + data.DeviceLoad.map((item) => { + this.deviceChartData.datax.push(item.Name); + this.deviceChartData.datay.push(parseFloat(item.Value)); + }); + } + }, + // 鐗╂枡闇�姹傜粺璁� + setRightBlock2(data) { + this.materialChartData.datax = []; + this.materialChartData.datay = []; + if (data.MaterialRequirement && data.MaterialRequirement.length > 0) { + data.MaterialRequirement.map((item) => { + this.materialChartData.datax.push(item.Name); + this.materialChartData.datay.push(parseFloat(item.Value)); + }); + } + }, + // 杞﹂棿姝e搧鐜� + setRightBlock3(data) { + this.barChartData.total = data.TodayFinishAmount; + this.barChartData.rate = data.TodayQualifiedRate; + this.barChartData.datax = []; + this.barChartData.datay = []; + this.barChartData.datay2 = []; + if (data.WorkshopStats && data.WorkshopStats.length > 0) { + data.WorkshopStats.map((item) => { + this.barChartData.datax.push(item.Name); + this.barChartData.datay.push(parseFloat(item.Qualified)); + this.barChartData.datay2.push(parseFloat(item.Defective)); + }); + } + }, + + // 璁$畻鍔犲伐鏁� 鐢熶骇鏁� + setNumbers(val) { + if (val > 1000 && val < 10000) { + let count = (val / 1000).toFixed(2); + return count.toString() + "鍗�"; + } else if (val >= 10000 && val < 100000) { + let count1 = (val / 10000).toFixed(2); + return count1.toString() + "涓�"; + } else if (val >= 100000 && val < 1000000) { + let count1 = (val / 100000).toFixed(0); + return count1.toString() + "鍗佷竾"; + } else if (val >= 1000000 && val < 10000000) { + let count1 = (val / 1000000).toFixed(0); + return count1.toString() + "鐧句竾"; + } else if (val >= 10000000 && val < 100000000) { + let count1 = (val / 10000000).toFixed(0); + return count1.toString() + "鍗冧竾"; + } else if (val >= 100000000 && val < 1000000000) { + let count1 = (val / 100000000).toFixed(2); + return count1 + "浜�"; + } else if (val >= 1000000000 && val < 10000000000) { + let count1 = (val / 1000000000).toFixed(0); + return count1.toString() + "鍗佷嚎"; + } else if (val >= 10000000000 && val < 100000000000) { + let count1 = (val / 10000000000).toFixed(0); + return count1.toString() + "鐧句嚎"; + } else if (val >= 100000000000 && val < 1000000000000) { + let count1 = (val / 100000000000).toFixed(0); + return count1.toString() + "鍗冧嚎"; + } else if (val >= 1000000000000) { + let count1 = (val / 1000000000000).toFixed(0); + return count1.toString() + "涓囦嚎"; + } else { + return val.toString(); + } }, }, }; -- Gitblit v1.8.0