fix: export pdf in rekapitulasi gangguan all
This commit is contained in:
parent
9e07f382cb
commit
a1ee4e7f9a
@ -48,9 +48,7 @@ const groupingData = (data: any) => {
|
|||||||
groupedData[regional][uid].summary = {
|
groupedData[regional][uid].summary = {
|
||||||
total: 0,
|
total: 0,
|
||||||
total_selesai: 0,
|
total_selesai: 0,
|
||||||
persen_selesai: [],
|
|
||||||
total_inproses: 0,
|
total_inproses: 0,
|
||||||
persen_inproses: [],
|
|
||||||
avg_durasi_dispatch: [],
|
avg_durasi_dispatch: [],
|
||||||
max_durasi_dispatch: 0,
|
max_durasi_dispatch: 0,
|
||||||
min_durasi_dispatch: item.min_durasi_dispatch,
|
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 += item.total
|
||||||
groupedData[regional][uid].summary.total_selesai += item.total_selesai
|
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.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.avg_durasi_dispatch.push(item.avg_durasi_dispatch)
|
||||||
groupedData[regional][uid].summary.max_durasi_dispatch =
|
groupedData[regional][uid].summary.max_durasi_dispatch =
|
||||||
groupedData[regional][uid].summary.max_durasi_dispatch < item.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) {
|
for (const regional in data) {
|
||||||
let no = 1
|
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' } }])
|
formattedData.push([{ content: regional, colSpan: 22, styles: { fontStyle: 'bold' } }])
|
||||||
|
|
||||||
for (const uid in data[regional]) {
|
for (const uid in data[regional]) {
|
||||||
const summary = data[regional][uid].summary
|
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([
|
formattedData.push([
|
||||||
{ content: no++, styles: { halign: 'right' } },
|
{ content: no++, styles: { halign: 'right' } },
|
||||||
uid,
|
uid,
|
||||||
formatNumber(summary.total),
|
formatNumber(summary.total),
|
||||||
formatNumber(summary.total_selesai),
|
formatNumber(summary.total_selesai),
|
||||||
summary.persen_selesai.length
|
summary.total_selesai != summary.total
|
||||||
? formatPercentage(
|
? formatPercentage((summary.total_selesai / summary.total) * 100)
|
||||||
summary.persen_selesai.reduce((a: any, b: any) => a + b) /
|
: '100%',
|
||||||
summary.persen_selesai.length
|
|
||||||
)
|
|
||||||
: '0%',
|
|
||||||
summary.total_inproses,
|
summary.total_inproses,
|
||||||
summary.persen_inproses.length
|
'0%',
|
||||||
? formatPercentage(
|
formatNumber(avgDurasiDispatch),
|
||||||
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
|
|
||||||
),
|
|
||||||
formatWaktu(summary.max_durasi_dispatch),
|
formatWaktu(summary.max_durasi_dispatch),
|
||||||
formatWaktu(summary.min_durasi_dispatch),
|
formatWaktu(summary.min_durasi_dispatch),
|
||||||
formatNumber(summary.total_diatas_sla_dispatch),
|
formatNumber(summary.total_diatas_sla_dispatch),
|
||||||
formatNumber(summary.total_dibawah_sla_dispatch),
|
formatNumber(summary.total_dibawah_sla_dispatch),
|
||||||
formatNumber(
|
formatNumber(avgDurasiResponse),
|
||||||
summary.avg_durasi_response.length
|
|
||||||
? summary.avg_durasi_response.reduce((a: any, b: any) => a + b) /
|
|
||||||
summary.avg_durasi_response.length
|
|
||||||
: 0
|
|
||||||
),
|
|
||||||
formatWaktu(summary.max_durasi_response),
|
formatWaktu(summary.max_durasi_response),
|
||||||
formatWaktu(summary.min_durasi_response),
|
formatWaktu(summary.min_durasi_response),
|
||||||
formatNumber(summary.total_diatas_sla_response),
|
formatNumber(summary.total_diatas_sla_response),
|
||||||
formatNumber(summary.total_dibawah_sla_response),
|
formatNumber(summary.total_dibawah_sla_response),
|
||||||
formatNumber(
|
formatNumber(avgDurasiRecovery),
|
||||||
summary.avg_durasi_recovery.length
|
|
||||||
? summary.avg_durasi_recovery.reduce((a: any, b: any) => a + b) /
|
|
||||||
summary.avg_durasi_recovery.length
|
|
||||||
: 0
|
|
||||||
),
|
|
||||||
formatWaktu(summary.max_durasi_recovery),
|
formatWaktu(summary.max_durasi_recovery),
|
||||||
formatWaktu(summary.min_durasi_recovery),
|
formatWaktu(summary.min_durasi_recovery),
|
||||||
formatNumber(summary.total_diatas_sla_recovery),
|
formatNumber(summary.total_diatas_sla_recovery),
|
||||||
formatNumber(summary.total_dibawah_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
|
return formattedData
|
||||||
|
Loading…
x
Reference in New Issue
Block a user