Przeglądaj źródła

funcion para recuperar el historial de ejecuciones de workflow

EmilianoOrtiz 1 miesiąc temu
rodzic
commit
1c7d95ee85

Plik diff jest za duży
+ 734 - 173
sistema-mantenimiento-back/app/Http/Controllers/FunctionsController.php


+ 80 - 4
sistema-mantenimiento-back/app/Http/Controllers/ProcessManagementController.php

@@ -88,6 +88,19 @@ class ProcessManagementController extends Controller
         }
 
         DB::commit();
+        $this->functionsController->registerActivity(
+            $requestData['NUMERO_LINEA'],
+            'S002V01M03GEPR',
+            'S002V01F01GFTR',
+            'S002V01P01PCIN',
+            'Registro',
+            "El usuario (" . $user . ") registró un flujo de trabajo.",
+            $user,
+            $this->functionsController->now(),
+            null,
+            $workflowId
+
+        );
         return $this->responseController->makeResponse(false, "ÉXITO: Workflow registrado exitosamente", ['ID_WORKFLOW' => $workflowId]);
     }
 
@@ -183,6 +196,18 @@ class ProcessManagementController extends Controller
         }
 
         DB::commit();
+        $this->functionsController->registerActivity(
+            $requestData['NUMERO_LINEA'],
+            'S002V01M03GEPR',
+            'S002V01F01GETA',
+            'S002V01P01PCIN',
+            'Registro',
+            "El usuario (" . $user . ") registró una tarea.",
+            $user,
+            $this->functionsController->now(),
+            null,
+            $requestData['ID_WORKFLOW'] //EN ESTE ESPECIFICO CASO ID_WORKFLOW ES EL VALOR ANCLA
+        );
         return $this->responseController->makeResponse(false, "ÉXITO: Tarea registrada exitosamente", ['ID_TAREA' => $taskId]);
     }
 
@@ -509,6 +534,18 @@ class ProcessManagementController extends Controller
         }
 
         DB::commit();
+        $this->functionsController->registerActivity(
+            $requestData['NUMERO_LINEA'],
+            'S002V01M03GEPR',
+            'S002V01F01GSFT',
+            'S002V01P01PCIN',
+            'Registro',
+            "El usuario (" . $user . ") cambio el estado de un flujo de trabajo.",
+            $user,
+            $this->functionsController->now(),
+            null,
+            $request['ID_WORKFLOW']
+        );
         return $this->responseController->makeResponse(false, "ÉXITO: Estado del workflow cambiado exitosamente");
     }
 
@@ -3010,7 +3047,7 @@ class ProcessManagementController extends Controller
             // Restricción: Si PREDETERMINADO = true, forzar USUARIO_REGISTRO = SAM
             if (isset($requestData['PREDETERMINADO']) && $requestData['PREDETERMINADO']) {
                 $query->where('w.WORK_PRED', '=', 1)
-                      ->where('w.WORK_USRE', '=', '0000000001');
+                    ->where('w.WORK_USRE', '=', '0000000001');
             } else {
                 if (isset($requestData['PREDETERMINADO']) && !$requestData['PREDETERMINADO']) {
                     $query->where('w.WORK_PRED', '=', 0);
@@ -3056,9 +3093,9 @@ class ProcessManagementController extends Controller
                 DB::raw('COUNT(e.EJWO_IDEW) as EJECUCIONES'),
                 DB::raw('MAX(e.EJWO_FERE) as ULTIMA_EJECUCION')
             )
-            ->groupBy('w.WORK_IDWO', 'w.WORK_NOWO', 'w.WORK_DESC', 'w.WORK_ESTA', 'w.WORK_USRE', 'w.WORK_FERE')
-            ->orderBy('w.WORK_FERE', 'desc')
-            ->get();
+                ->groupBy('w.WORK_IDWO', 'w.WORK_NOWO', 'w.WORK_DESC', 'w.WORK_ESTA', 'w.WORK_USRE', 'w.WORK_FERE')
+                ->orderBy('w.WORK_FERE', 'desc')
+                ->get();
 
             return $this->responseController->makeResponse(false, "ÉXITO: Búsqueda de workflows completada", $results);
         } catch (\Throwable $th) {
@@ -3066,6 +3103,45 @@ class ProcessManagementController extends Controller
         }
     }
 
+    public function getWorkflowExecutionsHistory($idWorkflow, $user, $line)
+    {
+        $arrResponseCheckUser = $this->resourcesController->checkUserEnc($user, $line);
+        if ($arrResponseCheckUser['error']) {
+            return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
+        }
+
+        try {
+            $results = DB::table('S002V01TWORK as w')
+                ->join('S002V01TEJWO as ew', 'w.WORK_IDWO', '=', 'ew.EJWO_IDWO')
+                ->join('S002V01TEJTW as et', 'ew.EJWO_IDEW', '=', 'et.EJTW_IDEW')
+                ->join('S002V01TTAWO as ta', 'et.EJTW_IDTA', '=', 'ta.TAWO_IDTA')
+                ->where('w.WORK_IDWO', '=', $idWorkflow)
+                ->where('w.WORK_NULI', '=', $line)
+                ->select(
+                    'w.WORK_IDWO AS ID_WORKFLOW',
+                    'w.WORK_NOWO AS NOMBRE_WORKFLOW',
+                    'ew.EJWO_IDEW AS ID_EJECUCION_WORKFLOW',
+                    'et.EJTW_IDOJ AS OBJETO',
+                    'ew.EJWO_ESTA AS ESTADO_WORKFLOW',
+                    'ew.EJWO_FERE AS FECHA_INICIO',
+                    'ew.EJWO_FEMO AS FECHA_COMPLETADO',
+                    'et.EJTW_IDET AS ID_EJECUCION_TAREA',
+                    'ta.TAWO_NOTA AS NOMBRE_TAREA',
+                    'ta.TAWO_SECU AS SECUENCIA',
+                    'et.EJTW_ESTA AS ESTADO_TAREA',
+                    'et.EJTW_USAT AS USUARIO',
+                    'et.EJTW_FERE AS FECHA_EJECUCION'
+                )
+                ->orderBy('ew.EJWO_FERE', 'desc')
+                ->orderBy('ta.TAWO_SECU', 'asc')
+                ->get();
+
+            return $this->responseController->makeResponse(false, "ÉXITO: Historial de ejecuciones obtenido", $results);
+        } catch (\Throwable $th) {
+            return $this->responseController->makeResponse(true, "Ocurrió un error al obtener el historial de ejecuciones.", $th->getMessage(), 500);
+        }
+    }
+
     /**
      * Procesa la información extra según las reglas de validación Función privada en uso
      */

+ 1 - 0
sistema-mantenimiento-back/routes/api.php

@@ -581,6 +581,7 @@ Route::post('process-management/search-notificate',
 Route::post('process-management/search-solicitudes',                                            "App\Http\Controllers\ProcessManagementController@searchSolicitudes");
 Route::post('process-management/search-notificaciones',                                         "App\Http\Controllers\ProcessManagementController@searchNotificaciones");
 Route::post('process-management/search-workflows',                                              "App\Http\Controllers\ProcessManagementController@searchWorkflows");
+Route::get('process-management/get-workflow-executions-history/{idWorkflow}/{user}/{line}',    "App\Http\Controllers\ProcessManagementController@getWorkflowExecutionsHistory");
 Route::get('process-management/get-details-notificate/{idNotificate}/{user}/{line}',           "App\Http\Controllers\ProcessManagementController@getDetailsNotificate");
 Route::post('process-management/activate-workflow-automatic',                                   "App\Http\Controllers\ProcessManagementController@activateManualWorkflow");
 

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików