fix: export pdf in rekapitulasi gangguan all

This commit is contained in:
kur0nek-o 2024-03-21 17:37:55 +07:00
parent 9e07f382cb
commit a1ee4e7f9a

View File

@ -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