Go

Servicio: process-blocks

Información General


Propósito de Negocio

Es el motor de procesamiento de datos de bloques a bajo nivel. Cuando se carga un nuevo modelo IFC o se actualizan avances masivamente, este servicio:

  1. Crea o actualiza los bloques en blockIfc
  2. Recalcula todas las fechas de desplazamiento del proyecto
  3. Mantiene los valores de ejecución actualizados
  4. Elimina duplicados para mantener consistencia de datos

Endpoints Expuestos

Método Path Descripción
POST /process-blocks Crear o actualizar bloques en la BD
POST /historical-advancement-record Crear registro histórico de avance
PUT /all-displacement-dates Actualizar todas las fechas de desplazamiento del proyecto
PUT /execution-value Actualizar valores de ejecución de bloques
DELETE /disable-found-blocks Deshabilitar bloques encontrados (por criterio)
DELETE /labels/duplicated-blocks Eliminar bloques duplicados dentro de etiquetas
DELETE /delete-duplicated-blocks Eliminar bloques duplicados en la colección principal

POST /process-blocks — Operación de creación/actualización masiva de bloques (CreateOrUpdateBlocks). Recibe una lista de bloques con sus atributos y los inserta o actualiza en la colección blockIfc. Es el equivalente a un upsert masivo.

PUT /all-displacement-dates — Recalcula y actualiza las fechas de desplazamiento (displacement_date) de todos los bloques del proyecto. Operación costosa, usa BulkWrite de MongoDB.

DELETE /labels/duplicated-blocks — Detecta y elimina referencias duplicadas a bloques dentro de las etiquetas (labels). Mantiene la consistencia del array lbl_blocks.


Pool Multi-Cliente MongoDB

El servicio implementa un MongoDBManager con múltiples clientes simultáneos:

Cliente Propósito
CENTRALIZED MongoDB centralizado (todos los proyectos en un servidor)
manager MongoDB del manager (base master con metadatos)
manager := mogodbClient.NewMongoDBManager(4)  // máximo 4 clientes

Variables de Entorno

Variable Descripción
PORT Puerto HTTP
DB_HOST_CENTRALIZED Host MongoDB centralizado
DB_HOST_MANAGER Host MongoDB del manager
DB_USER Usuario MongoDB
DB_PASSWORD Contraseña MongoDB
MAX_CONNS Máximo de conexiones en pool
MIN_CONNS Mínimo de conexiones en pool

Middlewares


Rol en el Sistema

[api-bimtrazer]
    │
    ▼
[process-blocks :8112]
    │
    ├── Escribe → blockIfc (crear/actualizar bloques)
    ├── Escribe → historical_advancement (registros históricos)
    ├── Actualiza → blockIfc.displacement_date (fechas desplazadas)
    ├── Actualiza → blockIfc.val_executed (valores de ejecución)
    └── Limpia → blockIfc, labels (eliminación de duplicados)

Alertas Técnicas