diff --git a/app/Http/Controllers/Admin/InformationController.php b/app/Http/Controllers/Admin/InformationController.php
index a44c017..fe5c447 100644
--- a/app/Http/Controllers/Admin/InformationController.php
+++ b/app/Http/Controllers/Admin/InformationController.php
@@ -236,7 +236,65 @@ class InformationController extends Controller
];
}
- return view('admin.information.dashboard', compact('totalStats', 'cityStats'));
+ // グラフ用データ: city_name と utilization_rate, waiting_count のみ
+ $cityStatsChart = [];
+ foreach ($cities as $city) {
+ $parkIds = DB::table('park')
+ ->where('city_id', $city->city_id)
+ ->pluck('park_id')
+ ->toArray();
+
+ // park_standard と park_number の合計
+ $parkNumberStats = DB::table('park_number')
+ ->whereIn('park_id', $parkIds)
+ ->selectRaw('COALESCE(SUM(park_standard), 0) as total_standard, COALESCE(SUM(park_number), 0) as total_number')
+ ->first();
+
+ $parkStandard = $parkNumberStats->total_standard ?? 0;
+ $parkNumber = $parkNumberStats->total_number ?? 0;
+
+ // 利用率計算:floor((park_number / park_standard) * 100)
+ $utilizationRate = $parkStandard > 0
+ ? (int) floor(($parkNumber / $parkStandard) * 100)
+ : 0;
+
+ // 予約待ち人数
+ $waitingCount = 0;
+ if (!empty($parkIds)) {
+ $waitingQuery = DB::table('reserve')
+ ->whereIn('park_id', $parkIds)
+ ->where('valid_flag', 1)
+ ->whereNull('contract_id');
+
+ try {
+ DB::table('reserve')
+ ->select(DB::raw('1'))
+ ->whereNotNull('reserve_cancel_flag')
+ ->limit(1)
+ ->first();
+
+ $waitingQuery = $waitingQuery
+ ->where(function ($q) {
+ $q->whereNull('reserve_cancel_flag')
+ ->orWhere('reserve_cancel_flag', 0);
+ })
+ ->whereNull('reserve_cancelday');
+ } catch (\Exception $e) {
+ // キャンセルフラグが未運用
+ }
+
+ $waitingCount = $waitingQuery->count();
+ }
+
+ $cityStatsChart[] = [
+ 'city_id' => $city->city_id,
+ 'city_name' => $city->city_name,
+ 'utilization_rate' => $utilizationRate,
+ 'waiting_count' => $waitingCount,
+ ];
+ }
+
+ return view('admin.information.dashboard', compact('totalStats', 'cityStats', 'cityStatsChart'));
}
// ステータス一括更新(着手=2 / 対応完了=3)
diff --git a/resources/views/admin/information/dashboard.blade.php b/resources/views/admin/information/dashboard.blade.php
index d7a8630..af852d8 100644
--- a/resources/views/admin/information/dashboard.blade.php
+++ b/resources/views/admin/information/dashboard.blade.php
@@ -257,125 +257,189 @@
@push('scripts')
-@endpush
\ No newline at end of file
+
+
+@endpush
+