| | |
| | | { value: 0, label: "总产量" }, |
| | | { value: 0, label: "生产工单数" }, |
| | | { value: 0, label: "延期交付" }, |
| | | { value: 0, label: "物料不足" }, |
| | | { value: 0, label: "物料不足/待排程" }, |
| | | { value: 0, label: "计划达成率" }, |
| | | ], |
| | | // 机器开机率 |
| | |
| | | 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 === "计划达成率") { |
| | | let value = |
| | | typeof data?.PlanOrderFinishRate === "string" |
| | |
| | | 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: this.setNumbers( |
| | | data?.OutPlanProductionAmount ?? 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) { |
| | | this.workOrderFinishRate = data?.WorkOrderFinishRate.toString() ?? "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; |
| | | 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 = []; |
| | | data.PersonnelProductivity.map((item) => { |
| | | this.perSonnelChartData.datax.push(item.Name); |
| | | this.perSonnelChartData.datay.push(parseFloat(item.Value)); |
| | | }); |
| | | 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 = []; |
| | | chartData2 = data.WorkerTypeStats.map((item) => { |
| | | return { |
| | | name: item.Name, |
| | | value: parseFloat(item.Value), |
| | | }; |
| | | }); |
| | | this.$refs.leftBlock6.getChartRight("chart2", 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)); |
| | | }); |
| | | 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 = []; |
| | | data.MaterialRequirement.map((item) => { |
| | | this.materialChartData.datax.push(item.Name); |
| | | this.materialChartData.datay.push(parseFloat(item.Value)); |
| | | }); |
| | | if (data.MaterialRequirement && data.MaterialRequirement.length > 0) { |
| | | data.MaterialRequirement.map((item) => { |
| | | this.materialChartData.datax.push(item.Name); |
| | | this.materialChartData.datay.push(parseFloat(item.Value)); |
| | | }); |
| | | } |
| | | }, |
| | | // 车间正品率 |
| | | setRightBlock3(data) { |
| | |
| | | this.barChartData.datax = []; |
| | | this.barChartData.datay = []; |
| | | this.barChartData.datay2 = []; |
| | | data.WorkshopStats.map((item) => { |
| | | this.barChartData.datax.push(item.Name); |
| | | this.barChartData.datay.push(parseFloat(item.Qualified)); |
| | | this.barChartData.datay2.push(parseFloat(item.Defective)); |
| | | }); |
| | | 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(1); |
| | | let count = (val / 1000).toFixed(2); |
| | | return count.toString() + "千"; |
| | | } else if (val >= 10000 && val < 100000) { |
| | | let count1 = (val / 10000).toFixed(1); |
| | | let count1 = (val / 10000).toFixed(2); |
| | | return count1.toString() + "万"; |
| | | } else if (val >= 100000 && val < 1000000) { |
| | | let count1 = (val / 100000).toFixed(0); |
| | |
| | | let count1 = (val / 10000000).toFixed(0); |
| | | return count1.toString() + "千万"; |
| | | } else if (val >= 100000000 && val < 1000000000) { |
| | | let count1 = (val / 100000000).toFixed(1); |
| | | return count1.toString() + "亿"; |
| | | let count1 = (val / 100000000).toFixed(2); |
| | | return count1 + "亿"; |
| | | } else if (val >= 1000000000 && val < 10000000000) { |
| | | let count1 = (val / 1000000000).toFixed(0); |
| | | return count1.toString() + "十亿"; |
| | |
| | | let count1 = (val / 1000000000000).toFixed(0); |
| | | return count1.toString() + "万亿"; |
| | | } else { |
| | | return val; |
| | | return val.toString(); |
| | | } |
| | | }, |
| | | }, |