Prechádzať zdrojové kódy

manejo para data de getConfiguration

EmilianoOrtiz 1 mesiac pred
rodič
commit
78224b580d

+ 61 - 13
sistema-mantenimiento-back/app/Http/Controllers/ProcessManagementController.php

@@ -8,7 +8,7 @@ use Illuminate\Support\Facades\Validator;
 use ElephantIO\Client;
 use Illuminate\Support\Carbon;
 use Illuminate\Support\Facades\Log;
-use App\Services\TaskConfigurationService;
+
 
 class ProcessManagementController extends Controller
 {
@@ -152,7 +152,7 @@ class ProcessManagementController extends Controller
 
         Log::info($requestData);
 
-        $informacionExtra = TaskConfigurationService::processExtraInfo(
+        $informacionExtra = $this->processExtraInfo(
             $requestData['REGLAS_VALIDACION'],
             $requestData
         );
@@ -645,11 +645,24 @@ class ProcessManagementController extends Controller
 
 
 
-        // Formatear información extra para el frontend
-        $arrTask['INFORMACION_EXTRA_FORMATEADA'] = TaskConfigurationService::formatExtraInfoForFrontend(
-            $arrTask['INFORMACION_EXTRA'],
-            $arrTask['REGLAS_VALIDACION']
-        );
+        // Extraer información extra según regla de validación
+        $idWorkflowEjecutar = null;
+        $intervalo = null;
+        $unidad = null;
+
+        if (!empty($arrTask['INFORMACION_EXTRA'])) {
+            $infoExtra = json_decode($arrTask['INFORMACION_EXTRA'], true);
+            if ($arrTask['REGLAS_VALIDACION'] === 'Esperar' && $infoExtra) {
+                $intervalo = $infoExtra['intervalo'] ?? null;
+                $unidad = $infoExtra['unidad'] ?? null;
+            } elseif ($arrTask['REGLAS_VALIDACION'] === 'Ejecutar' && $infoExtra) {
+                $idWorkflowEjecutar = $infoExtra['workflow_id'] ?? null;
+            }
+        }
+
+        $arrTask['ID_WORKFLOW_EJECUTAR'] = $idWorkflowEjecutar;
+        $arrTask['INTERVALO'] = $intervalo;
+        $arrTask['UNIDAD'] = $unidad;
 
         return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $arrTask);
     }
@@ -697,6 +710,21 @@ class ProcessManagementController extends Controller
             return $this->responseController->makeResponse(true, "La tarea no existe.", [], 404);
         }
 
+        // Extraer información extra según regla de validación
+        $idWorkflowEjecutar = null;
+        $intervalo = null;
+        $unidad = null;
+
+        if (!empty($arrTask['INFORMACION_EXTRA'])) {
+            $infoExtra = json_decode($arrTask['INFORMACION_EXTRA'], true);
+            if ($arrTask['REGLAS_VALIDACION'] === 'Esperar' && $infoExtra) {
+                $intervalo = $infoExtra['intervalo'] ?? null;
+                $unidad = $infoExtra['unidad'] ?? null;
+            } elseif ($arrTask['REGLAS_VALIDACION'] === 'Ejecutar' && $infoExtra) {
+                $idWorkflowEjecutar = $infoExtra['id_workflow'] ?? null;
+            }
+        }
+
         // Formatear respuesta
         $response = [
             'REQUIERE_VALIDACION' => $arrTask['REQUIERE_VALIDACION'],
@@ -715,10 +743,9 @@ class ProcessManagementController extends Controller
                 'id' => $arrTask['ID_FUNCION'],
                 'nombre' => $arrTask['NOMBRE_FUNCION']
             ],
-            'CONFIGURACION_EXTRA' => TaskConfigurationService::formatExtraInfoForFrontend(
-                $arrTask['INFORMACION_EXTRA'],
-                $arrTask['REGLAS_VALIDACION']
-            )
+            'ID_WORKFLOW_EJECUTAR' => $idWorkflowEjecutar,
+            'INTERVALO' => $intervalo,
+            'UNIDAD' => $unidad
         ];
 
         return $this->responseController->makeResponse(false, "ÉXITO: Consulta Exitosa", $response);
@@ -781,7 +808,7 @@ class ProcessManagementController extends Controller
         $now = $this->functionsController->now();
         $currentDate = $now->toDateTimeString();
 
-        $informacionExtra = TaskConfigurationService::processExtraInfo(
+        $informacionExtra = $this->processExtraInfo(
             $requestData['REGLAS_VALIDACION'],
             $requestData
         );
@@ -955,7 +982,7 @@ class ProcessManagementController extends Controller
         $now = $this->functionsController->now();
         $currentDate = $now->toDateTimeString();
 
-        $informacionExtra = TaskConfigurationService::processExtraInfo(
+        $informacionExtra = $this->processExtraInfo(
             $requestData['REGLAS_VALIDACION'],
             $requestData
         );
@@ -2598,4 +2625,25 @@ class ProcessManagementController extends Controller
 
         return $this->responseController->makeResponse(false, "ÉXITO: Consulta exitosa", $arrNotificate);
     }
+
+    /**
+     * Procesa la información extra según las reglas de validación
+     */
+    private function processExtraInfo($reglasValidacion, $requestData)
+    {
+        switch ($reglasValidacion) {
+            case 'Ejecutar':
+                return !empty($requestData['ID_WORKFLOW_EJECUTAR']) 
+                    ? json_encode(['id_workflow' => $requestData['ID_WORKFLOW_EJECUTAR']])
+                    : null;
+            
+            case 'Esperar':
+                $intervalo = $requestData['INTERVALO'] ?? 5;
+                $unidad = $requestData['UNIDAD'] ?? 'seg';
+                return json_encode(['intervalo' => $intervalo, 'unidad' => $unidad]);
+            
+            default:
+                return null;
+        }
+    }
 }