소스 검색

Modificaciones generales 2

JeanBenitez 1 년 전
부모
커밋
abb2449f1a

+ 28 - 7
sistema-mantenimiento-back/app/Http/Controllers/DynamicFormController.php

@@ -14,6 +14,7 @@ use Illuminate\Support\Carbon;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Validator;
 use App\Http\Controllers\FunctionsController;
+use App\Http\Controllers\ResourcesController;
 
 use Illuminate\Support\Facades\Schema;
 
@@ -22,33 +23,53 @@ class DynamicFormController extends Controller
     private $responseController;
     private $encController;
     private $functionsController;
+    private $resourcesController;
 
     public function __construct(){
         $this->responseController = new ResponseController();
         $this->encController = new EncryptionController();
         $this->functionsController = new FunctionsController();
+        $this->resourcesController = new ResourcesController();
     }
 
     // Obtener formularios
-    public function getForm($user, $line){
+    public function getForms($user, $line){
+
+        $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
+        if ($arrResponseCheckUser['error']) {
+            DB::rollBack();
+            return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
+        }
+
         try{
-            $res = DB::table('S002V01TFODI')
+            $arrForms = DB::table('S002V01TFODI')
                 ->where('FODI_NULI', '=', $line)
                 ->join('S002V01TMODU', 'MODU_IDMO', '=', 'FODI_IDMO')
                 ->get([
-                    'FODI_NUFO AS CODIGO_FORM',
+                    'FODI_NUFO AS CODIGO_FORMULARIO',
                     'FODI_TIRE AS TITULO_REGISTRO',
                     'FODI_TIMO AS TITULO_MODIFICACION',
                     'MODU_NOMO AS MODULO',
-                    'FODI_FERE AS FECHA_REG',
-                    'FODI_FEMO AS FECHA_MOD',
                     'FODI_ESTA AS ESTADO',
-                    'FODI_WOFL AS WORKFLOW'
+                    'FODI_WOFL AS WORKFLOW',
+                    'FODI_USRE AS USUARIO_REGISTRA',
+                    'FODI_FERE AS FECHA_REGISTRA',
+                    'FODI_USMO AS USUARIO_MODIFICA',
+                    'FODI_FEMO AS FECHA_MODIFICA',
                 ]);
+            $arrForms = json_decode(json_encode($arrForms));
         } catch (\Throwable $th) {
             return $this->responseController->makeResponse(true, "ERR_DYNFORM_GET000: No se pudo realizar la consulta a la base.", $th->getMessage(), 500);
         }
-        return $this->responseController->makeResponse(false, "ÉXITO", $res);
+
+        $responseCheckLatestUpdate = $this->resourcesController->checkLatestUpdate($arrForms, $line);
+        if ($responseCheckLatestUpdate['error']) {
+            return $this->responseController->makeResponse(true, $responseCheckLatestUpdate['msg'], [], 500);
+        }
+        $arrForms = $responseCheckLatestUpdate['response'];
+
+
+        return $this->responseController->makeResponse(false, "ÉXITO", $arrForms);
     }
 
     // Obtener un formulario especifico para editar los datos del formulario

+ 20 - 2
sistema-mantenimiento-back/app/Http/Controllers/FailureListController.php

@@ -10,6 +10,7 @@ use App\Http\Controllers\Controller;
 use App\Http\Controllers\ResponseController;
 use App\Http\Controllers\FunctionsController;
 use App\Http\Controllers\EncryptionController;
+use App\Http\Controllers\ResourcesController;
 use Illuminate\Http\Request;
 use Illuminate\Support\Carbon;
 use Illuminate\Support\Facades\DB;
@@ -21,16 +22,25 @@ class FailureListController extends Controller
     private $responseController;
     private $encController;
     private $functionsController;
+    private $resourcesController;
 
     public function __construct() {
         $this->responseController = new ResponseController();
         $this->encController = new EncryptionController();
         $this->functionsController = new FunctionsController();
+        $this->resourcesController = new ResourcesController();
     }
 
     public function getFailures($user, $line) {
+
+        $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
+        if ($arrResponseCheckUser['error']) {
+            DB::rollBack();
+            return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
+        }
+
         try {
-            $getFailures = DB::table('S002V01TLIFA')
+            $arrFailures = DB::table('S002V01TLIFA')
                 ->where('LIFA_NULI', '=', $line)
                 ->get([
                     'LIFA_IDFA AS ID_FALLA',
@@ -45,10 +55,18 @@ class FailureListController extends Controller
                     'LIFA_USMO AS USUARIO_MODIFICA',
                     'LIFA_FEMO AS FECHA_MODIFICA',
                 ]);
+            $arrFailures = json_decode(json_encode($arrFailures), true);
         } catch (\Throwable $th) {
             return $this->responseController->makeResponse(true, "ERR_FAILURES_GET000: No se pudo realizar la consulta a la base.", $th->getMessage(), 500);
         }
-        return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $getFailures);
+
+        $responseCheckLatestUpdate = $this->resourcesController->checkLatestUpdate($arrFailures, $line);
+        if ($responseCheckLatestUpdate['error']) {
+            return $this->responseController->makeResponse(true, $responseCheckLatestUpdate['msg'], [], 500);
+        }
+        $arrFailures = $responseCheckLatestUpdate['response'];
+
+        return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrFailures);
     }
 
     public function getFailuresActives($user, $line) {

+ 17 - 8
sistema-mantenimiento-back/app/Http/Controllers/FailureLogController.php

@@ -139,6 +139,13 @@ class FailureLogController extends Controller
     }
 
     public function getHistoryFailureEquipment($equipment, $user, $line) {
+
+        $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
+        if ($arrResponseCheckUser['error']) {
+            DB::rollBack();
+            return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
+        }
+        
         try {
             $equipment = $this->encController->decrypt($equipment);    
         } catch (\Throwable $th) {
@@ -205,10 +212,6 @@ class FailureLogController extends Controller
 
             $reparable = $failureLogTemp['REPARABLE'] === 1 ? 'Si' : 'No';
 
-            $usuario_registra = is_null($failureLogTemp['USUARIO_MODIFICA']) ?  $failureLogTemp['USUARIO_REGISTRA'] : $failureLogTemp['USUARIO_MODIFICA'];
-
-            $fecha_registra = is_null($failureLogTemp['FECHA_MODIFICA']) ?  $failureLogTemp['FECHA_REGISTRA'] : $failureLogTemp['FECHA_MODIFICA'];
-
             $arrFailureLog[] = [
                 'NUMERO_FALLA' => $numero_falla,
                 'NOMBRE_FALLA' => $nombre_falla,
@@ -217,14 +220,20 @@ class FailureLogController extends Controller
                 'CAUSA' => $causa,
                 'FECHA_FALLA' => $fecha_fala,
                 'REPARABLE' => $reparable,
-                'USUARIO_REGISTRA' => $usuario_registra,
-                'FECHA_REGISTRA' => $fecha_registra,
+                'USUARIO_REGISTRA' => $failureLogTemp['USUARIO_REGISTRA'],
+                'FECHA_REGISTRA' => $failureLogTemp['FECHA_REGISTRA'],
+                'USUARIO_MODIFICA' =>$failureLogTemp['USUARIO_MODIFICA'],
+                'FECHA_MODIFICA' => $failureLogTemp['FECHA_MODIFICA'],
             ];
         }
 
-        return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrFailureLog);
+        $responseCheckLatestUpdate = $this->resourcesController->checkLatestUpdate($arrFailureLog, $line);
+        if ($responseCheckLatestUpdate['error']) {
+            return $this->responseController->makeResponse(true, $responseCheckLatestUpdate['msg'], [], 500);
+        }
+        $arrFailureLog = $responseCheckLatestUpdate['response'];
 
-        
+        return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrFailureLog);
     }
 
     public function getDetailsHistoryFailureEquipment($failure, $user, $line) {

+ 41 - 2
sistema-mantenimiento-back/app/Http/Controllers/FunctionsController.php

@@ -13,7 +13,7 @@ class FunctionsController extends Controller{
     private $responseController;
 
     public function __construct(){
-      $this->responseController = new ResponseController();
+        $this->responseController = new ResponseController();
     }
 
     public static function uuidv5($namespace, $name) {
@@ -325,7 +325,7 @@ class FunctionsController extends Controller{
     }
 
     public function getApiURI(): string {
-      return "http://git.ittec.mx/";
+        return "http://git.ittec.mx/";
     }
 
     public function validPhoneNumber(string $number) : bool {
@@ -450,4 +450,43 @@ class FunctionsController extends Controller{
         $d = DateTime::createFromFormat($format, $date);
         return $d && $d->format($format) == $date;
     }
+
+    public function getDatesDifference($startDate, $endDate) {
+        $startDateObj = new Carbon($startDate);
+        $endDateObj = new Carbon($endDate);
+
+        $startDateNum = $startDateObj->timestamp;
+        $endDateNum = $endDateObj->timestamp;
+
+        $differenceStr = "";
+        $diffInSecs = $this->floatSub($endDateNum, $startDateNum);
+        $diffInMins = intval($this->floatDiv($diffInSecs, 60));
+        if($diffInMins <= 0){
+            $differenceStr = "$diffInSecs segundos.";
+            return $differenceStr;
+        }else{
+            $seconds = $diffInSecs - ($diffInMins * 60);
+            $differenceStr = "$seconds segundos.";
+        }
+
+        $diffInHours = intval($this->floatDiv($diffInMins, 60));
+        if($diffInHours <= 0){
+            $differenceStr = "$diffInMins minutos.";
+            return $differenceStr;
+        }else{
+            $minutes = $diffInMins - ($diffInHours * 60);
+            $differenceStr = "$minutes minutos, $differenceStr";
+        }
+
+        $diffInDays = intval($this->floatDiv($diffInHours, 24));
+        if($diffInDays <= 0){
+            $differenceStr = "$diffInHours horas.";
+            return $differenceStr;
+        }else{
+            $hours = $diffInHours - ($diffInDays * 24);
+            $differenceStr = "$hours horas, $differenceStr";
+        }
+        
+        return "$diffInDays días, $differenceStr";
+    }
 }

+ 7 - 5
sistema-mantenimiento-back/app/Http/Controllers/InterventionController.php

@@ -286,11 +286,13 @@ class InterventionController extends Controller{
                     ['AFAL_NUVE', '=', $docIDArr[1]],
                 ])->first();
 
-                $docsFN[] = [
-                    'id' => $this->encryptionController->encrypt($doc),
-                    'name' => $doc,
-                    'size' => $file->AFAL_TAMA
-                ];
+                if (!is_null($file)) {
+                    $docsFN[] = [
+                        'id' => $this->encryptionController->encrypt($doc),
+                        'name' => $doc,
+                        'size' => $file->AFAL_TAMA
+                    ];
+                }
             }
 
             $contract->DOCUMENT = json_encode($docsFN);

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

@@ -9,6 +9,7 @@ namespace App\Http\Controllers;
 use App\Http\Controllers\Controller;
 use App\Http\Controllers\ResponseController;
 use App\Http\Controllers\EncryptionController;
+use App\Http\Controllers\ResourcesController;
 use Illuminate\Http\Request;
 use Illuminate\Support\Carbon;
 use Illuminate\Support\Facades\DB;
@@ -20,14 +21,23 @@ class SymptomListController extends Controller
     private $responseController;
     private $encController;
     private $functionsController;
+    private $resourcesController;
 
     public function __construct( ) {
         $this->responseController = new ResponseController();
         $this->encController = new EncryptionController();
         $this->functionsController = new FunctionsController();
+        $this->resourcesController = new ResourcesController();
     }
 
     public function getSymptoms($user, $line) {
+
+        $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
+        if ($arrResponseCheckUser['error']) {
+            DB::rollBack();
+            return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
+        }
+
         try {
             $getSymptom = DB::table('S002V01TLISI')
                 ->where('LISI_NULI', '=', $line)
@@ -51,6 +61,7 @@ class SymptomListController extends Controller
                     'LISI_USMO AS USUARIO_MODIFICA',
                     'LISI_FEMO AS FECHA_MODIFICA',
                 ]);
+            $arrSymtoms = json_decode( json_encode($getSymptom), true );
         } catch (\Throwable $th) {
             return $this->responseController->makeResponse(
                 true, 
@@ -60,7 +71,11 @@ class SymptomListController extends Controller
             );
         }
 
-        $arrSymtoms = json_decode( json_encode($getSymptom), true );
+        $responseCheckLatestUpdate = $this->resourcesController->checkLatestUpdate($arrSymtoms, $line);
+        if ($responseCheckLatestUpdate['error']) {
+            return $this->responseController->makeResponse(true, $responseCheckLatestUpdate['msg'], [], 500);
+        }
+        $arrSymtoms = $responseCheckLatestUpdate['response'];
 
         return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrSymtoms);
     }

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

@@ -2906,7 +2906,8 @@ class SystemAdministratorController extends Controller{
             return $this->responseController->makeResponse(true, 'El usuario que realizó la consulta no está registrado.', [], 404);
         }
 
-        $iconsStr = file_get_contents("C:\\inetpub\\wwwroot\\sam\\storage\\app\\files\\icons.json");
+        
+        $iconsStr = file_get_contents("C:\\ITTEC\\SAM\\Dev\\SistemaMantenimiento\\sistema-mantenimiento-back\\storage\\app\\files\\icons.json");
         $iconsArr = json_decode($iconsStr, true);
         $icons = $iconsArr['icons'];
 

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

@@ -14,22 +14,32 @@ use Illuminate\Support\Carbon;
 use Illuminate\Support\Facades\DB;
 use Illuminate\Support\Facades\Validator;
 use App\Http\Controllers\FunctionsController;
+use App\Http\Controllers\ResourcesController;
 
 class TableController extends Controller
 {
     private $responseController;
     private $encController;
     private $functionsController;
+    private $resourcesController;
     
     public function __construct(){
         $this->responseController = new ResponseController();
         $this->encController = new EncryptionController();
         $this->functionsController = new FunctionsController();
+        $this->resourcesController = new ResourcesController();
     }
     
     public function getTables($user, $line){
+
+        $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
+        if ($arrResponseCheckUser['error']) {
+            DB::rollBack();
+            return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
+        }
+
         try {
-            $data = DB::table('S002V01TTABL')
+            $arrTables = DB::table('S002V01TTABL')
                 ->where('TABL_NULI', '=', $line)
                 ->get([
                     'TABL_IDTA AS CODIGO_TABLA',
@@ -40,10 +50,19 @@ class TableController extends Controller
                     'TABL_USMO AS USUARIO_MODIFICA',
                     'TABL_ESTA AS ESTADO'
                 ]);
+            $arrTables = json_decode(json_encode($arrTables), true);
         } catch (\Throwable $th) {
             return $this->responseController->makeResponse(true, "ERR_TABLE_GET000: Ocurrió un error al consultar los datos.", $th->getMessage(), 500);
         }
-        return $this->responseController->makeResponse(false, "ÉXITO", $data);
+
+        $responseCheckLatestUpdate = $this->resourcesController->checkLatestUpdate($arrTables, $line);
+        if ($responseCheckLatestUpdate['error']) {
+            return $this->responseController->makeResponse(true, $responseCheckLatestUpdate['msg'], [], 500);
+        }
+        $arrTables = $responseCheckLatestUpdate['response'];
+
+
+        return $this->responseController->makeResponse(false, "ÉXITO", $arrTables);
     }
 
     public function getColumnsByTables(Request $request){

+ 4 - 4
sistema-mantenimiento-back/routes/api.php

@@ -314,7 +314,7 @@ Route::middleware(['jwt.auth'])->group(function(){
     Route::post('modulo/elimina',                                                       [ModuleController::class, 'deleteModule']);
 
     // Module: Dynamic Forms
-    Route::get ('form/consulta/{user}/{line}',                                          [DynamicFormController::class, 'getForm']);
+    Route::get ('form/get-forms/{user}/{line}',                                         [DynamicFormController::class, 'getForms']);
     Route::get ('form/consulta-form-workflow/{user}/{line}',                            [DynamicFormController::class, 'getFormWorkflow']);
     Route::get ('form/consulta-data/{codigo_form}/{user}/{line}',                       [DynamicFormController::class, 'getDataForm']);
     Route::post('form/registra',                                                        [DynamicFormController::class, 'createForm']);
@@ -437,11 +437,11 @@ Route::middleware(['jwt.auth'])->group(function(){
     Route::post('failure-analysis/update-symptom',                                          [SymptomListController::class,  'updateSymptom']);
     Route::post('failure-analysis/delete-symptom',                                          [SymptomListController::class,  'deleteSymptom']);
 
-    Route::get ('failure-analysis/get-failure-log/{user}/{line}',                           [FailureLogController::class,  'getFailureLog']);
-    Route::get ('failure-analysis/get-history-failure-equipment/{equipment}/{user}/{line}', [FailureLogController::class,  'getHistoryFailureEquipment']);
+    Route::get ('failure-analysis/get-failure-log/{user}/{line}',                                   [FailureLogController::class,  'getFailureLog']);
+    Route::get ('failure-analysis/get-history-failure-equipment/{equipment}/{user}/{line}',         [FailureLogController::class,  'getHistoryFailureEquipment']);
     Route::get ('failure-analysis/get-details-history-failure-equipment/{failure}/{user}/{line}',   [FailureLogController::class,  'getDetailsHistoryFailureEquipment']);
     Route::get ('failure-analysis/get-equipment-by-failure/{failure}/{user}/{line}',                [FailureLogController::class,  'getEquipmentByFailure']);
-    Route::get ('failure-analysis/get-alarm-emission-from-failures/{user}/{line}',                                [FailureLogController::class,  'getAlarmEmissionFromFailures']);
+    Route::get ('failure-analysis/get-alarm-emission-from-failures/{user}/{line}',                  [FailureLogController::class,  'getAlarmEmissionFromFailures']);
     Route::get ('failure-analysis/generate-sheet-failure-xls/{failure}/{user}/{line}',              [FailureLogController::class,  'generateSheetFailureXLS']);
     Route::get ('failure-analysis/generate-sheet-failure-pdf/{failure}/{user}/{line}',              [FailureLogController::class,  'generateSheetFailurePDF']);
 

+ 1 - 5
sistema-mantenimiento-front/src/app/components/forms-management/form-dyn-management/form-dyn-management-form/form-dyn-management-form.component.html

@@ -1,12 +1,8 @@
 <div style="width: 100%; height: 100vh; display: flex; flex-direction: column">
   <div style="display: flex; align-items: center;">
-
-
-
     <app-btn-navigate (click)="alert('exit')" nameButton="Regresar" style="width: calc(100% / 3);" />
 
-
-    <mat-card-title class="override-main-title align-center<" style="width: calc(100% / 3);">
+    <mat-card-title class="override-main-title align-center" style="width: calc(100% / 3);">
       {{ idForm == 0 ? 'Creación de Formulario' : 'Modificación de Formulario' }}
     </mat-card-title>