dashboard indeks petani

This commit is contained in:
2026-08-07 12:59:25 +07:00
parent d4c6b64ba6
commit 8b21fab8b8
3 changed files with 288 additions and 9 deletions
@@ -106,6 +106,59 @@ class IndeksPetaniController extends Controller
avg(skor_komp_6_d6_k1_k4_k5_rantai_nilai_akses_pasar) as skor_komp_6_d6_k1_k4_k5_rantai_nilai_akses_pasar")
->first();
$desaKelurahan = Petani::query()
->join('master_desa_kelurahan', 'petani.desa_kelurahan_id', '=', 'master_desa_kelurahan.id')
->join('master_kecamatan', 'master_desa_kelurahan.kecamatan_id', '=', 'master_kecamatan.id')
->join('master_kabupaten_kota', 'master_kecamatan.kabupaten_kota_id', '=', 'master_kabupaten_kota.id')
->join('master_provinsi', 'master_kabupaten_kota.provinsi_id', '=', 'master_provinsi.id')
->selectRaw("
master_desa_kelurahan.id as desa_kelurahan_id,
master_desa_kelurahan.nama as desa_kelurahan,
master_desa_kelurahan.path as path,
master_kecamatan.id as kecamatan_id,
master_kecamatan.nama as kecamatan,
master_kabupaten_kota.id as kabupaten_id,
master_kabupaten_kota.nama as kabupaten,
master_provinsi.id as provinsi_id,
master_provinsi.nama as provinsi
")
->whereIn('petani.id', $petani)
->distinct()
->get();
$mapSegmentasi = SkorPetani::query()
->join('petani', 'petani_skor.petani_id', '=', 'petani.id')
->selectRaw("petani.desa_kelurahan_id,
$case AS segmen,
COUNT(petani.id) AS total
")
->whereIn('petani_skor.petani_id', $petani)
->groupBy('petani.desa_kelurahan_id')
->groupByRaw($case)
->get();
$mapAvgSkorSegmentasi = SkorPetani::query()
->join('petani', 'petani_skor.petani_id', '=', 'petani.id')
->selectRaw("petani.desa_kelurahan_id,
COUNT(petani.id) AS jumlah_petani,
avg(skor_kesiapan_adopsi) AS skor,
CASE
WHEN AVG(skor_kesiapan_adopsi) >= 4 THEN 'Penggerak'
WHEN AVG(skor_kesiapan_adopsi) >= 3 THEN 'Perintis'
WHEN AVG(skor_kesiapan_adopsi) >= 2 THEN 'Pemerhati'
WHEN AVG(skor_kesiapan_adopsi) >= 1 THEN 'Pemula'
ELSE 'Belum Lengkap'
END AS segmen
")
->whereIn('petani_skor.petani_id', $petani)
->groupBy('petani.desa_kelurahan_id')
->get();
$daftarPetani = Petani::query()
->whereIn('id', $petani)
->whereIn('komoditas_id', $komoditas->pluck('id'))
->get();
return view('dashboard.indeks-petani', compact(
'komoditas',
'countPetani',
@@ -119,7 +172,11 @@ class IndeksPetaniController extends Controller
'countSegmentasi',
'countSegmentasiByKomoditas',
'avgDimensi',
'avgKomponen'
'avgKomponen',
'desaKelurahan',
'mapSegmentasi',
'mapAvgSkorSegmentasi',
'daftarPetani',
));
}
}