Pārlūkot izejas kodu

funcion para registrar tareas masivamente por workflow

EmilianoOrtiz 1 mēnesi atpakaļ
vecāks
revīzija
8822161c28

+ 70 - 0
sistema-mantenimiento-back/app/Http/Controllers/ProcessManagementController.php

@@ -87,6 +87,76 @@ class ProcessManagementController extends Controller
         return $this->responseController->makeResponse(false, "ÉXITO: Workflow registrado exitosamente", ['ID_WORKFLOW' => $workflowId]);
     }
 
+    public function registerWorkflowTasks(Request $request) {
+        $validator = Validator::make($request->all(), [
+            'ID_WORKFLOW' => 'required|integer',
+            'TAREAS' => 'required|array|min:1',
+            'TAREAS.*.NOMBRE_TAREA' => 'required|string|max:50',
+            'TAREAS.*.DESCRIPCION' => 'required|string',
+            'TAREAS.*.SECUENCIA' => 'required|integer',
+            'TAREAS.*.REQUIERE_VALIDACION' => 'nullable|boolean',
+            'TAREAS.*.USUARIOS_NOTIFICAR' => 'nullable|array',
+            'TAREAS.*.USUARIO_VALIDADOR' => 'nullable|integer',
+            'TAREAS.*.REGLA_VALIDACION' => 'nullable|string|in:Esperar,Ejecutar',
+            'TAREAS.*.ID_FUNCION' => 'nullable|string|max:25',
+            'TAREAS.*.ID_MODULO' => 'nullable|string|max:25',
+            'USUARIO' => 'required|string',
+            'NUMERO_LINEA' => 'required|integer',
+        ]);
+        
+        if ($validator->fails()) {
+            return $this->responseController->makeResponse(
+                true,
+                "Se encontraron uno o más errores.",
+                $this->responseController->makeErrors($validator->errors()->messages()),
+                401
+            );
+        }
+
+        DB::beginTransaction();
+        $requestData = $request->all();
+
+        $arrResponseCheckUser = $this->resourcesController->checkUserEnc($requestData['USUARIO'], $requestData['NUMERO_LINEA']);
+        if ($arrResponseCheckUser['error']) {
+            DB::rollBack();
+            return $this->responseController->makeResponse(true, $arrResponseCheckUser['msg'], [], 401);
+        }
+        $user = $arrResponseCheckUser['response'];
+
+        $now = $this->functionsController->now();
+        $currentDate = $now->toDateTimeString();
+        $insertedTasks = [];
+
+        try {
+            foreach ($requestData['TAREAS'] as $tarea) {
+                $taskId = DB::table('S002V01TTAWO')->insertGetId([
+                    'TAWO_NULI' => $requestData['NUMERO_LINEA'],
+                    'TAWO_IDWO' => $requestData['ID_WORKFLOW'],
+                    'TAWO_NOTA' => $tarea['NOMBRE_TAREA'],
+                    'TAWO_DESC' => $tarea['DESCRIPCION'],
+                    'TAWO_SECU' => $tarea['SECUENCIA'],
+                    'TAWO_RQVA' => $tarea['REQUIERE_VALIDACION'] ?? null,
+                    'TAWO_USAN' => isset($tarea['USUARIOS_NOTIFICAR']) ? json_encode($tarea['USUARIOS_NOTIFICAR']) : null,
+                    'TAWO_USAV' => $tarea['USUARIO_VALIDADOR'] ?? null,
+                    'TAWO_REVA' => $tarea['REGLA_VALIDACION'] ?? null,
+                    'TAWO_IDFU' => $tarea['ID_FUNCION'] ?? null,
+                    'TAWO_IDMO' => $tarea['ID_MODULO'] ?? null,
+                    'TAWO_ESTA' => 'Borrador',
+                    'TAWO_USRE' => $user,
+                    'TAWO_FERE' => $currentDate,
+                    'TAWO_FEAR' => DB::raw('CURRENT_TIMESTAMP'),
+                ]);
+                $insertedTasks[] = $taskId;
+            }
+        } catch (\Throwable $th) {
+            DB::rollBack();
+            return $this->responseController->makeResponse(true, "Ocurrió un error al registrar las tareas.", $th->getMessage(), 500);
+        }
+
+        DB::commit();
+        return $this->responseController->makeResponse(false, "ÉXITO: Tareas registradas exitosamente", ['TAREAS_REGISTRADAS' => count($insertedTasks)]);
+    }
+
     
 
     public function getWorkflows($user, $line) {

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

@@ -555,6 +555,8 @@ Route::get("/print-order-details/{idOrder}/{idUser}/{line}",
     // Módulo de Procesos (Workflow)
     Route::get ('process-management/get-workflows/{user}/{line}',                                   "App\Http\Controllers\ProcessManagementController@getWorkflows");
     Route::get ('process-management/get-workflow-by-id/{idWorkflow}/{user}/{line}',                 "App\Http\Controllers\ProcessManagementController@getWorkflowById");
+    Route::post('process-management/register-workflow',                                             "App\Http\Controllers\ProcessManagementController@registerWorkflow");
+    Route::post('process-management/register-workflow-tasks',                                       "App\Http\Controllers\ProcessManagementController@registerWorkflowTasks");
     Route::post('process-management/update-workflows/{idWorkflow}',                                 "App\Http\Controllers\ProcessManagementController@updateWorkflow");
     Route::post('process-management/change-workflow-status',                       "App\Http\Controllers\ProcessManagementController@changeWorkflowStatus");
     Route::get ('process-management/get-process-workflow/{user}/{line}',                            "App\Http\Controllers\ProcessManagementController@getProcessWorkflow");
@@ -591,5 +593,9 @@ Route::get("/print-order-details/{idOrder}/{idUser}/{line}",
     //subida de archivo de equipamientos
     Route::post('equipment-data/verify-template',                                                   'App\Http\Controllers\TemplatesManagementController@validateAndProcessExcelTemplate');
     Route::post('equipment-data/upload-template',                                                   'App\Http\Controllers\TemplatesManagementController@processExcelEquipment');
+
+    //api para ver el consumo de la api prtg
+    Route::get('api-consumption-prtg', 'App\Http\Controllers\ApiConsumptionController@index');
+    Route::get('api-consumption-prtg/notifications', 'App\Http\Controllers\ApiConsumptionController@getNotifications');
 //});