Perbaiki statistik penduduk#1685
Open
habibie11 wants to merge 2 commits into
Open
Conversation
Contributor
|
🔄 AI PR Review sedang antri di server...
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
issue # #1682
penyesuaian di API https://github.com/OpenSID/API-Database-Gabungan/pull/451
catatan : perbaikan statistik bukan hanya di sisi frontend tapi di dashboard juga terdapat ketidaksesuaian sehingga perlu diperbaiki
🎯 Deskripsi
Pull request ini memperbaiki ketidaksesuaian perhitungan jumlah penduduk dan pemfilteran data pada halaman Dashboard serta halaman publik Statistik Kependudukan ketika kondisi Sinkronisasi Database Gabungan hidup (
isDatabaseGabungan() == true).Penyebab utama dari masalah sebelumnya antara lain:
PendudukService::jumlahPenduduk(), request ke endpoint API/api/v1/opendk/sync-penduduk-opendktidak mengirimkan parameter filter status dasar penduduk (filter[status_dasar] = 1). Hal ini menyebabkan angka total penduduk yang ditampilkan pada Dashboard admin menghitung seluruh baris data yang ada di tabel server gabungan, termasuk penduduk dengan status mati, pindah, atau tidak aktif.StatistikPendudukService) beserta 7 servis grafik/chart kependudukan, parameter pemfilteran kecamatan dikirimkan dengan kuncifilter[kecamatan], padahal endpoint API Database Gabungan (OpenKab) mengekspektasikan dan memvalidasi parameter menggunakan kuncifilter[kode_kecamatan].Dengan PR ini, filter
filter[status_dasar] = 1telah ditambahkan secara default pada pengambilan jumlah penduduk, dan penamaan parameter pemfilteran kecamatan telah diseragamkan menjadifilter[kode_kecamatan]pada seluruh servis statistik sehingga data yang ditampilkan akurat dan konsisten.🛠️ Perubahan yang Dilakukan
1.
app/Services/PendudukService.phpFix — Penambahan filter status dasar penduduk aktif (
status_dasar = 1):'filter[status_dasar]' => 1pada$defaultParamsdi methodjumlahPenduduk()untuk memastikan hanya penduduk aktif/hidup yang dihitung.public function jumlahPenduduk(array $filters = []) { // Default parameter $defaultParams = [ 'filter[kode_kecamatan]' => str_replace('.', '', config('profil.kecamatan_id')), + 'filter[status_dasar]' => 1, ];2.
app/Services/StatistikPendudukService.phpFix — Penyesuaian parameter filter kode kecamatan:
'filter[kecamatan]'menjadi'filter[kode_kecamatan]'pada methoddashboard()yang mengambil data rekapitulasi untuk halaman Statistik Kependudukan.$filters = [ 'filter[id]' => 'jenis-kelamin', 'filter[tahun]' => $year, - 'filter[kecamatan]' => $this->kodeKecamatan, + 'filter[kode_kecamatan]' => $this->kodeKecamatan, ];3. Servis Grafik / Chart Kependudukan (
app/Services/StatistikChart*)Fix — Penyesuaian serentak parameter
filter[kode_kecamatan]pada servis grafik:'filter[kecamatan]'menjadi'filter[kode_kecamatan]'pada method yang bertugas mengambil data dari API Database Gabungan di 7 file servis berikut:app/Services/StatistikChartPendudukAgamaService.phpapp/Services/StatistikChartPendudukGolDarahService.phpapp/Services/StatistikChartPendudukPendidikanService.phpapp/Services/StatistikChartPendudukPerkawinanService.phpapp/Services/StatistikChartPendudukService.phpapp/Services/StatistikChartPendudukUsiaService.phpapp/Services/StatistikChartTingkatPendidikanService.php✅ Test Cases yang Diimplementasikan
/dashboard) mencerminkan jumlah penduduk aktif (status_dasar = 1), tidak lagi mencakup data penduduk yang sudah meninggal atau pindah./statistik/kependudukan), request API ke server Database Gabungan (/api/v1/statistik-web/penduduk) mengirimkan filterfilter[kode_kecamatan]dengan benar sehingga ringkasan angka (Total, Laki-Laki, Perempuan, KTP, Akta, dll.) akurat.📸 Cara Menjalankan Uji Coba Manual
sinkronisasi_database_gabungan = 1di database / pengaturan aplikasi)./dashboard).status_dasar = 1) di server Database Gabungan./statistik/kependudukan).📸 Screenshot atau Video