From a1ee4e7f9af3218e65c33ff25be6140416eda402 Mon Sep 17 00:00:00 2001 From: kur0nek-o Date: Thu, 21 Mar 2024 17:37:55 +0700 Subject: [PATCH] fix: export pdf in rekapitulasi gangguan all --- src/report/Gangguan/Rekap/RGangguan_ALL.ts | 139 ++++++++++++++++----- 1 file changed, 105 insertions(+), 34 deletions(-) diff --git a/src/report/Gangguan/Rekap/RGangguan_ALL.ts b/src/report/Gangguan/Rekap/RGangguan_ALL.ts index 76b0f62..922f73c 100644 --- a/src/report/Gangguan/Rekap/RGangguan_ALL.ts +++ b/src/report/Gangguan/Rekap/RGangguan_ALL.ts @@ -48,9 +48,7 @@ const groupingData = (data: any) => { groupedData[regional][uid].summary = { total: 0, total_selesai: 0, - persen_selesai: [], total_inproses: 0, - persen_inproses: [], avg_durasi_dispatch: [], max_durasi_dispatch: 0, min_durasi_dispatch: item.min_durasi_dispatch, @@ -71,9 +69,7 @@ const groupingData = (data: any) => { groupedData[regional][uid].summary.total += item.total groupedData[regional][uid].summary.total_selesai += item.total_selesai - groupedData[regional][uid].summary.persen_selesai.push(item.persen_selesai) groupedData[regional][uid].summary.total_inproses += item.total_inproses - groupedData[regional][uid].summary.persen_inproses.push(item.persen_inproses) groupedData[regional][uid].summary.avg_durasi_dispatch.push(item.avg_durasi_dispatch) groupedData[regional][uid].summary.max_durasi_dispatch = groupedData[regional][uid].summary.max_durasi_dispatch < item.max_durasi_dispatch @@ -126,62 +122,137 @@ const formatData = (rawData: any) => { for (const regional in data) { let no = 1 + const total: any = { + total: 0, + total_selesai: 0, + persen_selesai: 0, + total_inproses: 0, + persen_inproses: 0, + avg_durasi_dispatch: [], + max_durasi_dispatch: [], + min_durasi_dispatch: [], + total_diatas_sla_dispatch: 0, + total_dibawah_sla_dispatch: 0, + avg_durasi_response: [], + max_durasi_response: [], + min_durasi_response: [], + total_diatas_sla_response: 0, + total_dibawah_sla_response: 0, + avg_durasi_recovery: [], + max_durasi_recovery: [], + min_durasi_recovery: [], + total_diatas_sla_recovery: 0, + total_dibawah_sla_recovery: 0 + } formattedData.push([{ content: regional, colSpan: 22, styles: { fontStyle: 'bold' } }]) for (const uid in data[regional]) { const summary = data[regional][uid].summary + const avgDurasiDispatch = summary.avg_durasi_dispatch.length + ? summary.avg_durasi_dispatch.reduce((a: any, b: any) => a + b) / + summary.avg_durasi_dispatch.length + : 0 + const avgDurasiResponse = summary.avg_durasi_response.length + ? summary.avg_durasi_response.reduce((a: any, b: any) => a + b) / + summary.avg_durasi_response.length + : 0 + const avgDurasiRecovery = summary.avg_durasi_recovery.length + ? summary.avg_durasi_recovery.reduce((a: any, b: any) => a + b) / + summary.avg_durasi_recovery.length + : 0 formattedData.push([ { content: no++, styles: { halign: 'right' } }, uid, formatNumber(summary.total), formatNumber(summary.total_selesai), - summary.persen_selesai.length - ? formatPercentage( - summary.persen_selesai.reduce((a: any, b: any) => a + b) / - summary.persen_selesai.length - ) - : '0%', + summary.total_selesai != summary.total + ? formatPercentage((summary.total_selesai / summary.total) * 100) + : '100%', summary.total_inproses, - summary.persen_inproses.length - ? formatPercentage( - summary.persen_inproses.reduce((a: any, b: any) => a + b) / - summary.persen_inproses.length - ) - : '0%', - formatNumber( - summary.avg_durasi_dispatch.length - ? summary.avg_durasi_dispatch.reduce((a: any, b: any) => a + b) / - summary.avg_durasi_dispatch.length - : 0 - ), + '0%', + formatNumber(avgDurasiDispatch), formatWaktu(summary.max_durasi_dispatch), formatWaktu(summary.min_durasi_dispatch), formatNumber(summary.total_diatas_sla_dispatch), formatNumber(summary.total_dibawah_sla_dispatch), - formatNumber( - summary.avg_durasi_response.length - ? summary.avg_durasi_response.reduce((a: any, b: any) => a + b) / - summary.avg_durasi_response.length - : 0 - ), + formatNumber(avgDurasiResponse), formatWaktu(summary.max_durasi_response), formatWaktu(summary.min_durasi_response), formatNumber(summary.total_diatas_sla_response), formatNumber(summary.total_dibawah_sla_response), - formatNumber( - summary.avg_durasi_recovery.length - ? summary.avg_durasi_recovery.reduce((a: any, b: any) => a + b) / - summary.avg_durasi_recovery.length - : 0 - ), + formatNumber(avgDurasiRecovery), formatWaktu(summary.max_durasi_recovery), formatWaktu(summary.min_durasi_recovery), formatNumber(summary.total_diatas_sla_recovery), formatNumber(summary.total_dibawah_sla_recovery) ]) + + total.total += summary.total + total.total_selesai += summary.total_selesai + total.total_inproses += summary.total_inproses + total.avg_durasi_dispatch.push(avgDurasiDispatch) + + total.max_durasi_dispatch.push(summary.max_durasi_dispatch) + total.min_durasi_dispatch.push(summary.min_durasi_dispatch) + + total.total_diatas_sla_dispatch += summary.total_diatas_sla_dispatch + total.total_dibawah_sla_dispatch += summary.total_dibawah_sla_dispatch + total.avg_durasi_response.push(avgDurasiResponse) + + total.max_durasi_response.push(summary.max_durasi_response) + total.min_durasi_response.push(summary.min_durasi_response) + + total.total_diatas_sla_response += summary.total_diatas_sla_response + total.total_dibawah_sla_response += summary.total_dibawah_sla_response + total.avg_durasi_recovery.push(avgDurasiRecovery) + + total.max_durasi_recovery.push(summary.max_durasi_recovery) + total.min_durasi_recovery.push(summary.min_durasi_recovery) + + total.total_diatas_sla_recovery += summary.total_diatas_sla_recovery + total.total_dibawah_sla_recovery += summary.total_dibawah_sla_recovery } + + formattedData.push([ + { content: 'Total', colSpan: 2, styles: { fontStyle: 'bold' } }, + formatNumber(total.total), + formatNumber(total.total_selesai), + formatPercentage((total.total_selesai / total.total) * 100), + total.total_inproses, + '0%', + formatNumber( + total.avg_durasi_dispatch.length + ? total.avg_durasi_dispatch.reduce((a: any, b: any) => a + b) / + total.avg_durasi_dispatch.length + : 0 + ), + formatWaktu(Math.max(...total.max_durasi_dispatch)), + formatWaktu(Math.min(...total.min_durasi_dispatch)), + formatNumber(total.total_diatas_sla_dispatch), + formatNumber(total.total_dibawah_sla_dispatch), + formatNumber( + total.avg_durasi_response.length + ? total.avg_durasi_response.reduce((a: any, b: any) => a + b) / + total.avg_durasi_response.length + : 0 + ), + formatWaktu(Math.max(...total.max_durasi_response)), + formatWaktu(Math.min(...total.min_durasi_response)), + formatNumber(total.total_diatas_sla_response), + formatNumber(total.total_dibawah_sla_response), + formatNumber( + total.avg_durasi_recovery.length + ? total.avg_durasi_recovery.reduce((a: any, b: any) => a + b) / + total.avg_durasi_recovery.length + : 0 + ), + formatWaktu(Math.max(...total.max_durasi_recovery)), + formatWaktu(Math.min(...total.min_durasi_recovery)), + formatNumber(total.total_diatas_sla_recovery), + formatNumber(total.total_dibawah_sla_recovery) + ]) } return formattedData