Add Monalisa dispatching time gangguan queries
This commit is contained in:
		| @@ -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) { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user