Add Monalisa dispatching time gangguan queries

This commit is contained in:
Dede Fuji Abdul
2024-04-03 11:21:43 +07:00
parent 6a7621b435
commit b88e38fbb7
3 changed files with 286 additions and 101 deletions

View File

@ -69,9 +69,9 @@
"
/>
<DxColumn
:width="150"
:width="250"
alignment="center"
data-field="jenisGangguan"
data-field="tipe_permasalahan"
caption="Jenis Gangguan"
css-class="custom-table-column"
cell-template="formatText"
@ -80,7 +80,7 @@
<DxColumn
:width="120"
alignment="center"
data-field="laporan.total"
data-field="total"
data-type="number"
caption="Total"
css-class="custom-table-column"
@ -90,7 +90,7 @@
<DxColumn
:width="120"
alignment="center"
data-field="laporan.sudahSelesai.jml"
data-field="total_selesai"
data-type="number"
caption="Jml"
css-class="custom-table-column"
@ -99,7 +99,7 @@
<DxColumn
:width="70"
alignment="center"
data-field="laporan.sudahSelesai.persen"
data-field="persen_selesai"
data-type="number"
caption="%"
css-class="custom-table-column"
@ -110,7 +110,7 @@
<DxColumn
:width="120"
alignment="center"
data-field="laporan.belumSelesai.jml"
data-field="total_inproses"
data-type="number"
caption="Jml"
css-class="custom-table-column"
@ -119,7 +119,7 @@
<DxColumn
:width="70"
alignment="center"
data-field="laporan.belumSelesai.persen"
data-field="persen_inproses"
data-type="number"
caption="%"
css-class="custom-table-column"
@ -132,7 +132,7 @@
<DxColumn
:width="120"
alignment="center"
data-field="responseTime.menit.total"
data-field="total_durasi_response"
data-type="number"
caption="Total"
css-class="custom-table-column"
@ -141,7 +141,7 @@
<DxColumn
:width="120"
alignment="center"
data-field="responseTime.menit.rataRata"
data-field="avg_durasi_response"
data-type="number"
caption="Rata-Rata"
css-class="custom-table-column"
@ -150,7 +150,7 @@
<DxColumn
:width="120"
alignment="center"
data-field="responseTime.menit.max"
data-field="max_durasi_response"
data-type="number"
caption="Max"
css-class="custom-table-column"
@ -159,7 +159,7 @@
<DxColumn
:width="120"
alignment="center"
data-field="responseTime.menit.min"
data-field="min_durasi_response"
data-type="number"
caption="Min"
css-class="custom-table-column"
@ -170,7 +170,7 @@
<DxColumn
:width="120"
alignment="center"
data-field="responseTime.laporan.lebihSla"
data-field="total_diatas_sla_response"
data-type="number"
caption=">SLA"
css-class="custom-table-column"
@ -179,7 +179,7 @@
<DxColumn
:width="120"
alignment="center"
data-field="responseTime.laporan.kurangSla"
data-field="total_dibawah_sla_response"
data-type="number"
caption="SLA"
css-class="custom-table-column"
@ -192,7 +192,7 @@
<DxColumn
:width="120"
alignment="center"
data-field="recoveryTime.menit.total"
data-field="total_durasi_recovery"
data-type="number"
caption="Total"
css-class="custom-table-column"
@ -201,7 +201,7 @@
<DxColumn
:width="120"
alignment="center"
data-field="recoveryTime.menit.rataRata"
data-field="avg_durasi_recovery"
data-type="number"
caption="Rata-Rata"
css-class="custom-table-column"
@ -210,7 +210,7 @@
<DxColumn
:width="120"
alignment="center"
data-field="recoveryTime.menit.max"
data-field="max_durasi_recovery"
data-type="number"
caption="Max"
css-class="custom-table-column"
@ -219,7 +219,7 @@
<DxColumn
:width="120"
alignment="center"
data-field="recoveryTime.menit.min"
data-field="min_durasi_recovery"
data-type="number"
caption="Min"
css-class="custom-table-column"
@ -230,7 +230,7 @@
<DxColumn
:width="120"
alignment="center"
data-field="recoveryTime.laporan.lebihSla"
data-field="total_diatas_sla_recovery"
data-type="number"
caption=">SLA"
css-class="custom-table-column"
@ -239,7 +239,7 @@
<DxColumn
:width="120"
alignment="center"
data-field="recoveryTime.laporan.kurangSla"
data-field="total_dibawah_sla_recovery"
data-type="number"
caption="SLA"
css-class="custom-table-column"
@ -248,7 +248,7 @@
</DxColumn>
</DxColumn>
<DxSummary>
<DxSummary :calculate-custom-summary="calculateCustomSummary">
<DxGroupItem
:show-in-group-footer="true"
column="no"
@ -257,7 +257,7 @@
/>
<DxGroupItem
:show-in-group-footer="true"
column="laporan.total"
column="total"
summary-type="sum"
display-format="{0}"
css-class="!text-right"
@ -265,7 +265,7 @@
/>
<DxGroupItem
:show-in-group-footer="true"
column="laporan.sudahSelesai.jml"
column="total_selesai"
summary-type="sum"
display-format="{0}"
css-class="!text-right"
@ -273,7 +273,7 @@
/>
<DxGroupItem
:show-in-group-footer="true"
column="laporan.sudahSelesai.persen"
column="persen_selesai"
summary-type="avg"
display-format="{0}"
css-class="!text-right"
@ -281,7 +281,7 @@
/>
<DxGroupItem
:show-in-group-footer="true"
column="laporan.belumSelesai.jml"
column="total_inproses"
summary-type="sum"
display-format="{0}"
css-class="!text-right"
@ -289,7 +289,7 @@
/>
<DxGroupItem
:show-in-group-footer="true"
column="laporan.belumSelesai.persen"
column="persen_inproses"
summary-type="avg"
display-format="{0}"
css-class="!text-right"
@ -297,7 +297,7 @@
/>
<DxGroupItem
:show-in-group-footer="true"
column="responseTime.menit.total"
column="total_durasi_response"
summary-type="sum"
display-format="{0}"
css-class="!text-right"
@ -305,7 +305,7 @@
/>
<DxGroupItem
:show-in-group-footer="true"
column="responseTime.menit.rataRata"
column="avg_durasi_response"
summary-type="avg"
display-format="{0}"
css-class="!text-right"
@ -313,7 +313,7 @@
/>
<DxGroupItem
:show-in-group-footer="true"
column="responseTime.menit.max"
column="max_durasi_response"
summary-type="max"
display-format="{0}"
css-class="!text-right"
@ -321,7 +321,7 @@
/>
<DxGroupItem
:show-in-group-footer="true"
column="responseTime.menit.min"
column="min_durasi_response"
summary-type="min"
display-format="{0}"
css-class="!text-right"
@ -329,7 +329,7 @@
/>
<DxGroupItem
:show-in-group-footer="true"
column="responseTime.laporan.lebihSla"
column="total_diatas_sla_response"
summary-type="sum"
display-format="{0}"
css-class="!text-right"
@ -337,7 +337,7 @@
/>
<DxGroupItem
:show-in-group-footer="true"
column="responseTime.laporan.kurangSla"
column="total_dibawah_sla_response"
summary-type="sum"
display-format="{0}"
css-class="!text-right"
@ -345,7 +345,7 @@
/>
<DxGroupItem
:show-in-group-footer="true"
column="recoveryTime.menit.total"
column="total_durasi_recovery"
summary-type="sum"
display-format="{0}"
css-class="!text-right"
@ -353,7 +353,7 @@
/>
<DxGroupItem
:show-in-group-footer="true"
column="recoveryTime.menit.rataRata"
column="avg_durasi_recovery"
summary-type="avg"
display-format="{0}"
css-class="!text-right"
@ -361,7 +361,7 @@
/>
<DxGroupItem
:show-in-group-footer="true"
column="recoveryTime.menit.max"
column="max_durasi_recovery"
summary-type="max"
display-format="{0}"
css-class="!text-right"
@ -369,7 +369,7 @@
/>
<DxGroupItem
:show-in-group-footer="true"
column="recoveryTime.menit.min"
column="min_durasi_recovery"
summary-type="min"
display-format="{0}"
css-class="!text-right"
@ -377,7 +377,7 @@
/>
<DxGroupItem
:show-in-group-footer="true"
column="recoveryTime.laporan.lebihSla"
column="total_diatas_sla_recovery"
summary-type="sum"
display-format="{0}"
css-class="!text-right"
@ -385,7 +385,7 @@
/>
<DxGroupItem
:show-in-group-footer="true"
column="recoveryTime.laporan.kurangSla"
column="total_dibawah_sla_recovery"
summary-type="sum"
display-format="{0}"
css-class="!text-right"
@ -563,46 +563,8 @@ const filterData = async (params: any) => {
data.value = [...result.data.data.rekapitulasiPerJenisGangguan].map(
(item: any, index: number) => {
return {
no: ++index,
sub_kelompok: item.sub_kelompok,
nama_sub_kelompok: item.nama_sub_kelompok,
kode: item.kode,
jenisGangguan: item.tipe_permasalahan,
laporan: {
total: item.total,
sudahSelesai: {
jml: item.total_selesai,
persen: item.persen_selesai
},
belumSelesai: {
jml: item.total_inproses,
persen: item.persen_inproses
}
},
responseTime: {
menit: {
total: item.total_durasi_response,
rataRata: item.avg_durasi_response,
max: item.max_durasi_response,
min: item.min_durasi_response
},
laporan: {
lebihSla: item.total_diatas_sla_response,
kurangSla: item.total_dibawah_sla_response
}
},
recoveryTime: {
menit: {
total: item.total_durasi_recovery,
rataRata: item.avg_durasi_recovery,
max: item.max_durasi_recovery,
min: item.min_durasi_recovery
},
laporan: {
lebihSla: item.total_diatas_sla_recovery,
kurangSla: item.total_dibawah_sla_recovery
}
}
...item,
no: ++index
}
}
)
@ -619,6 +581,50 @@ const filterData = async (params: any) => {
})
}
let total = 0
let total_selesai = 0
let total_inproses = 0
let count_durasi_dispatch = 0
let total_durasi_dispatch = 0
let count_durasi_response = 0
let total_durasi_response = 0
let count_durasi_recovery = 0
let total_durasi_recovery = 0
const calculateCustomSummary = (options: any) => {
if (options.name === 'total') {
if (options.summaryProcess === 'calculate') {
total += options.value
} else if (options.summaryProcess === 'finalize') {
options.totalValue = total
}
}
if (options.name === 'total_selesai') {
if (options.summaryProcess === 'calculate') {
total_selesai += options.value
} else if (options.summaryProcess === 'finalize') {
options.totalValue = total_selesai
}
}
if (options.name === 'total_inproses') {
if (options.summaryProcess === 'calculate') {
total_inproses += options.value
} else if (options.summaryProcess === 'finalize') {
options.totalValue = total_inproses
}
}
if (options.name === 'persen_selesai') {
if (options.summaryProcess === 'start') {
total = 0
total_selesai = 0
} else if (options.summaryProcess === 'finalize') {
options.totalValue = (total_selesai / total) * 100
}
}
}
const filters = ref()
onMounted(() => {
if (import.meta.env.DEV) {