Merge pull request #109 from witelgroup/feature/NoProcess

add station layer
This commit is contained in:
Amir Ghasempoor
2025-12-22 10:17:40 +03:30
committed by GitHub
11 changed files with 118 additions and 32 deletions

View File

@@ -18,7 +18,7 @@ enum FMSResultCode: string
"-1" => "نام ﮐﺎرﺑﺮي ﯾﺎ ﮐﻠﻤﻪ ﻋﺒﻮر ﺻﺤﯿﺢ ﻧﯿﺴﺖ.", "-1" => "نام ﮐﺎرﺑﺮي ﯾﺎ ﮐﻠﻤﻪ ﻋﺒﻮر ﺻﺤﯿﺢ ﻧﯿﺴﺖ.",
"-2" => "خودرو با کد مورد نظر وجود ندارد یا دستگاه ردیاب به آن متصل نیست.", "-2" => "خودرو با کد مورد نظر وجود ندارد یا دستگاه ردیاب به آن متصل نیست.",
"-3" => "کاربر به خودرو مورد نظر دسترسی ندارد.", "-3" => "کاربر به خودرو مورد نظر دسترسی ندارد.",
"-4" => "ﺗﻌﺪاد دﻓﻌﺎت ﺟﺮاي ﺗﺎﺑﻊ ﺑﯿﺶ از ﺣﺪ ﻣﺠﺎز اﺳﺖ(اﯾﻦ ﺳﺮوﯾﺲ را در ﻫﺮ ثاﻧﯿﻪ ﻓﻘﻂ ﯾﮏ ﺑﺎر ﻣﯽﺗﻮان اﺟﺮاﮐﺮد)", "-4" => "ﺗﻌﺪاد دﻓﻌﺎت اﺟﺮاي ﺗﺎﺑﻊ ﺑﯿﺶ از ﺣﺪ ﻣﺠﺎز اﺳﺖ(اﯾﻦ ﺳﺮوﯾﺲ را در ﻫﺮ ثاﻧﯿﻪ ﻓﻘﻂ ﯾﮏ ﺑﺎر ﻣﯽﺗﻮان اﺟﺮاﮐﺮد)",
"-5" => "پارامتر های داده شده صحیح نیستند", "-5" => "پارامتر های داده شده صحیح نیستند",
]; ];

View File

@@ -69,6 +69,7 @@ class RequestPortalController extends Controller
'category_name' => MissionCategory::name($category), 'category_name' => MissionCategory::name($category),
'explanation' => $request->explanation, 'explanation' => $request->explanation,
'code' => rand(100000, 999999), 'code' => rand(100000, 999999),
'station_id' => $user->station_id
]); ]);
$mission->rahdaran()->sync($request->rahdaran); $mission->rahdaran()->sync($request->rahdaran);
@@ -108,10 +109,10 @@ class RequestPortalController extends Controller
'fms_result_message' => FMSResultCode::name($responseData['resultCode']), 'fms_result_message' => FMSResultCode::name($responseData['resultCode']),
]); ]);
if ($mission->category_id == 2) { // if ($mission->category_id == 2) {
$rpc = new OperatorController; // $rpc = new OperatorController;
$rpc->store($mission); // $rpc->store($mission);
} // }
$state = MissionStates::START_MISSION->value; $state = MissionStates::START_MISSION->value;
$category = $request->category_id; $category = $request->category_id;
@@ -142,6 +143,7 @@ class RequestPortalController extends Controller
'start_time' => now(), 'start_time' => now(),
'machine_id' => $machine->id, 'machine_id' => $machine->id,
'machine_code' => $machine->machine_code, 'machine_code' => $machine->machine_code,
'station_id' => $user->station_id
]); ]);
$newMission->rahdaran()->sync($request->rahdaran); $newMission->rahdaran()->sync($request->rahdaran);
@@ -207,6 +209,7 @@ class RequestPortalController extends Controller
$user = auth()->user(); $user = auth()->user();
$zone = $request->zone; $zone = $request->zone;
$state = MissionStates::END_MISSION->value; $state = MissionStates::END_MISSION->value;
$machine = CMMSMachine::query()->where('id', '=', $request->machine_id)->first(['id', 'machine_code']);
$mission = Mission::query()->create([ $mission = Mission::query()->create([
'user_id' => $user->id, 'user_id' => $user->id,
@@ -222,7 +225,6 @@ class RequestPortalController extends Controller
'start_date' => $request->start_date, 'start_date' => $request->start_date,
'end_date' => $request->end_date, 'end_date' => $request->end_date,
'end_point' => $request->end_point, 'end_point' => $request->end_point,
'area' => json_encode($request->area),
'category_id' => $request->category_id, 'category_id' => $request->category_id,
'category_name' => MissionCategory::name($request->category_id), 'category_name' => MissionCategory::name($request->category_id),
'start_time' => $request->start_date, 'start_time' => $request->start_date,
@@ -231,16 +233,18 @@ class RequestPortalController extends Controller
'state_name' => MissionStates::name($state), 'state_name' => MissionStates::name($state),
'explanation' => $request->explanation, 'explanation' => $request->explanation,
'request_date' => now(), 'request_date' => now(),
'machine_id' => $machine->id,
'machine_code' => $machine->machine_code,
'station_id' => $user->station_id
]); ]);
$mission->rahdaran()->sync($request->rahdaran); $mission->rahdaran()->sync($request->rahdaran);
$mission->machines()->attach($request->machines);
$mission->rahdaran()->attach($request->driver, ['is_driver' => true]); $mission->rahdaran()->attach($request->driver, ['is_driver' => true]);
if ($mission->category_id == 2) { // if ($mission->category_id == 2) {
$rpc = new OperatorController; // $rpc = new OperatorController;
$rpc->store($mission); // $rpc->store($mission);
} // }
}); });
return $this->successResponse(); return $this->successResponse();

View File

@@ -60,7 +60,6 @@ class ViolationManagementController extends Controller
'start_date' => $request->start_date,// 'start_date' => $request->start_date,//
'end_date' => $request->end_date,// 'end_date' => $request->end_date,//
'end_point' => $request->end_point, 'end_point' => $request->end_point,
'area' => json_encode($request->area),//
'category_id' => $request->category_id, 'category_id' => $request->category_id,
'category_name' => MissionCategory::name($request->category_id), 'category_name' => MissionCategory::name($request->category_id),
'start_time' => $request->start_date,// 'start_time' => $request->start_date,//
@@ -71,6 +70,7 @@ class ViolationManagementController extends Controller
'request_date' => now(), 'request_date' => now(),
'machine_id' => $machine->id,// 'machine_id' => $machine->id,//
'machine_code' => $machine->machine_code,// 'machine_code' => $machine->machine_code,//
'station_id' => $user->station_id
]); ]);
$mission->rahdaran()->sync($request->rahdaran); $mission->rahdaran()->sync($request->rahdaran);
@@ -78,10 +78,10 @@ class ViolationManagementController extends Controller
$violation->update(['status' => 1]); $violation->update(['status' => 1]);
if ($mission->category_id == 2) { // if ($mission->category_id == 2) {
$rpc = new OperatorController; // $rpc = new OperatorController;
$rpc->store($mission); // $rpc->store($mission);
} // }
}); });
return $this->successResponse(); return $this->successResponse();

View File

@@ -30,9 +30,9 @@ class NoProcessRequest extends FormRequest
'start_date' => 'required|date', 'start_date' => 'required|date',
'end_date' => 'required|date|after:start_date|before:now', 'end_date' => 'required|date|after:start_date|before:now',
'end_point' => 'required|string', 'end_point' => 'required|string',
'area' => 'required|array', // 'area' => 'required|array',
'area.type' => 'required|string', // 'area.type' => 'required|string',
'area.coordinates' => 'required|array', // 'area.coordinates' => 'required|array',
'category_id' => 'required|in:1,2,3', 'category_id' => 'required|in:1,2,3',
'explanation' => 'required|string', 'explanation' => 'required|string',
]; ];

View File

@@ -26,7 +26,7 @@ class UpdateRequest extends FormRequest
public function rules(): array public function rules(): array
{ {
return [ return [
'rahdaran' => 'required|array', 'rahdaran' => 'array',
'rahdaran.*' => 'exists:rahdaran,id', 'rahdaran.*' => 'exists:rahdaran,id',
'requested_machines' => 'required|array', 'requested_machines' => 'required|array',
'type' => 'required|in:1,2', 'type' => 'required|in:1,2',

View File

@@ -16,11 +16,21 @@ class ControlUnitService
public function dataTable(Request $request) public function dataTable(Request $request)
{ {
$query = Mission::query() $user = Auth::user();
->whereIn('state_id', [
$query = Mission::query()->whereIn('state_id', [
MissionStates::PENDING_CONFIRMATION->value, MissionStates::START_MISSION->value MissionStates::PENDING_CONFIRMATION->value, MissionStates::START_MISSION->value
]) ]);
->where('edare_shahri_id', '=', Auth::user()->edarate_shahri_id);
if ($user->hasPermissionTo('manage-control-unit-station')) {
$query->where('station_id', '=', $user->station_id);
}
elseif ($user->hasPermissionTo('manage-control-unit-city')) {
$query->where('city_id', '=', $user->city_id);
}
elseif ($user->hasPermissionTo('manage-control-unit-province')) {
$query->where('province_id', '=', $user->province_id);
}
return DataTableFacade::run( return DataTableFacade::run(
$query, $query,

View File

@@ -17,8 +17,11 @@ class RequestPortalService
$user = auth()->user(); $user = auth()->user();
$query = Mission::query(); $query = Mission::query();
if ($user->hasPermissionTo('manage-request-portal-city')) { if ($user->hasPermissionTo('manage-request-portal-station')) {
$query->where('edare_shahri_id', '=', $user->edarate_shahri_id); $query->where('station_id', '=', $user->station_id);
}
elseif ($user->hasPermissionTo('manage-request-portal-city')) {
$query->where('city_id', '=', $user->city_id);
} }
elseif ($user->hasPermissionTo('manage-request-portal-province')) { elseif ($user->hasPermissionTo('manage-request-portal-province')) {
$query->where('province_id', '=', $user->province_id); $query->where('province_id', '=', $user->province_id);

View File

@@ -12,9 +12,19 @@ class TransportationUnitService
{ {
public function dataTable(Request $request) public function dataTable(Request $request)
{ {
$query = Mission::query() $user = Auth::user();
->whereIn('state_id', [MissionStates::REQUEST_CREATED->value, MissionStates::PENDING_CONFIRMATION->value])
->where('edare_shahri_id', '=', Auth::user()->edarate_shahri_id); $query = Mission::query()->whereIn('state_id', [MissionStates::REQUEST_CREATED->value, MissionStates::PENDING_CONFIRMATION->value]);
if ($user->hasPermissionTo('manage-transportation-unit-station')) {
$query->where('station_id', '=', $user->station_id);
}
elseif ($user->hasPermissionTo('manage-transportation-unit-city')) {
$query->where('city_id', '=', $user->city_id);
}
elseif ($user->hasPermissionTo('manage-transportation-unit-province')) {
$query->where('province_id', '=', $user->province_id);
}
return DataTableFacade::run( return DataTableFacade::run(
$query, $query,

View File

@@ -0,0 +1,31 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('missions', function (Blueprint $table) {
$table->unsignedSmallInteger('station_id')->nullable();
$table->unsignedSmallInteger('city_id')->nullable();
$table->string('station_name')->nullable();
$table->string('city_name')->nullable();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('missions', function (Blueprint $table) {
$table->dropColumn(['station_id', 'city_id', 'station_name', 'city_name']);
});
}
};

View File

@@ -0,0 +1,28 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('users', function (Blueprint $table) {
$table->unsignedSmallInteger('station_id')->nullable();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('users', function (Blueprint $table) {
$table->dropColumn('station_id');
});
}
};

View File

@@ -484,7 +484,7 @@ Route::prefix('missions')
->group(function () { ->group(function () {
Route::name('requestPortal.') Route::name('requestPortal.')
->prefix('request_portal') ->prefix('request_portal')
->middleware('permission:manage-request-portal-city|manage-request-portal-province|manage-request-portal-country') ->middleware('permission:manage-request-portal-city|manage-request-portal-province|manage-request-portal-country|manage-request-portal-station')
->controller(RequestPortalController::class) ->controller(RequestPortalController::class)
->group(function () { ->group(function () {
Route::get('/', 'index')->name('index'); Route::get('/', 'index')->name('index');
@@ -497,7 +497,7 @@ Route::prefix('missions')
}); });
Route::name('transportationUnit.') Route::name('transportationUnit.')
->prefix('transportation_unit') ->prefix('transportation_unit')
->middleware('permission:manage-transportation-unit') ->middleware('permission:manage-transportation-unit-city|manage-transportation-unit-province|manage-transportation-unit-country|manage-transportation-unit-station')
->controller(TransportationUnitController::class) ->controller(TransportationUnitController::class)
->group(function () { ->group(function () {
Route::get('/', 'index')->name('index'); Route::get('/', 'index')->name('index');
@@ -507,7 +507,7 @@ Route::prefix('missions')
}); });
Route::name('controlUnit.') Route::name('controlUnit.')
->prefix('control_unit') ->prefix('control_unit')
->middleware('permission:manage-control-unit') ->middleware('permission:manage-control-unit-city|manage-control-unit-province|manage-control-unit-country|manage-control-unit-station')
->controller(ControlUnitController::class) ->controller(ControlUnitController::class)
->group(function () { ->group(function () {
Route::get('/', 'index')->name('index'); Route::get('/', 'index')->name('index');