diff --git a/app/Http/Controllers/V3/Dashboard/Mission/Report/ReportMachineController.php b/app/Http/Controllers/V3/Dashboard/Mission/Report/ReportMachineController.php index ae9bbcc1..825a332d 100644 --- a/app/Http/Controllers/V3/Dashboard/Mission/Report/ReportMachineController.php +++ b/app/Http/Controllers/V3/Dashboard/Mission/Report/ReportMachineController.php @@ -23,7 +23,7 @@ class ReportMachineController extends Controller public function machineDetailsReport(Request $request, ReportMachineService $reportMachineService,int $machine_id): JsonResponse { - $data = $reportMachineService->dataTableMachinesActivity($request,$machine_id); + $data = $reportMachineService->machineDetailActivity($request,$machine_id); return response()->json($data); } @@ -34,7 +34,7 @@ class ReportMachineController extends Controller */ public function machineDetailsReportExcel(Request $request, int $machine_id, ReportMachineService $reportMachineService): BinaryFileResponse { - $data = $reportMachineService->dataTableMachinesActivity($request,$machine_id); + $data = $reportMachineService->machineDetailActivity($request,$machine_id); $name = 'گزارش عملکرد ماشین آلات'.verta()->now()->format('Y-m-d H-i').'.xlsx'; return Excel::download(new machineDetailsReport($data['data']), $name); @@ -42,10 +42,7 @@ class ReportMachineController extends Controller public function machinesActivity(Request $request, ReportMachineService $reportMachineService): JsonResponse { - return $this->successResponse([ - 'activities' => $reportMachineService->machinesActivity($request), -// 'provinces' => Province::all(['id', 'name_fa']), - ]); + return response()->json($reportMachineService->machinesActivity($request)); } /** @@ -62,9 +59,9 @@ class ReportMachineController extends Controller } - public function machineTypeDetailsReport(Request $request, ReportMachineService $reportMachineService,int $car_type): JsonResponse + public function machineTypeDetailsReport(Request $request, ReportMachineService $reportMachineService): JsonResponse { - $data = $reportMachineService->dataTableMachineTypesActivity($request,$car_type); + $data = $reportMachineService->machineTypeDetailActivity($request); return response()->json($data); } @@ -73,9 +70,9 @@ class ReportMachineController extends Controller * @throws Exception * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - public function machineTypeDetailsReportExcel(Request $request, ReportMachineService $reportMachineService,int $car_type): BinaryFileResponse + public function machineTypeDetailsReportExcel(Request $request, ReportMachineService $reportMachineService): BinaryFileResponse { - $data = $reportMachineService->dataTableMachineTypesActivity($request,$car_type); + $data = $reportMachineService->machineTypeDetailActivity($request); $name = 'گزارش عملکردیک نوع ماشین'.verta()->now()->format('Y-m-d H-i').'.xlsx'; return Excel::download(new machineTypeDetailsReport($data['data']), $name); @@ -83,10 +80,7 @@ class ReportMachineController extends Controller public function machineTypesActivity(Request $request, ReportMachineService $reportMachineService): JsonResponse { - return $this->successResponse([ - 'activities' => $reportMachineService->machineTypesActivity($request), -// 'provinces' => Province::all(['id', 'name_fa']), - ]); + return response()->json($reportMachineService->machineTypesActivity($request)); } /** @@ -101,9 +95,9 @@ class ReportMachineController extends Controller return Excel::download(new machineTypeReport($data), $name); } - public function machineDriverDetailsReport(Request $request, int $driver_id, ReportMachineService $reportMachineService): JsonResponse + public function machineDriverDetailsReport(Request $request, ReportMachineService $reportMachineService): JsonResponse { - $data = $reportMachineService->dataTableMachineDriversActivity($request,$driver_id); + $data = $reportMachineService->machineDriverDetailActivity($request); return response()->json($data); } @@ -112,9 +106,9 @@ class ReportMachineController extends Controller * @throws Exception * @throws \PhpOffice\PhpSpreadsheet\Writer\Exception */ - public function machineDriverDetailsReportExcel(Request $request, int $driver_id, ReportMachineService $reportMachineService): BinaryFileResponse + public function machineDriverDetailsReportExcel(Request $request, ReportMachineService $reportMachineService): BinaryFileResponse { - $data = $reportMachineService->dataTableMachineDriversActivity($request,$driver_id); + $data = $reportMachineService->machineDriverDetailActivity($request); $name = 'گزارش عملکرد راننده'.verta()->now()->format('Y-m-d H-i').'.xlsx'; return Excel::download( @@ -123,10 +117,7 @@ class ReportMachineController extends Controller public function machineDriversActivity(Request $request, ReportMachineService $reportMachineService): JsonResponse { - return $this->successResponse([ - 'activities' => $reportMachineService->machineDriversActivity($request), -// 'provinces' => Province::all(['id', 'name_fa']), - ]); + return response()->json($reportMachineService->machineDriversActivity($request)); } /** diff --git a/app/Services/Cartables/Mission/Report/ReportMachineService.php b/app/Services/Cartables/Mission/Report/ReportMachineService.php index a00501cb..21e6ea58 100644 --- a/app/Services/Cartables/Mission/Report/ReportMachineService.php +++ b/app/Services/Cartables/Mission/Report/ReportMachineService.php @@ -9,7 +9,7 @@ use Illuminate\Http\Request; class ReportMachineService { - public function dataTableMachinesActivity(Request $request, int $machine_id): array + public function machineDetailActivity(Request $request, int $machine_id): array { return DataTableFacade::run( Mission::query()->where('machine_id', '=', $machine_id), @@ -38,10 +38,9 @@ class ReportMachineService COUNT(*) as missions, SUM(missions.end_km - missions.km) as func' ) - ->groupBy('missions.machine_id') - ->orderByRaw('COUNT(*) DESC'); + ->groupBy('missions.machine_id'); - $fields = ['machine_code','machine_id','cm.car_name','missions', 'func']; + $fields = ['machine_code','machine_id','cm.car_name','missions', 'func', 'start_time', 'finish_time', 'province_id']; return DataTableFacade::run( $query, $request, @@ -50,9 +49,9 @@ class ReportMachineService ); } - public function dataTableMachineTypesActivity(Request $request,int $car_type): array + public function machineTypeDetailActivity(Request $request): array { - $machineIds = CMMSMachine::query()->where('car_type', '=', $car_type)->pluck('machine_id'); + $machineIds = CMMSMachine::query()->where('car_type', '=', $request->query('car_type'))->pluck('id'); return DataTableFacade::run( Mission::query()->whereIn('machine_id', $machineIds), $request, @@ -81,7 +80,7 @@ class ReportMachineService ->groupBy('cm.car_type') ->orderByRaw('COUNT(*) DESC'); - $fields = ['car_type','missions', 'func']; + $fields = ['car_type','missions', 'func', 'start_time', 'finish_time', 'province_id']; return DataTableFacade::run( $query, @@ -91,10 +90,10 @@ class ReportMachineService ); } - public function dataTableMachineDriversActivity(Request $request,int $driver_id): array + public function machineDriverDetailActivity(Request $request): array { return DataTableFacade::run( - Mission::query()->where('driver_id', '=', $driver_id), + Mission::query()->where('driver_id', '=', $request->query('driver_id')), $request, allowedFilters: ['*'], allowedSortings: ['*'], @@ -121,7 +120,7 @@ class ReportMachineService ->groupBy('driver_id') ->orderByRaw('COUNT(*) DESC'); - $fields = ['driver_id','driver_name','missions', 'func']; + $fields = ['driver_id','driver_name','missions', 'func', 'start_time', 'finish_time', 'province_id']; return DataTableFacade::run( $query, diff --git a/database/migrations/2026_06_28_094747_add_distance_mission_to__cmms_machines_table.php b/database/migrations/2026_06_28_094747_add_distance_mission_to_cmms_machines_table.php similarity index 81% rename from database/migrations/2026_06_28_094747_add_distance_mission_to__cmms_machines_table.php rename to database/migrations/2026_06_28_094747_add_distance_mission_to_cmms_machines_table.php index a0a88cf0..e603e4cc 100644 --- a/database/migrations/2026_06_28_094747_add_distance_mission_to__cmms_machines_table.php +++ b/database/migrations/2026_06_28_094747_add_distance_mission_to_cmms_machines_table.php @@ -12,7 +12,7 @@ return new class extends Migration public function up(): void { Schema::table('cmms_machines', function (Blueprint $table) { - $table->integer('distance_mission')->nullable(); + $table->integer('max_mission_duration')->nullable(); }); } @@ -22,7 +22,7 @@ return new class extends Migration public function down(): void { Schema::table('cmms_machines', function (Blueprint $table) { - $table->dropColumn('distance_mission'); + $table->dropColumn('max_mission_duration'); }); } }; diff --git a/routes/v3.php b/routes/v3.php index 5b8bcb45..4dc6363a 100644 --- a/routes/v3.php +++ b/routes/v3.php @@ -575,10 +575,10 @@ Route::prefix('missions') Route::get('/machine_drivers_activity_excel', 'machineDriversActivityExcel')->name('machineDriversActivityExcel'); Route::get('/machine_details_report/{machine_id}', 'machineDetailsReport')->name('machineDetailsReport'); Route::get('/machine_details_report_excel/{machine_id}', 'machineDetailsReportExcel')->name('machineDetailsReportExcel'); - Route::get('/machine_type_details_report/{car_type}', 'machineTypeDetailsReport')->name('machineTypeDetailsReport'); - Route::get('/machine_type_details_report_excel/{car_type}', 'machineTypeDetailsReportExcel')->name('machineTypeDetailsReportExcel'); - Route::get('/machine_driver_details_report/{driver_id}', 'machineDriverDetailsReport')->name('machineDriverDetailsReport'); - Route::get('/machine_driver_details_report_excel/{driver_id}', 'machineDriverDetailsReportExcel')->name('machineDriverDetailsReportExcel'); + Route::get('/machine_type_details_report', 'machineTypeDetailsReport')->name('machineTypeDetailsReport'); + Route::get('/machine_type_details_report_excel', 'machineTypeDetailsReportExcel')->name('machineTypeDetailsReportExcel'); + Route::get('/machine_driver_details_report', 'machineDriverDetailsReport')->name('machineDriverDetailsReport'); + Route::get('/machine_driver_details_report_excel', 'machineDriverDetailsReportExcel')->name('machineDriverDetailsReportExcel'); }); });