diff --git a/src/components/Pages/Anomali/Gangguan/Anomali_LAPPGP_LPT.vue b/src/components/Pages/Anomali/Gangguan/Anomali_LAPPGP_LPT.vue index 8e4ec78..233ba4c 100755 --- a/src/components/Pages/Anomali/Gangguan/Anomali_LAPPGP_LPT.vue +++ b/src/components/Pages/Anomali/Gangguan/Anomali_LAPPGP_LPT.vue @@ -23,6 +23,7 @@ { const onDataSelectionChanged = ({ selectedRowsData }: any) => { dataSelected.value = selectedRowsData[0] + currentDataSelected.value = selectedRowsData[0] console.log(data) } diff --git a/src/components/Pages/Anomali/Gangguan/Anomali_LAPPGU_LPT.vue b/src/components/Pages/Anomali/Gangguan/Anomali_LAPPGU_LPT.vue index 8d4a7c9..6946898 100755 --- a/src/components/Pages/Anomali/Gangguan/Anomali_LAPPGU_LPT.vue +++ b/src/components/Pages/Anomali/Gangguan/Anomali_LAPPGU_LPT.vue @@ -23,6 +23,7 @@ { loadingSubData.value = value }) } +const currentDataSelected = ref(null) const showDetail = () => { - if (dataSelected.value != null) { + if (currentDataSelected.value === dataSelected.value) { dataSub.value = [] dataSubSelected.value = null dialogDetail.value = true @@ -911,6 +914,7 @@ const onExporting = (e: any) => { const onDataSelectionChanged = ({ selectedRowsData }: any) => { dataSelected.value = selectedRowsData[0] + currentDataSelected.value = selectedRowsData[0] showDetail() } diff --git a/src/components/Pages/Ctt/CTT_LaporanCttKwhPeriksa.vue b/src/components/Pages/Ctt/CTT_LaporanCttKwhPeriksa.vue index 932d3ef..226aca8 100755 --- a/src/components/Pages/Ctt/CTT_LaporanCttKwhPeriksa.vue +++ b/src/components/Pages/Ctt/CTT_LaporanCttKwhPeriksa.vue @@ -21,6 +21,7 @@ --> (dialogDetail.value = false) const loadingData = ref(false) const loadingSubData = ref(false) +const resetData = () => { + data.value = [] + dataSub.value = [] + dataSelected.value = null + dataSubSelected.value = null +} + const filterData = (params: any) => { + resetData() loadingData.value = true const { posko, uid, up3 } = params const dateValue = params.periode.split(' s/d ') @@ -1063,6 +1072,7 @@ const filterData = (params: any) => { onResult((queryResult) => { if (queryResult.data != undefined) { data.value = queryResult.data.rekapitulasiAllGangguan + loadingData.value = false } console.log(queryResult.loading) console.log(queryResult.networkStatus) @@ -1070,17 +1080,18 @@ const filterData = (params: any) => { onError((error) => { console.log(error) + loadingData.value = false }) watch(loading, (value) => { - loadingData.value = value + // loadingData.value = value }) } -const getDetail = () => { +const getDetail = async () => { loadingSubData.value = true const dateValue = filters.value.periode.split(' s/d ') - const ref = dataSelected.value + const selected = dataSelected.value const query = { dateFrom: dateValue[0] @@ -1089,43 +1100,59 @@ const getDetail = () => { dateTo: dateValue[1] ? dateValue[1].split('-').reverse().join('-') : new Date().toISOString().slice(0, 10), - posko: ref?.id_posko ? ref?.id_posko : 0, - idUid: ref?.id_uid ? ref?.id_uid : 0, - idUp3: ref?.id_up3 ? ref?.id_up3 : 0, - idRegu: ref?.id_regu ? ref?.id_regu : 0, - idUlp: ref?.id_ulp ? ref?.id_ulp : 0, - namaRegional: ref?.nama_regional ? ref?.nama_regional : '', - media: ref?.media ? ref?.media : '' + posko: selected?.id_posko ? selected?.id_posko : 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, + idUlp: selected?.id_ulp ? selected?.id_ulp : 0, + namaRegional: selected?.nama_regional ? selected?.nama_regional : '', + media: selected?.media ? selected?.media : '' } - const { onResult, onError, loading, refetch } = useQuery( - queries.gangguan.rekap.gangguanAllDetail, - query - ) + await getGangguanDetail(query) + .then((result) => { + // console.table(result.data.data.detailGangguan) + dataSub.value = result.data.data.detailGangguan + }) + .catch((err) => { + console.log(err) + }) + .finally(() => { + loadingSubData.value = false + }) - onResult((queryResult) => { - if (queryResult.data != undefined) { - dataSub.value = queryResult.data.detailGangguan - } - }) + // const result = useQuery(queries.gangguan.rekap.gangguanAllDetail, query, { + // fetchPolicy: 'network-only' + // }) - onError((error) => { - console.log(error) - }) + // result.onResult((queryResult) => { + // if (queryResult.data != undefined) { + // dataSub.value = queryResult.data.detailGangguan + // console.table(queryResult.data.detailGangguan) + // } + // }) - watch(loading, (value) => { - loadingSubData.value = value - }) + // watch(result, (value) => { + // if (dataSub.value != value.detailGangguan) { + // console.table(value.detailGangguan) + // } + // }) + + // result.onError((error) => { + // console.log(error) + // }) + + // watch(result.loading, (value) => { + // loadingSubData.value = value + // }) } const currentDataSelected = ref(null) const showDetail = () => { - if (dataSelected.value != null) { - if (currentDataSelected.value == dataSelected.value) { - dataSub.value = [] - dataSubSelected.value = null - dialogDetail.value = true - getDetail() - } + if (currentDataSelected.value === dataSelected.value) { + dataSub.value = [] + dataSubSelected.value = null + dialogDetail.value = true + getDetail() } } @@ -1263,9 +1290,11 @@ const onExporting = (e: any) => { } const onDataSelectionChanged = ({ selectedRowsData }: any) => { - if (dataSelected.value != selectedRowsData[0]) { + if (selectedRowsData[0] != dataSelected.value) { dataSelected.value = selectedRowsData[0] currentDataSelected.value = selectedRowsData[0] + console.log('new data selected') + showDetail() } } diff --git a/src/components/Pages/Gangguan/Rekap/RGangguan_AlihPosko.vue b/src/components/Pages/Gangguan/Rekap/RGangguan_AlihPosko.vue index 4052e95..69204ea 100755 --- a/src/components/Pages/Gangguan/Rekap/RGangguan_AlihPosko.vue +++ b/src/components/Pages/Gangguan/Rekap/RGangguan_AlihPosko.vue @@ -29,6 +29,7 @@ { }) } +const currentDataSelected = ref(null) const showDetail = () => { - if (dataSelected.value != null) { + if (currentDataSelected.value === dataSelected.value) { dataSub.value = [] dataSubSelected.value = null dialogDetail.value = true @@ -610,6 +613,7 @@ const onExporting = (e: any) => { const onDataSelectionChanged = ({ selectedRowsData }: any) => { dataSelected.value = selectedRowsData[0] + currentDataSelected.value = selectedRowsData[0] showDetail() } diff --git a/src/components/Pages/Gangguan/Rekap/RGangguan_BerdasarMedia.vue b/src/components/Pages/Gangguan/Rekap/RGangguan_BerdasarMedia.vue index eface3a..0a96fb5 100755 --- a/src/components/Pages/Gangguan/Rekap/RGangguan_BerdasarMedia.vue +++ b/src/components/Pages/Gangguan/Rekap/RGangguan_BerdasarMedia.vue @@ -28,6 +28,7 @@ { }) } +const currentDataSelected = ref(null) const showDetail = () => { - if (dataSelected.value != null) { + if (currentDataSelected.value === dataSelected.value) { dataSub.value = [] dataSubSelected.value = null dialogDetail.value = true @@ -597,6 +600,7 @@ const onExporting = (e: any) => { const onDataSelectionChanged = ({ selectedRowsData }: any) => { dataSelected.value = selectedRowsData[0] + currentDataSelected.value = selectedRowsData[0] showDetail() } diff --git a/src/components/Pages/Gangguan/Rekap/RGangguan_CTTM.vue b/src/components/Pages/Gangguan/Rekap/RGangguan_CTTM.vue index 4dc28ae..4713011 100755 --- a/src/components/Pages/Gangguan/Rekap/RGangguan_CTTM.vue +++ b/src/components/Pages/Gangguan/Rekap/RGangguan_CTTM.vue @@ -22,6 +22,7 @@ { }) } +const currentDataSelected = ref(null) const showDetail = () => { - if (dataSelected.value != null) { + if (currentDataSelected.value === dataSelected.value) { dataSub.value = [] dataSubSelected.value = null dialogDetail.value = true @@ -872,6 +875,7 @@ const onExporting = (e: any) => { const onDataSelectionChanged = ({ selectedRowsData }: any) => { dataSelected.value = selectedRowsData[0] + currentDataSelected.value = selectedRowsData[0] showDetail() } diff --git a/src/components/Pages/Gangguan/Rekap/RGangguan_JenisGangguan.vue b/src/components/Pages/Gangguan/Rekap/RGangguan_JenisGangguan.vue index 2bb3eb4..22e8af5 100755 --- a/src/components/Pages/Gangguan/Rekap/RGangguan_JenisGangguan.vue +++ b/src/components/Pages/Gangguan/Rekap/RGangguan_JenisGangguan.vue @@ -29,6 +29,7 @@ { loadingSubData.value = true const dateValue = filters.value.periode.split(' s/d ') const ref = dataSelected.value + const { posko, uid, up3 } = filters.value const query = { dateFrom: dateValue[0] @@ -889,10 +892,10 @@ const getDetail = () => { dateTo: dateValue[1] ? dateValue[1].split('-').reverse().join('-') : new Date().toISOString().slice(0, 10), - posko: filters.value?.id_posko ? filters.value.id_posko : 0, - idUid: filters.value?.id_uid ? filters.value.id_uid : 0, - idUp3: filters.value?.id_up3 ? filters.value.id_up3 : 0, - idEquipment: ref?.kode ? ref.kode : 0 + posko: posko ? posko.id : 0, + idUid: uid ? uid.id : 0, + idUp3: up3 ? up3.id : 0, + idEquipment: ref.kode ? ref.kode : 0 } const { onResult, onError, loading, refetch } = useQuery( @@ -902,7 +905,7 @@ const getDetail = () => { onResult((queryResult) => { if (queryResult.data != undefined) { - dataSub.value = queryResult.data.detailGangguan + dataSub.value = queryResult.data.detailGangguanJenisGangguanSE004 } }) @@ -915,8 +918,9 @@ const getDetail = () => { }) } +const currentDataSelected = ref(null) const showDetail = () => { - if (dataSelected.value != null) { + if (currentDataSelected.value === dataSelected.value) { dataSub.value = [] dataSubSelected.value = null dialogDetail.value = true @@ -926,6 +930,7 @@ const showDetail = () => { const onDataSelectionChanged = ({ selectedRowsData }: any) => { dataSelected.value = selectedRowsData[0] + currentDataSelected.value = selectedRowsData[0] showDetail() } diff --git a/src/components/Pages/Gangguan/Rekap/RGangguan_KTI.vue b/src/components/Pages/Gangguan/Rekap/RGangguan_KTI.vue index 9890ec0..ff82d57 100755 --- a/src/components/Pages/Gangguan/Rekap/RGangguan_KTI.vue +++ b/src/components/Pages/Gangguan/Rekap/RGangguan_KTI.vue @@ -22,6 +22,7 @@ { }) } +const currentDataSelected = ref(null) const showDetail = () => { - if (dataSelected.value != null) { + if (currentDataSelected.value === dataSelected.value) { dataSub.value = [] dataSubSelected.value = null dialogDetail.value = true @@ -1090,6 +1093,7 @@ const onExporting = (e: any) => { const onDataSelectionChanged = ({ selectedRowsData }: any) => { dataSelected.value = selectedRowsData[0] + currentDataSelected.value = selectedRowsData[0] showDetail() } diff --git a/src/components/Pages/Gangguan/Rekap/RGangguan_PerPosko.vue b/src/components/Pages/Gangguan/Rekap/RGangguan_PerPosko.vue index 97d551a..187bdc1 100755 --- a/src/components/Pages/Gangguan/Rekap/RGangguan_PerPosko.vue +++ b/src/components/Pages/Gangguan/Rekap/RGangguan_PerPosko.vue @@ -32,6 +32,7 @@ { }) } +const currentDataSelected = ref(null) const showDetail = () => { - if (dataSelected.value != null) { + if (currentDataSelected.value === dataSelected.value) { dataSub.value = [] dataSubSelected.value = null dialogDetail.value = true @@ -975,6 +978,7 @@ const onExporting = (e: any) => { const onDataSelectionChanged = ({ selectedRowsData }: any) => { dataSelected.value = selectedRowsData[0] + currentDataSelected.value = selectedRowsData[0] showDetail() } diff --git a/src/components/Pages/Gangguan/Rekap/RGangguan_PerRegu.vue b/src/components/Pages/Gangguan/Rekap/RGangguan_PerRegu.vue index aeb7408..7a87763 100755 --- a/src/components/Pages/Gangguan/Rekap/RGangguan_PerRegu.vue +++ b/src/components/Pages/Gangguan/Rekap/RGangguan_PerRegu.vue @@ -29,6 +29,7 @@ { }) } +const currentDataSelected = ref(null) const showDetail = () => { - if (dataSelected.value != null) { + if (currentDataSelected.value === dataSelected.value) { dataSub.value = [] dataSubSelected.value = null dialogDetail.value = true @@ -735,6 +738,7 @@ const onExporting = (e: any) => { const onDataSelectionChanged = ({ selectedRowsData }: any) => { dataSelected.value = selectedRowsData[0] + currentDataSelected.value = selectedRowsData[0] showDetail() } diff --git a/src/components/Pages/Gangguan/Rekap/RGangguan_RatingPerPosko.vue b/src/components/Pages/Gangguan/Rekap/RGangguan_RatingPerPosko.vue index 2f3ae5b..c3d77e3 100755 --- a/src/components/Pages/Gangguan/Rekap/RGangguan_RatingPerPosko.vue +++ b/src/components/Pages/Gangguan/Rekap/RGangguan_RatingPerPosko.vue @@ -23,6 +23,7 @@ { }) } +const currentDataSelected = ref(null) const showDetail = () => { - if (dataSelected.value != null) { + if (currentDataSelected.value === dataSelected.value) { dataSub.value = [] dataSubSelected.value = null dialogDetail.value = true @@ -729,6 +732,7 @@ const onExporting = (e: any) => { const onSelectionChanged = ({ selectedRowsData }: any) => { dataSelected.value = selectedRowsData[0] + currentDataSelected.value = selectedRowsData[0] showDetail() } diff --git a/src/components/Pages/Gangguan/Rekap/RGangguan_RatingPerRegu.vue b/src/components/Pages/Gangguan/Rekap/RGangguan_RatingPerRegu.vue index 9c8f11c..ce8fc3d 100755 --- a/src/components/Pages/Gangguan/Rekap/RGangguan_RatingPerRegu.vue +++ b/src/components/Pages/Gangguan/Rekap/RGangguan_RatingPerRegu.vue @@ -21,6 +21,7 @@ { }) } +const currentDataSelected = ref(null) const showDetail = () => { - if (dataSelected.value != null) { + if (currentDataSelected.value === dataSelected.value) { dataSub.value = [] dataSubSelected.value = null dialogDetail.value = true @@ -720,6 +723,7 @@ const onExporting = (e: any) => { const onDataSelectionChanged = ({ selectedRowsData }: any) => { dataSelected.value = selectedRowsData[0] + currentDataSelected.value = selectedRowsData[0] showDetail() } diff --git a/src/components/Pages/Keluhan/Daftar/DKeluhan_BerdasarMedia.vue b/src/components/Pages/Keluhan/Daftar/DKeluhan_BerdasarMedia.vue index 545e992..fbc52fc 100755 --- a/src/components/Pages/Keluhan/Daftar/DKeluhan_BerdasarMedia.vue +++ b/src/components/Pages/Keluhan/Daftar/DKeluhan_BerdasarMedia.vue @@ -31,6 +31,7 @@ :show-navigation-buttons="true" /> { dataSub.value = dummyData.keluhan.rekap.rekapitulasiKeluhanAll } +const currentDataSelected = ref(null) const showDetail = () => { dialogDetail.value = true getDetail() diff --git a/src/components/Pages/Keluhan/Rekap/RKeluhan_BerdasarMedia.vue b/src/components/Pages/Keluhan/Rekap/RKeluhan_BerdasarMedia.vue index 891f2dd..50859f1 100755 --- a/src/components/Pages/Keluhan/Rekap/RKeluhan_BerdasarMedia.vue +++ b/src/components/Pages/Keluhan/Rekap/RKeluhan_BerdasarMedia.vue @@ -29,6 +29,7 @@ { const getDetail = () => {} +const currentDataSelected = ref(null) const showDetail = () => { dialogDetail.value = true console.log(dataSelected.value) diff --git a/src/components/Pages/Keluhan/Rekap/RKeluhan_PerFungsiBidang.vue b/src/components/Pages/Keluhan/Rekap/RKeluhan_PerFungsiBidang.vue index 1f7686f..5f859d5 100755 --- a/src/components/Pages/Keluhan/Rekap/RKeluhan_PerFungsiBidang.vue +++ b/src/components/Pages/Keluhan/Rekap/RKeluhan_PerFungsiBidang.vue @@ -30,6 +30,7 @@ { dataSub.value = dummyData.keluhan.rekap.rekapitulasiKeluhanPenyelesaianPerFungsiBidang } +const currentDataSelected = ref(null) const showDetail = () => { dialogDetail.value = true getDetail() diff --git a/src/components/Pages/Keluhan/Rekap/RKeluhan_PerJenisKeluhan.vue b/src/components/Pages/Keluhan/Rekap/RKeluhan_PerJenisKeluhan.vue index 65c093b..d11cfc6 100755 --- a/src/components/Pages/Keluhan/Rekap/RKeluhan_PerJenisKeluhan.vue +++ b/src/components/Pages/Keluhan/Rekap/RKeluhan_PerJenisKeluhan.vue @@ -30,6 +30,7 @@ { // dataSub.value = dummyData.keluhan.rekap.rekapitulasiKeluhanPerJenisKeluhan } +const currentDataSelected = ref(null) const showDetail = () => { dialogDetail.value = true getDetail() diff --git a/src/components/Pages/Keluhan/Rekap/RKeluhan_PerKelompokKeluhan.vue b/src/components/Pages/Keluhan/Rekap/RKeluhan_PerKelompokKeluhan.vue index 74e9283..faaaef0 100755 --- a/src/components/Pages/Keluhan/Rekap/RKeluhan_PerKelompokKeluhan.vue +++ b/src/components/Pages/Keluhan/Rekap/RKeluhan_PerKelompokKeluhan.vue @@ -30,6 +30,7 @@ { dataSub.value = dummyData.keluhan.rekap.rekapitulasiKeluhanPerKelompokKeluhan } +const currentDataSelected = ref(null) const showDetail = () => { dialogDetail.value = true getDetail() diff --git a/src/components/Pages/Keluhan/Rekap/RKeluhan_PerTanggal.vue b/src/components/Pages/Keluhan/Rekap/RKeluhan_PerTanggal.vue index d7f77e9..d2bf130 100755 --- a/src/components/Pages/Keluhan/Rekap/RKeluhan_PerTanggal.vue +++ b/src/components/Pages/Keluhan/Rekap/RKeluhan_PerTanggal.vue @@ -30,6 +30,7 @@ { dataSub.value = dummyData.keluhan.rekap.rekapitulasiKeluhanPerTanggal } +const currentDataSelected = ref(null) const showDetail = () => { dialogDetail.value = true getDetail() diff --git a/src/components/Pages/Keluhan/Rekap/RKeluhan_PerUnit.vue b/src/components/Pages/Keluhan/Rekap/RKeluhan_PerUnit.vue index 6d72ec1..0c07315 100755 --- a/src/components/Pages/Keluhan/Rekap/RKeluhan_PerUnit.vue +++ b/src/components/Pages/Keluhan/Rekap/RKeluhan_PerUnit.vue @@ -29,6 +29,7 @@ { // dataSub.value = dummyData.keluhan.rekap.rekapitulasiKeluhanPerUnit } +const currentDataSelected = ref(null) const showDetail = () => { dialogDetail.value = true console.log(dataSelected.value) diff --git a/src/components/Pages/Keluhan/Rekap/RKeluhan_RatingPerUnit.vue b/src/components/Pages/Keluhan/Rekap/RKeluhan_RatingPerUnit.vue index 801d59a..966a394 100755 --- a/src/components/Pages/Keluhan/Rekap/RKeluhan_RatingPerUnit.vue +++ b/src/components/Pages/Keluhan/Rekap/RKeluhan_RatingPerUnit.vue @@ -23,6 +23,7 @@ { const onDataSelectionChanged = ({ selectedRowsData }: any) => { dataSelected.value = selectedRowsData[0] + currentDataSelected.value = selectedRowsData[0] console.log(data) } diff --git a/src/components/Pages/Monalisa/Gangguan/Rekap/MonalisaGR_GangguanPerJenisGangguan.vue b/src/components/Pages/Monalisa/Gangguan/Rekap/MonalisaGR_GangguanPerJenisGangguan.vue index 9160630..8420ad6 100755 --- a/src/components/Pages/Monalisa/Gangguan/Rekap/MonalisaGR_GangguanPerJenisGangguan.vue +++ b/src/components/Pages/Monalisa/Gangguan/Rekap/MonalisaGR_GangguanPerJenisGangguan.vue @@ -28,6 +28,7 @@ { // }) } +const currentDataSelected = ref(null) const showDetail = () => { - if (dataSelected.value != null) { + if (currentDataSelected.value === dataSelected.value) { dataSub.value = [] dataSubSelected.value = null dialogDetail.value = true diff --git a/src/components/Pages/Monalisa/Laporan/Bulanan/MonalisaLB_EnergyNotSales.vue b/src/components/Pages/Monalisa/Laporan/Bulanan/MonalisaLB_EnergyNotSales.vue index 7b15af4..c21d55a 100755 --- a/src/components/Pages/Monalisa/Laporan/Bulanan/MonalisaLB_EnergyNotSales.vue +++ b/src/components/Pages/Monalisa/Laporan/Bulanan/MonalisaLB_EnergyNotSales.vue @@ -29,6 +29,7 @@ { // }) } +const currentDataSelected = ref(null) const showDetail = () => { - if (dataSelected.value != null) { + if (currentDataSelected.value === dataSelected.value) { dataSub.value = [] dataSubSelected.value = null dialogDetail.value = true diff --git a/src/components/Pages/Monalisa/Laporan/Kumulatif/MonalisaLK_AgingComplaint.vue b/src/components/Pages/Monalisa/Laporan/Kumulatif/MonalisaLK_AgingComplaint.vue index bc531a2..32f6228 100755 --- a/src/components/Pages/Monalisa/Laporan/Kumulatif/MonalisaLK_AgingComplaint.vue +++ b/src/components/Pages/Monalisa/Laporan/Kumulatif/MonalisaLK_AgingComplaint.vue @@ -29,6 +29,7 @@ { + // controller.abort() + return await instance.post('', { + query: `query detailGangguan( + $dateFrom: Date! + $dateTo: Date! + $posko: Int! + $idUid: Int! + $idUp3: Int! + $idRegu: Int! + $media: String! + $idUlp: Int! + $namaRegional: String! + ) { + detailGangguan( + dateFrom: $dateFrom + dateTo: $dateTo + posko: $posko + idUid: $idUid + idUp3: $idUp3 + idRegu: $idRegu + idUlp: $idUlp + namaRegional: $namaRegional + media: $media + ) { + 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_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 + nama_posko + jarak_closing + dispatch_oleh + diselesaikan_oleh + penyebab + tindakan + kode_gangguan + jenis_gangguan + nilai_rating + } + }`, + variables: data + }) +} export const apolloClient = () => { const httpLink = createHttpLink({ @@ -913,6 +992,7 @@ export const queries = { id_fasilitas sub_kelompok kode + equipment_id total total_selesai persen_selesai @@ -969,16 +1049,14 @@ export const queries = { durasi_response_time durasi_recovery_time status_akhir - id_pelnomormeter - id_nomormeter + referensi_marking + idpel_nometer nama_pelapor alamat_pelapor no_telp_pelapor keterangan_pelapor tindakan penyebab - is_masih_proses - kwh_lost } } `,