add station layer

This commit is contained in:
2025-12-22 09:53:02 +03:30
parent 7ba3d53155
commit 8abfd32be8
11 changed files with 118 additions and 32 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -16,11 +16,21 @@ class ControlUnitService
public function dataTable(Request $request)
{
$query = Mission::query()
->whereIn('state_id', [
$user = Auth::user();
$query = Mission::query()->whereIn('state_id', [
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(
$query,

View File

@@ -17,8 +17,11 @@ class RequestPortalService
$user = auth()->user();
$query = Mission::query();
if ($user->hasPermissionTo('manage-request-portal-city')) {
$query->where('edare_shahri_id', '=', $user->edarate_shahri_id);
if ($user->hasPermissionTo('manage-request-portal-station')) {
$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')) {
$query->where('province_id', '=', $user->province_id);

View File

@@ -12,9 +12,19 @@ class TransportationUnitService
{
public function dataTable(Request $request)
{
$query = Mission::query()
->whereIn('state_id', [MissionStates::REQUEST_CREATED->value, MissionStates::PENDING_CONFIRMATION->value])
->where('edare_shahri_id', '=', Auth::user()->edarate_shahri_id);
$user = Auth::user();
$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(
$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 () {
Route::name('requestPortal.')
->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)
->group(function () {
Route::get('/', 'index')->name('index');
@@ -497,7 +497,7 @@ Route::prefix('missions')
});
Route::name('transportationUnit.')
->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)
->group(function () {
Route::get('/', 'index')->name('index');
@@ -507,7 +507,7 @@ Route::prefix('missions')
});
Route::name('controlUnit.')
->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)
->group(function () {
Route::get('/', 'index')->name('index');