diff --git a/src/components/Pages/Gangguan/Rekap/RGangguan_JenisGangguan.vue b/src/components/Pages/Gangguan/Rekap/RGangguan_JenisGangguan.vue index 1a2921f..8d14690 100755 --- a/src/components/Pages/Gangguan/Rekap/RGangguan_JenisGangguan.vue +++ b/src/components/Pages/Gangguan/Rekap/RGangguan_JenisGangguan.vue @@ -69,9 +69,9 @@ " /> - + { 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) { diff --git a/src/components/Pages/Monalisa/Gangguan/Rekap/MonalisaGR_DispatchingTimeGangguan.vue b/src/components/Pages/Monalisa/Gangguan/Rekap/MonalisaGR_DispatchingTimeGangguan.vue index 400996b..ab179c2 100755 --- a/src/components/Pages/Monalisa/Gangguan/Rekap/MonalisaGR_DispatchingTimeGangguan.vue +++ b/src/components/Pages/Monalisa/Gangguan/Rekap/MonalisaGR_DispatchingTimeGangguan.vue @@ -93,7 +93,7 @@ data-type="number" :caption="`${getMonthName(lastMonth)} ${lastYearMoM}`" css-class="custom-table-column" - cell-template="formatNumber" + cell-template="formatNumberMomLastMonthLastYear" /> + + + + + + + + @@ -748,6 +808,9 @@ const dialogDetail = ref(false) const closedialogDetail = () => (dialogDetail.value = false) const loadingData = ref(false) const loadingSubData = ref(false) +const dataType = ref('') +const dataYear = ref(new Date().getFullYear()) +const dataMonth = ref(new Date().getMonth()) const reportMeta = ref({ regional: { id: 0, name: 'Semua Regional' }, uid: { id: 0, name: 'Semua Unit Induk Distribusi/Wilayah' }, @@ -763,6 +826,12 @@ const reportMeta = ref({ lastYear: new Date().getFullYear() - 1 }) +const setRequirements = (type: string, month: number, year: number) => { + dataType.value = type + dataYear.value = year + dataMonth.value = month +} + const onExporting = (e: any) => { if (e.format === 'pdf') { exportToPDF(reportMeta.value, data.value) @@ -835,32 +904,30 @@ const filterData = async (params: any) => { } const getDetail = async () => { - const dateValue = filters.value.periode.split(' s/d ') const selected = dataSelected.value const query = { - dateFrom: dateValue[0] - ? dateValue[0].split('-').reverse().join('-') - : new Date().toISOString().slice(0, 10), - dateTo: dateValue[1] - ? dateValue[1].split('-').reverse().join('-') - : new Date().toISOString().slice(0, 10), - posko: selected?.id_ulp ? selected?.id_ulp : 0, - idUid: selected?.id_uid ? selected?.id_uid : 0, - idUp3: selected?.id_up3 ? selected?.id_up3 : 0, - idRegu: selected?.id_regu ? selected?.id_regu : 0, + bulan: dataMonth.value, + tahun: dataYear.value, idUlp: selected?.id_ulp ? selected?.id_ulp : 0, - namaRegional: selected?.nama_regional ? selected?.nama_regional : '', - media: selected?.media ? selected?.media : '', - isSelesai: 0, - tanggal: '' + idUid: selected?.id_uid ? selected?.id_uid : 0, + idUp3: selected?.id_up3 ? selected?.id_up3 : 0 } loadingSubData.value = true - await requestGraphQl(queries.gangguan.rekap.gangguanAllDetail, query) + await requestGraphQl( + dataType.value == 'yoy' + ? queries.monalisa.gangguan.rekap.dispatchingTimeGangguanDetailYoy + : queries.monalisa.gangguan.rekap.dispatchingTimeGangguanDetailMom, + query + ) .then((result) => { if (result.data.data != undefined) { - dataSub.value = result.data.data.detailGangguan + if (dataType.value == 'yoy') { + dataSub.value = result.data.data.detailMonalisaDispatchingTimeGangguanYoy + } else { + dataSub.value = result.data.data.detailMonalisaDispatchingTimeGangguanMoM + } } else { dataSub.value = [] } @@ -882,7 +949,9 @@ const clearSelection = () => { const showDetail = () => { clearSelection() dataSubSelected.value = null - getDetail() + if (dataType.value == 'yoy' || dataType.value == 'mom') { + getDetail() + } } const onDataSelectionChanged = ({ selectedRowsData }: any) => { if (selectedRowsData[0] != undefined) { diff --git a/src/utils/api/api.graphql.ts b/src/utils/api/api.graphql.ts index 890b7b9..208a86a 100755 --- a/src/utils/api/api.graphql.ts +++ b/src/utils/api/api.graphql.ts @@ -1972,6 +1972,116 @@ export const queries = { monalisa: { gangguan: { rekap: { + dispatchingTimeGangguanDetailYoy: gql` + query detailMonalisaDispatchingTimeGangguanYoY( + $bulan: Int! + $tahun: Int! + $idUlp: Int! + $idUid: Int! + $idUp3: Int! + ) { + detailMonalisaDispatchingTimeGangguanYoY( + bulan: $bulan + tahun: $tahun + idUlp: $idUlp + idUid: $idUid + idUp3: $idUp3 + ) { + id + id + nama_regional + id_uid + nama_uid + id_up3 + nama_up3 + id_ulp + nama_ulp + id_posko + nama_posko + no_laporan + pembuat_laporan + waktu_lapor + waktu_dispatch + waktu_response + waktu_recovery + durasi_dispatch_time + durasi_response_time + durasi_recovery_time + status_akhir + is_marking + referensi_marking + idpel_nometer + nama_pelapor + alamat_pelapor + no_telp_pelapor + keterangan_pelapor + media + jarak_closing + dispatch_oleh + diselesaikan_oleh + penyebab + tindakan + kode_gangguan + jenis_gangguan + nilai_rating + } + } + `, + dispatchingTimeGangguanDetailMom: gql` + query detailMonalisaDispatchingTimeGangguanMoM( + $bulan: Int! + $tahun: Int! + $idUlp: Int! + $idUid: Int! + $idUp3: Int! + ) { + detailMonalisaDispatchingTimeGangguanMoM( + bulan: $bulan + tahun: $tahun + idUlp: $idUlp + idUid: $idUid + idUp3: $idUp3 + ) { + id + id + nama_regional + id_uid + nama_uid + id_up3 + nama_up3 + id_ulp + nama_ulp + id_posko + nama_posko + no_laporan + pembuat_laporan + waktu_lapor + waktu_dispatch + waktu_response + waktu_recovery + durasi_dispatch_time + durasi_response_time + durasi_recovery_time + status_akhir + is_marking + referensi_marking + idpel_nometer + nama_pelapor + alamat_pelapor + no_telp_pelapor + keterangan_pelapor + media + jarak_closing + dispatch_oleh + diselesaikan_oleh + penyebab + tindakan + kode_gangguan + jenis_gangguan + nilai_rating + } + } + `, dispatchingTimeGangguan: gql` query monalisaDispatchingTimeGangguan( $namaRegional: String