Selaa lähdekoodia

Implementación de analisis de fallas

JeanBenitez 2 vuotta sitten
vanhempi
commit
1fb6485eae

+ 281 - 69
sistema-mantenimiento-back/app/Http/Controllers/CatalogFailureController.php

@@ -1,7 +1,7 @@
 <?php
 /*
     Desarrollador: Ing. Jean Jairo Benitez Meza
-    Ultima Modificación: 11/04/2023
+    Ultima Modificación: 15/09/2023
     Módulo: Analisis de Fallas
 */
 namespace App\Http\Controllers;
@@ -28,18 +28,22 @@ class CatalogFailureController extends Controller
         $this->functionsController = new FunctionsController();
     }
 
-    public function getFailures($line) {
+    public function getFailures($user, $line) {
         try {
             $getFailures = DB::table('S002V01TLIFA')
                 ->where('LIFA_NULI', '=', $line)
                 ->get([
-                    'LIFA_IDFA', // ID_FALLA
-                    'LIFA_NOFA', // FALLA
-                    'LIFA_ESTA', // ESTADO
-                    'LIFA_USRE', // USUARIO_REGISTRA
-                    'LIFA_FERE', // FECHA_REGISTRA
-                    'LIFA_USMO', // USUARIO_MODIFICA
-                    'LIFA_FEMO', // FECHA_MODIFICA
+                    'LIFA_IDFA AS ID_FALLA',
+                    'LIFA_NOFA AS NOMBRE_FALLA',
+                    'LIFA_NIVE AS NIVEL_CRITICIDAD',
+                    'LIFA_CAUS AS CAUSA_FALLA',
+                    'LIFA_SOLU AS SOLICION',
+                    'LIFA_DESC AS DESCRIPCION',
+                    'LIFA_ESTA AS ESTADO',
+                    'LIFA_USRE AS USUARIO_REGISTRA',
+                    'LIFA_FERE AS FECHA_REGISTRA',
+                    'LIFA_USMO AS USUARIO_MODIFICA',
+                    'LIFA_FEMO AS FECHA_MODIFICA',
                 ]);
         } catch (\Throwable $th) {
             return $this->responseController->makeResponse(true, "ERR_FAILURES_GET000: No se pudo realizar la consulta a la base.", [], 500);
@@ -53,13 +57,17 @@ class CatalogFailureController extends Controller
                 ->where('LIFA_ESTA', '=', 'Activo')
                 ->where('LIFA_NULI', '=', 1)
                 ->get([
-                    'LIFA_IDFA', // ID_FALLA
-                    'LIFA_NOFA', // FALLA
-                    'LIFA_ESTA', // ESTADO
-                    'LIFA_USRE', // USUARIO_REGISTRA
-                    'LIFA_FERE', // FECHA_REGISTRA
-                    'LIFA_USMO', // USUARIO_MODIFICA
-                    'LIFA_FEMO', // FECHA_MODIFICA
+                    'LIFA_IDFA AS ID_FALLA',
+                    'LIFA_NOFA AS NOMBRE_FALLA',
+                    'LIFA_NIVE AS NIVEL_CRITICIDAD',
+                    'LIFA_CAUS AS CAUSA_FALLA',
+                    'LIFA_SOLU AS SOLICION',
+                    'LIFA_DESC AS DESCRIPCION',
+                    'LIFA_ESTA AS ESTADO',
+                    'LIFA_USRE AS USUARIO_REGISTRA',
+                    'LIFA_FERE AS FECHA_REGISTRA',
+                    'LIFA_USMO AS USUARIO_MODIFICA',
+                    'LIFA_FEMO AS FECHA_MODIFICA',
                 ]);
         } catch (\Throwable $th) {
             return $this->responseController->makeResponse(true, "ERR_FAILURES_GET000: No se pudo realizar la consulta a la base.", [], 500);
@@ -67,9 +75,83 @@ class CatalogFailureController extends Controller
         return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $getFailures);
     }
 
+    public function getFailureById($idFailure, $user, $line) {
+        $idFailure = $this->encController->decrypt($idFailure);
+        try {
+            $arrFailures = (array) DB::table('S002V01TLIFA')
+                ->where('LIFA_IDFA', '=', $idFailure)
+                ->where('LIFA_NULI', '=', $line)
+                ->where('LIFA_ESTA', '=', 'Activo')
+                ->first([
+                    'LIFA_IDFA AS ID_FALLA',
+                    'LIFA_NOFA AS NOMBRE_FALLA',
+                    'LIFA_NIVE AS NIVEL_CRITICIDAD',
+                    'LIFA_CAUS AS CAUSA_FALLA',
+                    'LIFA_SOLU AS SOLICION',
+                    'LIFA_DESC AS DESCRIPCION',
+                    'LIFA_ESTA AS ESTADO',
+                    'LIFA_USRE AS USUARIO_REGISTRA',
+                    'LIFA_FERE AS FECHA_REGISTRA',
+                    'LIFA_USMO AS USUARIO_MODIFICA',
+                    'LIFA_FEMO AS FECHA_MODIFICA',
+                ]);
+        } catch (\Throwable $th) {
+            return $this->responseController->makeResponse(
+                true, 
+                "ERR_FAILURES_GETBYID000: No se pudo realizar la consulta a la base.", 
+                $th->getMessage(), 
+                500
+            );
+        }
+        if ( !empty($arrFailures) ) {
+            try {
+                $arrEquipment = DB::table('S002V01TLFEQ')
+                    ->where('LFEQ_IDFA', '=', $arrFailures['ID_FALLA'])
+                    ->where('LDEQ_NULI', '=', $line)
+                    ->where('LEFQ_ESTA', '=', 'Activo')
+                    ->where('EQUI_NULI', '=', $line)
+                    ->join('S002V01TEQUI', 'EQUI_COEQ', '=', 'LFEQ_COEQ')
+                    ->get([
+                        'EQUI_COEQ AS CODIGO',
+                        'EQUI_TIPO AS TIPO',
+                        'EQUI_MODE AS MODELO',
+                        'EQUI_IDEQ AS ID_EQUIPO',
+                        'EQUI_ESFU AS ESTADO_FUNCIONAMIENTO',
+                        // 'EQUI_GAIM AS GALERIA_IMAGENES',
+                        'EQUI_ELOR AS ELEMENTO_ORIGEN',
+                        'EQUI_TICO AS TIPO_CODIGO'
+                    ]);
+            } catch (\Throwable $th) {
+                return $this->responseController->makeResponse(
+                    true, 
+                    "ERR_FAILURES_GETBYID001: No se pudo realizar la consulta a la base.", 
+                    $th->getMessage(), 
+                    500
+                );
+            }
+    
+            $arrEquipment = json_decode( json_encode($arrEquipment), true );
+
+            foreach ($arrEquipment as $keyEquipment => $equipment) {
+                $equipment['ID_EQUIPO'] = strval($equipment['ID_EQUIPO']);
+                $arrEquipment[$keyEquipment] = $equipment;
+            }
+            $arrFailures['EQUIPAMIENTOS'] = $arrEquipment;
+        }
+
+        
+
+        return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrFailures);
+    }
+
     public function registerFailures(Request $request) {
         $validator = Validator::make($request->all(), [
-            'FALLA' => 'required|string',
+            'NOMBRE_FALLA' => 'required|string',
+            'NIVEL' => 'required|string',
+            'CAUSA' => 'required|string',
+            'SOLUCION' => 'required|string',
+            'DESCRIPCION' => 'required|string',
+            'EQUIPAMIENTOS' => 'required',
             'NUMERO_LINEA' => 'required|string',
             'USUARIO' => 'required|string',
         ]);
@@ -83,7 +165,7 @@ class CatalogFailureController extends Controller
         }
 
         DB::beginTransaction();
-        $request = $request->all();
+        $requestData = $request->all();
 
         try {
             $user = $this->encController->decrypt($request['USUARIO']);
@@ -91,37 +173,85 @@ class CatalogFailureController extends Controller
             DB::rollBack();
             return $this->responseController->makeResponse(true, "ERR_FAILURES_REG001: No se pudo obtener el usuario.", [], 500);
         }
-        $nameFailures = trim($request['FALLA']);
-        $line = $request['NUMERO_LINEA'];
+
         $now = $this->functionsController->now();
         $currentDate = $now->toDateTimeString();
 
-        $arrInsert = [
-            'LIFA_NOFA' => $nameFailures,
-            'LIFA_NULI' => $line,
-            'LIFA_USRE' => $user,
-            'LIFA_FERE' => $currentDate,
-            'LIFA_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
-        ];
         try {
-            $validatorRegister = DB::table('S002V01TLIFA')->insert($arrInsert);
+            $idFailure = DB::table('S002V01TLIFA')->insertGetId([
+                'LIFA_NULI' => $requestData['NUMERO_LINEA'],
+                'LIFA_NOFA' => $requestData['NOMBRE_FALLA'],
+                'LIFA_NIVE' => $requestData['NIVEL'],
+                'LIFA_CAUS' => $requestData['CAUSA'],
+                'LIFA_SOLU' => $requestData['SOLUCION'],
+                'LIFA_DESC' => $requestData['DESCRIPCION'],
+                'LIFA_USRE' => $user,
+                'LIFA_FERE' => $currentDate,
+                'LIFA_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
+            ]);
         } catch (\Throwable $th) {
             DB::rollBack();
-            return $this->responseController->makeResponse(true, "ERR_FAILURES_REG001: Ocurrió un error al insertar el formulario en la base de datos.", $th, 500);
+            return $this->responseController->makeResponse( 
+                true, 
+                "ERR_FAILURES_REG002: Ocurrió un error al registrar el formulario en la lista de falla.", 
+                $th->getMessage(), 
+                500
+            );
         }
-
-        if (!$validatorRegister) {
+        if ( !$idFailure ) {
             DB::rollBack();
-            return $this->responseController->makeResponse(true, "ERR_FAILURES_REG002: No se pudo insertar el formulario en la base de datos.", [], 500);
+            return $this->responseController->makeResponse(
+                true, 
+                "ERR_FAILURES_REG003: No se pudo registrar el formulario en la lista de falla.", 
+                [], 
+                500
+            );
+        }
+
+        foreach ($requestData['EQUIPAMIENTOS'] as $keyEquipment => $equipment) {
+            try {
+                $validateRegisterEquipment = DB::table('S002V01TLFEQ')->insert([
+                    'LDEQ_NULI' => $requestData['NUMERO_LINEA'],
+                    'LFEQ_IDFA' => $idFailure,
+                    'LFEQ_COEQ' => $equipment,
+                    'LFEQ_USRE' => $user,
+                    'LFEQ_FERE' => $currentDate,
+                    'LFEQ_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
+                ]);
+            } catch (\Throwable $th) {
+                DB::rollBack();
+                return $this->responseController->makeResponse( 
+                    true, 
+                    "ERR_FAILURES_REG004: Ocurrió un error al registrar el formulario en la lista de falla.", 
+                    $th->getMessage(), 
+                    500
+                );
+            }
+
+            if ( !$validateRegisterEquipment ) {
+                DB::rollBack();
+                return $this->responseController->makeResponse(
+                    true, 
+                    "ERR_FAILURES_REG005: No se pudo registrar el equipamiento $equipment en la lista de fallas.", 
+                    [], 
+                    500
+                );
+            }
         }
+        
         DB::commit();
         return $this->responseController->makeResponse(false, "ÉXITO: Registro Exitoso");
     }
 
     public function updateFailures(Request $request) {
         $validator = Validator::make($request->all(), [
-            'ID_FALLA' => 'required|string',
-            'FALLA' => 'required|string',
+            'ID_FALLA' => 'required|integer',
+            'NOMBRE_FALLA' => 'required|string',
+            'NIVEL' => 'required|string',
+            'CAUSA' => 'required|string',
+            'SOLUCION' => 'required|string',
+            'DESCRIPCION' => 'required|string',
+            'EQUIPAMIENTOS' => 'required',
             'NUMERO_LINEA' => 'required|string',
             'USUARIO' => 'required|string',
         ]);
@@ -135,54 +265,123 @@ class CatalogFailureController extends Controller
         }
 
         DB::beginTransaction();
-        $request = $request->all();
+        $requestData = $request->all();
 
-        $idFailure = trim($request['ID_FALLA']);
-        $nameFailures = trim($request['FALLA']);
         try {
             $user = $this->encController->decrypt($request['USUARIO']);
         } catch (\Throwable $th) {
             DB::rollBack();
-            return $this->responseController->makeResponse(true, "ERR_FAILURES_REG001: No se pudo obtener el usuario.", [], 500);
+            return $this->responseController->makeResponse(true, "ERR_FAILURES_UPD001: No se pudo obtener el usuario.", [], 500);
         }
-        $line = $request['NUMERO_LINEA'];
 
         $now = $this->functionsController->now();
         $currentDate = $now->toDateTimeString();
 
         try {
-            $exist = DB::table('S002V01TLIFA')->where('LIFA_IDFA', '=', $idFailure)->exists();
+            $idFailure = DB::table('S002V01TLIFA')
+                ->where('LIFA_NULI', '=', $requestData['NUMERO_LINEA'])    
+                ->where('LIFA_IDFA', '=', $requestData['ID_FALLA'])    
+                ->update([
+                    'LIFA_NOFA' => $requestData['NOMBRE_FALLA'],
+                    'LIFA_NIVE' => $requestData['NIVEL'],
+                    'LIFA_CAUS' => $requestData['CAUSA'],
+                    'LIFA_SOLU' => $requestData['SOLUCION'],
+                    'LIFA_DESC' => $requestData['DESCRIPCION'],
+                    'LIFA_USMO' => $user,
+                    'LIFA_FEMO' => $currentDate,
+                    'LIFA_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
+                ]);
         } catch (\Throwable $th) {
             DB::rollBack();
-            return $this->responseController->makeResponse(true, "ERR_FAILURES_UPD001: Ocurrió un error al consultar en la base de datos.", $th, 500);
+            return $this->responseController->makeResponse( 
+                true, 
+                "ERR_FAILURES_UPD002: Ocurrió un error al modificar el formulario en la lista de falla.", 
+                $th->getMessage(), 
+                500
+            );
         }
 
-        if (!$exist) {
+        if ( !$idFailure ) {
             DB::rollBack();
-            return $this->responseController->makeResponse(true, "ERR_FAILURES_UPD002: No se pudo encontrar el registro dentro de la base de datos.", [], 500);
+            return $this->responseController->makeResponse(
+                true, 
+                "ERR_FAILURES_UPD003: No se pudo modificar el formulario en la lista de falla.", 
+                [], 
+                500
+            );
         }
 
-        $arrUpdate = [
-            'LIFA_NOFA' => $nameFailures,
-            'LIFA_USMO' => $user,
-            'LIFA_FEMO' => $currentDate,
-            'LIFA_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
-        ];
-        try {
-            $response = DB::table('S002V01TLIFA')->where('LIFA_IDFA', '=', $idFailure)->where('LIFA_NULI', '=', $line)->update($arrUpdate);
-        } catch (\Throwable $th) {
-            DB::rollBack();
-            return $this->responseController->makeResponse(true, "ERR_FAILURES_UPD003: Ocurrió un error al modificar el formulario en la base de datos.", $th, 500);
-        }
+        foreach ($requestData['EQUIPAMIENTOS'] as $keyEquipment => $equipment) {
 
-        if (!$response) {
-            DB::rollBack();
-            return $this->responseController->makeResponse(true, "ERR_FAILURES_UPD004: No se pudo modificar el formulario en la base de datos.", [], 500);
-        }
+            try {
+                $validateExists = DB::table('S002V01TLFEQ')
+                    ->where('LFEQ_IDFA', '=', $requestData['ID_FALLA'])
+                    ->where('LEFQ_COEQ', '=', $equipment)
+                    ->where('LFEQ_NULI', '=', $requestData['NUMERO_LINEA'])
+                    ->exists();
+            } catch (\Throwable $th) {
+                DB::rollBack();
+                return $this->responseController->makeResponse(
+                    true, 
+                    "ERR_FAILURES_UPD004: No se pudo modificar el formulario en la lista de falla.", 
+                    [], 
+                    500
+                );
+            }
 
+            if ( $validateExists ) {
+                try {
+                    $validate = DB::table('S002V01TLFEQ')
+                        ->where('LDEQ_NULI', '=', $requestData['NUMERO_LINEA'])
+                        ->where('LFEQ_IDFA', '=', $requestData['ID_FALLA'])
+                        ->update([
+                            'LFEQ_COEQ' => $equipment,
+                            'LFEQ_USMO' => $user,
+                            'LFEQ_FEMO' => $currentDate,
+                            'LFEQ_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
+                        ]);
+                } catch (\Throwable $th) {
+                    DB::rollBack();
+                    return $this->responseController->makeResponse( 
+                        true, 
+                        "ERR_FAILURES_UPD005: Ocurrió un error al modificar el formulario en la lista de falla el equipamiento $equipment.", 
+                        $th->getMessage(), 
+                        500
+                    );
+                }
+            } else {
+                try {
+                    $validate = DB::table('S002V01TLFEQ')->insert([
+                        'LDEQ_NULI' => $requestData['NUMERO_LINEA'],
+                        'LFEQ_IDFA' => $requestData['ID_FALLA'],
+                        'LFEQ_COEQ' => $equipment,
+                        'LFEQ_USRE' => $user,
+                        'LFEQ_FERE' => $currentDate,
+                        'LFEQ_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
+                    ]);
+                } catch (\Throwable $th) {
+                    DB::rollBack();
+                    return $this->responseController->makeResponse( 
+                        true, 
+                        "ERR_FAILURES_UPD006: Ocurrió un error al registrar el formulario en la lista de falla el equipamiento $equipment.", 
+                        $th->getMessage(), 
+                        500
+                    );
+                }
+            }
+            if ( !$validate ) {
+                DB::rollBack();
+                return $this->responseController->makeResponse(
+                    true, 
+                    "ERR_FAILURES_UPD007: No se pudo modificar el equipamiento $equipment en la lista de fallas.", 
+                    [], 
+                    500
+                );
+            }
+        }
+        
         DB::commit();
         return $this->responseController->makeResponse(false, "ÉXITO: Modificación Exitosa");
-
     }
 
     public function deleteFailures(Request $request) {
@@ -204,6 +403,7 @@ class CatalogFailureController extends Controller
         $request = $request->all();
 
         $idFailure = trim($request['ID_FALLA']);
+        
         try {
             $user = $this->encController->decrypt($request['USUARIO']);
         } catch (\Throwable $th) {
@@ -216,35 +416,47 @@ class CatalogFailureController extends Controller
         $currentDate = $now->toDateTimeString();
 
         try {
-            $exist = DB::table('S002V01TLIFA')->where('LIFA_IDFA', '=', $idFailure)->exists();
+            $exist = DB::table('S002V01TLIFA')
+                ->where([
+                    ['LIFA_IDFA', '=', $idFailure],
+                    ['LIFA_NULI', '=', $line]
+                ])
+                ->get();
         } catch (\Throwable $th) {
             DB::rollBack();
             return $this->responseController->makeResponse(true, "ERR_FAILURES_DEL001: Ocurrió un error al consultar en la base de datos.", $th, 500);
         }
 
+        
         if (!$exist) {
             DB::rollBack();
             return $this->responseController->makeResponse(true, "ERR_FAILURES_DEL002: No se pudo encontrar el registro dentro de la base de datos.", [], 500);
         }
 
-        $arrUpdate = [
-            'LIFA_ESTA' => 'Eliminado',
-            'LIFA_USMO' => $user,
-            'LIFA_FEMO' => $currentDate,
-            'LIFA_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
-        ];
         try {
-            $response = DB::table('S002V01TLIFA')->where('LIFA_IDFA', '=', $idFailure)->where('LIFA_NULI', '=', $line)->update($arrUpdate);
+            $validateUpdate = DB::table('S002V01TLIFA')
+                ->where([
+                    ['LIFA_IDFA', '=', $idFailure],
+                    ['LIFA_NULI', '=', $line]
+                ])
+                ->update([
+                    'LIFA_ESTA' => 'test',
+                    'LIFA_USMO' => $user,
+                    'LIFA_FEMO' => $currentDate,
+                    'LIFA_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
+                ]);
         } catch (\Throwable $th) {
             DB::rollBack();
             return $this->responseController->makeResponse(true, "ERR_FAILURES_DEL003: Ocurrió un error al modificar el formulario en la base de datos.", $th, 500);
         }
 
-        if (!$response) {
+
+        if (!$validateUpdate) {
             DB::rollBack();
             return $this->responseController->makeResponse(true, "ERR_FAILURES_DEL004: No se pudo modificar el formulario en la base de datos.", [], 500);
         }
 
+        DB::commit();
         return $this->responseController->makeResponse(false, "ÉXITO: Eliminación Exitosa");
     }
 

+ 7 - 2
sistema-mantenimiento-back/app/Http/Controllers/DocumentManagementController.php

@@ -829,19 +829,24 @@ class DocumentManagementController extends Controller{
           ['AFAL_NUVE', '=', $idArr[1]],
       ])->first();
 
+
       if(is_null($file)){
           return $this->responseController->makeResponse(true, 'El archivo solicitado no está registrado.', [], 404);
       }
 
+      
       $ubicArr = explode('storage', $file->AFAL_UBIC);
-      $publicUbi = "$ubicArr[0]public_files\\$id";
+      //   $publicUbi = "$ubicArr[0]public_files\\$id";
+      $publicUbi = "$ubicArr[0]public\public_files\\$id";                                                                      // PRUEBAS JEAN
 
       if(!file_exists($publicUbi)){
           copy($file->AFAL_UBIC, $publicUbi);
       }
 
       $apiURI = $this->functionsController->getApiURI();
-      $publicUbiStr = str_replace('C:\inetpub\wwwroot\\', $apiURI, $publicUbi);
+      $apiURI = 'http://192.168.100.105:8000/';                                                                                 // PRUEBAS JEAN
+      // $publicUbiStr = str_replace('C:\inetpub\wwwroot\\', $apiURI, $publicUbi);  
+      $publicUbiStr = str_replace('C:\ITTEC\SAM\Dev\SistemaMantenimiento\sistema-mantenimiento-back\public\\', $apiURI, $publicUbi);   // PRUEBAS JEAN
       $publicUbiStr = str_replace('\\', '/', $publicUbiStr);
 
       $now = $this->functionsController->now();

+ 6 - 1
sistema-mantenimiento-back/app/Http/Controllers/DynamicFormController.php

@@ -15,6 +15,8 @@ use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Validator;
 use App\Http\Controllers\FunctionsController;
 
+use Illuminate\Support\Facades\Schema;
+
 class DynamicFormController extends Controller
 {
     private $responseController;
@@ -398,10 +400,13 @@ class DynamicFormController extends Controller
     private function getPrimaryKeyData($table_name_main): array {
 
         $databaseName = DB::connection()->getDatabaseName();
-
         $qry = "SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH AS LENGTH FROM INFORMATION_SCHEMA.COLUMNS
             WHERE TABLE_SCHEMA = '".$databaseName."' AND TABLE_NAME = '".$table_name_main."' AND COLUMN_KEY = 'PRI'";
+        
         try{
+            $response =  Schema::getConnection()->getDoctrineSchemaManager()->listTableIndexes($table_name_main);
+            var_dump($response);
+
             $resp = DB::select(DB::raw($qry));
         } catch(\Exception $th) {
             return [

+ 1 - 1
sistema-mantenimiento-back/app/Http/Controllers/TableController.php

@@ -26,7 +26,7 @@ class TableController extends Controller
         $this->encController = new EncryptionController();
         $this->functionsController = new FunctionsController();
     }
-
+    
     public function getTables($user, $line){
         try {
             $data = DB::table('S002V01TTABL')

+ 18 - 17
sistema-mantenimiento-back/routes/api.php

@@ -374,23 +374,24 @@ Route::middleware(['jwt.auth'])->group(function(){
     Route::post('acquisition-management/invoice/compare-invoice', [InvoiceControlController::class, 'compareInvoice']);
 
     // Module: ANFA
-    Route::get ('failure-analysis/get-catalog-failure/{user}/{line}',                                                      [CatalogFailureController::class,  'getFailures']);
-    Route::post('failure-analysis/register-catalog-failure',                                                        [CatalogFailureController::class,  'registerFailures']);
-    Route::post('failure-analysis/update-catalog-failure',                                                          [CatalogFailureController::class,  'updateFailures']);
-    Route::post('failure-analysis/delete-catalog-failure',                                                          [CatalogFailureController::class,  'deleteFailures']);
-    Route::get ('failure-analysis/get-failure/{user}/{line}',                                                              [FailureController::class,         'getFault']);
-    Route::post('failure-analysis/get-failure-by-equipment',                                                        [FailureController::class,         'getFaultByEquipment']);
-    Route::post('failure-analysis/register-failure',                                                                [FailureController::class,         'registerFault']);
-    Route::post('failure-analysis/update-failure',                                                                  [FailureController::class,         'updateFault']);
-    Route::post('failure-analysis/delete-failure',                                                                  [FailureController::class,         'deleteFault']);
-    Route::get ('failure-analysis/get-catalog-measures/{user}/{line}',                                                     [CatalogMeasuresController::class, 'getMeasures']);
-    Route::post('failure-analysis/register-catalog-measures',                                                       [CatalogMeasuresController::class, 'registerMeasures']);
-    Route::post('failure-analysis/update-catalog-measures',                                                         [CatalogMeasuresController::class, 'updateMeasures']);
-    Route::post('failure-analysis/delete-catalog-measures',                                                         [CatalogMeasuresController::class, 'deleteMeasures']);
-    Route::get ('failure-analysis/get-symptom/{user}/{line}',                                                              [SymptomController::class,         'getSymptom']);
-    Route::post('failure-analysis/register-symptom',                                                                [SymptomController::class,         'registerSymptom']);
-    Route::post('failure-analysis/update-symptom',                                                                  [SymptomController::class,         'updateSymptom']);
-    Route::post('failure-analysis/delete-symptom',                                                                  [SymptomController::class,         'deleteSymptom']);
+    Route::get ('failure-analysis/get-catalog-failure/{user}/{line}',                       [CatalogFailureController::class,  'getFailures']);
+    Route::get ('failure-analysis/get-catalog-failure-by-id/{idFailure}/{user}/{line}',     [CatalogFailureController::class,  'getFailureById']);
+    Route::post('failure-analysis/register-catalog-failure',                                [CatalogFailureController::class,  'registerFailures']);
+    Route::post('failure-analysis/update-catalog-failure',                                  [CatalogFailureController::class,  'updateFailures']);
+    Route::post('failure-analysis/delete-catalog-failure',                                  [CatalogFailureController::class,  'deleteFailures']);
+    Route::get ('failure-analysis/get-failure/{user}/{line}',                               [FailureController::class,         'getFault']);
+    Route::post('failure-analysis/get-failure-by-equipment',                                [FailureController::class,         'getFaultByEquipment']);
+    Route::post('failure-analysis/register-failure',                                        [FailureController::class,         'registerFault']);
+    Route::post('failure-analysis/update-failure',                                          [FailureController::class,         'updateFault']);
+    Route::post('failure-analysis/delete-failure',                                          [FailureController::class,         'deleteFault']);
+    Route::get ('failure-analysis/get-catalog-measures/{user}/{line}',                      [CatalogMeasuresController::class, 'getMeasures']);
+    Route::post('failure-analysis/register-catalog-measures',                               [CatalogMeasuresController::class, 'registerMeasures']);
+    Route::post('failure-analysis/update-catalog-measures',                                 [CatalogMeasuresController::class, 'updateMeasures']);
+    Route::post('failure-analysis/delete-catalog-measures',                                 [CatalogMeasuresController::class, 'deleteMeasures']);
+    Route::get ('failure-analysis/get-symptom/{user}/{line}',                               [SymptomController::class,         'getSymptom']);
+    Route::post('failure-analysis/register-symptom',                                        [SymptomController::class,         'registerSymptom']);
+    Route::post('failure-analysis/update-symptom',                                          [SymptomController::class,         'updateSymptom']);
+    Route::post('failure-analysis/delete-symptom',                                          [SymptomController::class,         'deleteSymptom']);
     
     Route::get ('locate/postal-code-data/{postal_code}/{line_number}',             [LocateController::class,        'getDataByPostalCode']);
     Route::get ('locate/countries/{line_number}',                                  [LocateController::class,        'getCountries']);