diff --git a/app/Http/Controllers/V3/Dashboard/Mission/ControlUnitController.php b/app/Http/Controllers/V3/Dashboard/Mission/ControlUnitController.php index 506861fe..d9ca292f 100644 --- a/app/Http/Controllers/V3/Dashboard/Mission/ControlUnitController.php +++ b/app/Http/Controllers/V3/Dashboard/Mission/ControlUnitController.php @@ -57,7 +57,8 @@ class ControlUnitController extends Controller $mission->update([ 'state_id' => $state, 'state_name' => MissionStates::name($state), - 'finish_time' => now() + 'finish_time' => now(), + 'mission_duration' => strtotime(now()) - strtotime($mission->start_time), ]); }); diff --git a/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php b/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php index 74ec9be3..23d8bd74 100644 --- a/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php +++ b/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php @@ -33,6 +33,7 @@ class RequestPortalController extends Controller { DB::transaction(function () use ($request) { $user = auth()->user(); + $state = MissionStates::REQUEST_CREATED->value; $category = $request->category_id; diff --git a/app/Listeners/V3/Dashboard/Mission/SendDataToFMSListener.php b/app/Listeners/V3/Dashboard/Mission/SendDataToFMSListener.php index 250a1f51..7d16db5c 100644 --- a/app/Listeners/V3/Dashboard/Mission/SendDataToFMSListener.php +++ b/app/Listeners/V3/Dashboard/Mission/SendDataToFMSListener.php @@ -29,12 +29,19 @@ class SendDataToFMSListener implements ShouldQueue $this->getErrorRateService->setInputParameters([ 'missionArea' => $mission->area['coordinates'], - 'missionStartDT' => $mission->start_date, - 'missionEndDT' => $mission->end_date, + 'missionStartDT' => $mission->start_time->format('Y-m-d\TH:i:s'), + 'missionEndDT' => $mission->finish_time->format('Y-m-d\TH:i:s'), 'machineCode' => $mission->machines()->first('cmms_machines.machine_code'), 'areaType' => $mission->area['type'] === 'polygon' ? 1 : 2, ]); - $this->getErrorRateService->run(); + $responseData = $this->getErrorRateService->run(); + + $mission->update([ + 'in_area_duration' => $responseData['TimeInAreaSeconds'], + 'first_enter' => $responseData['FirstEnter'], + 'last_exit' => $responseData['LastExit'], + 'point_number_sent' => $responseData['NoOfPointsInMission'], + ]); } } diff --git a/database/migrations/2025_09_23_095848_add_column_to_missions_table.php b/database/migrations/2025_09_23_095848_add_column_to_missions_table.php new file mode 100644 index 00000000..b293d255 --- /dev/null +++ b/database/migrations/2025_09_23_095848_add_column_to_missions_table.php @@ -0,0 +1,32 @@ +bigInteger('mission_duration')->nullable(); + $table->bigInteger('in_area_duration')->nullable(); + $table->timestamps('first_enter')->nullable(); + $table->timestamps('last_exit')->nullable(); + $table->integer('point_number_sent')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('missions', function (Blueprint $table) { + $table->dropColumn(['mission_duration', 'in_area_duration', 'first_enter', 'last_exit', 'point_number_sent']); + }); + } +};