From 4e8054d8d8af05fe78d94a6b5c30d279b8119be9 Mon Sep 17 00:00:00 2001 From: joddyabott Date: Tue, 23 Sep 2025 15:47:36 +0330 Subject: [PATCH 1/3] create and change some thing for misson in listener and controller andmigration --- .../Mission/RequestPortalController.php | 7 ++++ .../Mission/SendDataToFMSListener.php | 13 ++++++-- ...23_095848_add_column_to_missions_table.php | 32 +++++++++++++++++++ 3 files changed, 49 insertions(+), 3 deletions(-) create mode 100644 database/migrations/2025_09_23_095848_add_column_to_missions_table.php diff --git a/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php b/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php index 74ec9be3..e8e4e72d 100644 --- a/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php +++ b/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php @@ -33,9 +33,15 @@ class RequestPortalController extends Controller { DB::transaction(function () use ($request) { $user = auth()->user(); + $state = MissionStates::REQUEST_CREATED->value; $category = $request->category_id; + $start_timestamp = strtotime($request->start_date); + $end_timestamp = strtotime($request->end_date); + + $mission_duration = $end_timestamp - $start_timestamp; + $mission = Mission::query()->create([ 'user_id' => $user->id, 'username' => $user->username, @@ -60,6 +66,7 @@ class RequestPortalController extends Controller 'category_name' => MissionCategory::name($category), 'explanation' => $request->explanation, 'code' => rand(100000, 999999), + 'mission_duration' => $mission_duration, ]); $mission->rahdaran()->sync($request->rahdaran); diff --git a/app/Listeners/V3/Dashboard/Mission/SendDataToFMSListener.php b/app/Listeners/V3/Dashboard/Mission/SendDataToFMSListener.php index 250a1f51..22812e63 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_date->format('Y-m-d\TH:i:s'), + 'missionEndDT' => $mission->end_date->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..a2eb49b2 --- /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) { + // + }); + } +}; From a735080dfde74ce12f0e0ae8e96fb691aeeaa419 Mon Sep 17 00:00:00 2001 From: joddyabott Date: Tue, 23 Sep 2025 16:01:18 +0330 Subject: [PATCH 2/3] add drop column in mission migration --- .../2025_09_23_095848_add_column_to_missions_table.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 index a2eb49b2..b293d255 100644 --- 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 @@ -26,7 +26,7 @@ return new class extends Migration public function down(): void { Schema::table('missions', function (Blueprint $table) { - // + $table->dropColumn(['mission_duration', 'in_area_duration', 'first_enter', 'last_exit', 'point_number_sent']); }); } }; From 496d9446890336c37c7c31153b2fd484ae931011 Mon Sep 17 00:00:00 2001 From: joddyabott Date: Tue, 23 Sep 2025 16:08:49 +0330 Subject: [PATCH 3/3] change some action --- .../V3/Dashboard/Mission/ControlUnitController.php | 3 ++- .../V3/Dashboard/Mission/RequestPortalController.php | 6 ------ .../V3/Dashboard/Mission/SendDataToFMSListener.php | 4 ++-- 3 files changed, 4 insertions(+), 9 deletions(-) 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 e8e4e72d..23d8bd74 100644 --- a/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php +++ b/app/Http/Controllers/V3/Dashboard/Mission/RequestPortalController.php @@ -37,11 +37,6 @@ class RequestPortalController extends Controller $state = MissionStates::REQUEST_CREATED->value; $category = $request->category_id; - $start_timestamp = strtotime($request->start_date); - $end_timestamp = strtotime($request->end_date); - - $mission_duration = $end_timestamp - $start_timestamp; - $mission = Mission::query()->create([ 'user_id' => $user->id, 'username' => $user->username, @@ -66,7 +61,6 @@ class RequestPortalController extends Controller 'category_name' => MissionCategory::name($category), 'explanation' => $request->explanation, 'code' => rand(100000, 999999), - 'mission_duration' => $mission_duration, ]); $mission->rahdaran()->sync($request->rahdaran); diff --git a/app/Listeners/V3/Dashboard/Mission/SendDataToFMSListener.php b/app/Listeners/V3/Dashboard/Mission/SendDataToFMSListener.php index 22812e63..7d16db5c 100644 --- a/app/Listeners/V3/Dashboard/Mission/SendDataToFMSListener.php +++ b/app/Listeners/V3/Dashboard/Mission/SendDataToFMSListener.php @@ -29,8 +29,8 @@ class SendDataToFMSListener implements ShouldQueue $this->getErrorRateService->setInputParameters([ 'missionArea' => $mission->area['coordinates'], - 'missionStartDT' => $mission->start_date->format('Y-m-d\TH:i:s'), - 'missionEndDT' => $mission->end_date->format('Y-m-d\TH:i:s'), + '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, ]);