Servicios Go/Gin

Servicio: blocks

Información General


Endpoints Expuestos (31 totales)

GET

Path Descripción
GET /executed-blocks/:projectId Bloques ejecutados (vista 4D)
GET /blocks/by-project/:projectId Todos los bloques de un proyecto
GET /blocks/:projectId/:blockCode Bloque específico por código
GET /blocks/priority/:projectId Bloques con sus prioridades
GET /blocks/priority/classified/:projectId Bloques clasificados por prioridad
GET /blocks/priority/to-certify/:projectId Bloques pendientes de certificación
GET /label-intersection/:projectId Intersección de bloques por etiqueta
GET /blocks/uncertified/:projectId Bloques sin certificar del proyecto
GET /blocks/uncertified/:projectId/:label Bloques sin certificar de una etiqueta
GET /blocks/label-intersection/:projectId/get-xls Exporta intersección a Excel
GET /blocks/label-intersection/:projectId/get-criticality-xls Exporta criticidad a Excel
GET /blocks/dashboard-data/:projectId/:labelCode Datos para dashboard por etiqueta
GET /blocks/sequences-execution-error-report/:projectId Reporte de errores de secuencias
GET /blocks/history-errors/:projectId Historial de errores
GET /fixed-weights/:projectId Pesos fijos configurados del proyecto
GET /last-date/:projectId Última fecha de actividad registrada
GET /data-for-prioritization/:projectId Datos para proceso de priorización

POST

Path Descripción
POST /blocks/duplicate-with-prefix Duplica bloques con un prefijo dado
POST /blocks/map-and-copy-execution-by-prefix Copia estado de ejecución entre proyectos por prefijo
POST /blocks/create-codes Obtiene códigos de bloques disponibles del Master
POST /blocks/priority/by-label Bloques con prioridad filtrados por etiqueta
POST /blocks/filtered/by-label Bloques filtrados por etiqueta
POST /blocks/label-intersection Intersección de etiquetas (POST con body)
POST /blocks/uncertified/label-intersection Bloques sin certificar en intersección de etiquetas

PUT

Path Descripción
PUT /blocks/blocks-Json Parametrizador de bloques IFC (actualización masiva)
PUT /blocks/priority/executed Marca bloques como ejecutados en contexto de prioridad
PUT /blocks/fix-history-errors Corrige errores en historial
PUT /fixed-weights Actualiza pesos fijos
PUT /fixed-weights/from-file Actualiza pesos fijos desde archivo
PUT /blocks/copy-status Copia estado entre proyectos

DELETE

Path Descripción
DELETE /blocks/priority/disable Deshabilita bloques por código (prioridad)
DELETE /blocks/by-codes Deshabilita bloques por lista de códigos
DELETE /fixed-weights Elimina pesos fijos configurados

Base de Datos

Colecciones Usadas

Colección Base de Datos Descripción
blockIfc {projectId} Bloques del proyecto
labels {projectId} Etiquetas (referencia)
Project {projectId} Configuración del proyecto

Variables de Entorno

Variable Descripción
ENVIRONMENT Ambiente activo: dev, qa, prod
{ENV}_PORT Puerto HTTP (:8104)
{ENV}_API_URL URL base de la API
{ENV}_DB_USER Usuario de MongoDB
{ENV}_DB_PASSWORD Contraseña de MongoDB (sensible)
{ENV}_DB_HOST Host de MongoDB
{ENV}_DB_PORT Puerto de MongoDB

Dependencias Externas


Procesos Internos


Helpers de Negocio Clave

Helper Propósito
calculatePriority.go Calcula prioridad de un bloque
calculateSpi.go Calcula Schedule Performance Index
checkCriticality.go Determina si un bloque está en ruta crítica
getExpectedExecutionAndStatus.go Calcula ejecución esperada y estado actual
getBlocksIntersection.go Intersección de bloques entre etiquetas
getDelayAndDisplacement.go Calcula días de atraso y desplazamiento
distanceToNow.go / distanceToTheEnd.go Cálculos de distancia temporal

Librerías Especiales

Librería Uso
xuri/excelize Generación de reportes Excel (.xlsx)
gin-contrib/cors CORS permisivo (AllowAllOrigins: true)

Middlewares


Structs Principales

Struct Propósito
BsonListBlock Lista de bloques de MongoDB
BsonBlocks Documento completo de un bloque
BsonProjectConfig Configuración del proyecto
InBlockCreateCodes Request para crear códigos de bloques

Rol en Casos de Uso

Caso de Uso Rol
CU-02: Carga de IFC Recibe códigos de bloques creados por ifc
CU-05: Certificación Provee estado actual de bloques a registry
CU-07: Gemelo Digital digitaltwin consulta datos de bloques
CU-08: Desplazamientos displacements lee y escribe bloques
CU-15: Filtrado LBP lbp lee desde colección blockIfc directamente