324 lines
11 KiB
Markdown
324 lines
11 KiB
Markdown
# VALIDACION DDL vs INVENTARIOS - ERP CONSTRUCCION
|
|
**Fecha:** 2025-12-06
|
|
**Version:** 1.0.0
|
|
**Generado por:** Requirements-Analyst
|
|
|
|
---
|
|
|
|
## RESUMEN EJECUTIVO
|
|
|
|
| Metrica | Inventarios | DDL Real | Estado |
|
|
|---------|-------------|----------|--------|
|
|
| **Schemas** | 6 (+ 3 pendientes) | 7 implementados | DISCREPANCIA |
|
|
| **Tablas declaradas** | 57 | 65 | DISCREPANCIA |
|
|
| **HSE Schema** | "pendiente" | 58 tablas implementadas | DESACTUALIZADO |
|
|
| **ENUMs** | 22 | 89 (22 base + 67 HSE) | DESACTUALIZADO |
|
|
|
|
### Conclusion General
|
|
Los inventarios MASTER_INVENTORY.yml y DATABASE_INVENTORY.yml estan **DESACTUALIZADOS** respecto al DDL implementado. El schema HSE con 58 tablas y 67 ENUMs ya fue implementado pero los inventarios lo marcan como "pendiente".
|
|
|
|
---
|
|
|
|
## 1. ANALISIS DE OBJETOS DDL IMPLEMENTADOS
|
|
|
|
### 1.1 Schemas Creados (7 schemas de negocio)
|
|
|
|
| Schema | Origen | Tablas | ENUMs | Estado |
|
|
|--------|--------|--------|-------|--------|
|
|
| core | construccion | 2 | 0 | Implementado |
|
|
| core_shared | construccion | 0 | 0 | Implementado (funciones) |
|
|
| construction | construccion | 2 | 0 | Implementado |
|
|
| hr | construccion | 3 | 0 | Implementado |
|
|
| hse | construccion | 58 | 67 | **IMPLEMENTADO** |
|
|
| estimates | construccion | 0 | 0 | Schema vacio |
|
|
| infonavit | construccion | 0 | 0 | Schema vacio |
|
|
|
|
### 1.2 Tablas por Schema (Conteo Real del DDL)
|
|
|
|
#### core (2 tablas)
|
|
- `core.tenants` - Multi-tenancy base
|
|
- `core.users` - Usuarios base
|
|
|
|
#### construction (2 tablas)
|
|
- `construction.proyectos` - Proyectos de desarrollo
|
|
- `construction.fraccionamientos` - Obras/fraccionamientos
|
|
|
|
#### hr (3 tablas)
|
|
- `hr.employees` - Empleados
|
|
- `hr.puestos` - Catalogo de puestos
|
|
- `hr.employee_fraccionamientos` - Asignacion empleados a obras
|
|
|
|
#### hse (58 tablas) - RF-MAA017-001 a RF-MAA017-008
|
|
|
|
**RF-MAA017-001 Gestion de Incidentes (5 tablas):**
|
|
- `hse.incidentes`
|
|
- `hse.incidente_involucrados`
|
|
- `hse.incidente_investigacion`
|
|
- `hse.incidente_acciones`
|
|
- `hse.incidente_evidencias`
|
|
|
|
**RF-MAA017-002 Control de Capacitaciones (6 tablas):**
|
|
- `hse.capacitaciones`
|
|
- `hse.capacitacion_matriz`
|
|
- `hse.instructores`
|
|
- `hse.capacitacion_sesiones`
|
|
- `hse.capacitacion_asistentes`
|
|
- `hse.constancias_dc3`
|
|
|
|
**RF-MAA017-003 Inspecciones de Seguridad (7 tablas):**
|
|
- `hse.tipos_inspeccion`
|
|
- `hse.checklist_items`
|
|
- `hse.programa_inspecciones`
|
|
- `hse.inspecciones`
|
|
- `hse.inspeccion_evaluaciones`
|
|
- `hse.hallazgos`
|
|
- `hse.hallazgo_evidencias`
|
|
|
|
**RF-MAA017-004 Control de EPP (7 tablas):**
|
|
- `hse.epp_catalogo`
|
|
- `hse.epp_matriz_puesto`
|
|
- `hse.epp_asignaciones`
|
|
- `hse.epp_inspecciones`
|
|
- `hse.epp_bajas`
|
|
- `hse.epp_inventario`
|
|
- `hse.epp_movimientos`
|
|
|
|
**RF-MAA017-005 Cumplimiento STPS (11 tablas):**
|
|
- `hse.normas_stps`
|
|
- `hse.norma_requisitos`
|
|
- `hse.cumplimiento_obra`
|
|
- `hse.comision_seguridad`
|
|
- `hse.comision_integrantes`
|
|
- `hse.comision_recorridos`
|
|
- `hse.programa_seguridad`
|
|
- `hse.programa_actividades`
|
|
- `hse.documentos_stps`
|
|
- `hse.auditorias`
|
|
|
|
**RF-MAA017-006 Gestion Ambiental (9 tablas):**
|
|
- `hse.residuos_catalogo`
|
|
- `hse.residuos_generacion`
|
|
- `hse.almacen_temporal`
|
|
- `hse.proveedores_ambientales`
|
|
- `hse.manifiestos_residuos`
|
|
- `hse.manifiesto_detalle`
|
|
- `hse.impacto_ambiental`
|
|
- `hse.quejas_ambientales`
|
|
|
|
**RF-MAA017-007 Permisos de Trabajo (8 tablas):**
|
|
- `hse.tipos_permiso_trabajo`
|
|
- `hse.permisos_trabajo`
|
|
- `hse.permiso_personal`
|
|
- `hse.permiso_autorizaciones`
|
|
- `hse.permiso_checklist`
|
|
- `hse.permiso_monitoreos`
|
|
- `hse.permiso_eventos`
|
|
- `hse.permiso_documentos`
|
|
|
|
**RF-MAA017-008 Indicadores HSE (6 tablas):**
|
|
- `hse.indicadores_config`
|
|
- `hse.indicadores_meta_obra`
|
|
- `hse.indicadores_valores`
|
|
- `hse.horas_trabajadas`
|
|
- `hse.dias_sin_accidente`
|
|
- `hse.reportes_programados`
|
|
- `hse.alertas_indicadores`
|
|
|
|
### 1.3 ENUMs Implementados (89 total)
|
|
|
|
**ENUMs HSE (67):**
|
|
- Incidentes: `tipo_incidente`, `gravedad_incidente`, `estado_incidente`, `rol_involucrado`, `factor_causa`
|
|
- Capacitaciones: `tipo_capacitacion`, `estado_sesion`
|
|
- Inspecciones: `frecuencia`, `estado_inspeccion`, `resultado_evaluacion`, `gravedad_hallazgo`, `estado_hallazgo`, `tipo_evidencia`
|
|
- EPP: `categoria_epp`, `estado_epp`, `estado_inspeccion_epp`, `motivo_baja_epp`, `tipo_movimiento_epp`
|
|
- STPS: `estado_comision`, `rol_comision`, `representacion`, `estado_recorrido`, `estado_programa`, `tipo_actividad_programa`, `estado_actividad`, `tipo_documento_stps`, `tipo_auditoria`, `resultado_auditoria`, `estado_cumplimiento`
|
|
- Ambiental: `categoria_residuo`, `unidad_residuo`, `estado_residuo`, `estado_almacen`, `tipo_proveedor_ambiental`, `estado_manifiesto`, `tipo_impacto`, `severidad`, `probabilidad`, `nivel_riesgo`, `estado_impacto`, `origen_queja`, `tipo_queja`, `estado_queja`
|
|
- Permisos: `estado_permiso`, `rol_permiso`, `decision_autorizacion`, `momento_checklist`, `tipo_evento_permiso`
|
|
- Indicadores: `tipo_indicador`, `frecuencia_calculo`, `periodo_tipo`, `estado_semaforo`, `fuente_horas`, `tipo_reporte_hse`, `formato_reporte`, `tipo_alerta_indicador`
|
|
|
|
---
|
|
|
|
## 2. DISCREPANCIAS DETECTADAS
|
|
|
|
### 2.1 MASTER_INVENTORY.yml
|
|
|
|
| Campo | Valor Actual | Valor Correcto | Accion |
|
|
|-------|--------------|----------------|--------|
|
|
| `metricas.database.schemas` | 6 | 7 | Actualizar a 7 |
|
|
| `metricas.database.tablas` | 57 | 65 | Actualizar a 65 |
|
|
| `metricas.database.enums` | 22 | 89 | Actualizar a 89 |
|
|
| `schemas.hse.estado` | "pendiente" | "implementado" | Actualizar |
|
|
| `schemas.hse.tablas` | 0 | 58 | Actualizar a 58 |
|
|
| `schemas.hse.ddl` | "pendiente" | "03-hse-schema-ddl.sql" | Actualizar |
|
|
| `modulos_fase_3.MAA-017.tablas` | 11 items | 58 items | Actualizar lista completa |
|
|
|
|
### 2.2 DATABASE_INVENTORY.yml
|
|
|
|
| Campo | Valor Actual | Valor Correcto | Accion |
|
|
|-------|--------------|----------------|--------|
|
|
| `resumen.schemas` | 6 | 7 | Actualizar |
|
|
| `resumen.tablas` | 57 | 65 | Actualizar |
|
|
| `resumen.enums` | 22 | 89 | Actualizar |
|
|
| Schema `hse` | No existe | Agregar seccion completa | FALTA |
|
|
| Tablas HSE | 0 | 58 | Agregar todas |
|
|
|
|
### 2.3 Tablas Faltantes en Inventarios
|
|
|
|
Las siguientes 58 tablas HSE + 2 core + 2 construction + 3 hr = 65 tablas existen en DDL pero el inventario solo declara 57:
|
|
|
|
**FALTANTES:**
|
|
- Todas las 58 tablas del schema `hse`
|
|
- Las 2 tablas minimas de `core` (tenants, users)
|
|
- La tabla `hr.puestos`
|
|
- La tabla `hr.employee_fraccionamientos`
|
|
- Las tablas de `construction` tienen nombres distintos en inventario vs DDL:
|
|
- Inventario: `fraccionamientos` (sin proyecto_id directo)
|
|
- DDL: `proyectos` + `fraccionamientos` (con proyecto_id)
|
|
|
|
---
|
|
|
|
## 3. TRAZABILIDAD RF -> DDL
|
|
|
|
### 3.1 Modulo MAA-017 Seguridad HSE
|
|
|
|
| RF | Nombre | Tablas DDL | Trazabilidad |
|
|
|----|--------|------------|--------------|
|
|
| RF-MAA017-001 | Gestion de Incidentes | 5 tablas | COMPLETA |
|
|
| RF-MAA017-002 | Control de Capacitaciones | 6 tablas | COMPLETA |
|
|
| RF-MAA017-003 | Inspecciones de Seguridad | 7 tablas | COMPLETA |
|
|
| RF-MAA017-004 | Control de EPP | 7 tablas | COMPLETA |
|
|
| RF-MAA017-005 | Cumplimiento STPS | 11 tablas | COMPLETA |
|
|
| RF-MAA017-006 | Gestion Ambiental | 9 tablas | COMPLETA |
|
|
| RF-MAA017-007 | Permisos de Trabajo | 8 tablas | COMPLETA |
|
|
| RF-MAA017-008 | Indicadores HSE | 7 tablas | COMPLETA |
|
|
|
|
**Total:** 8 RFs -> 58 tablas + 67 ENUMs
|
|
|
|
### 3.2 Otros Modulos (Inventariados pero NO implementados en DDL)
|
|
|
|
| Modulo | Tablas Inventario | Tablas DDL | Estado |
|
|
|--------|-------------------|------------|--------|
|
|
| MAI-002 | 8 | 2 (proyectos, fraccionamientos) | PARCIAL |
|
|
| MAI-003 | 3 | 0 | SIN DDL |
|
|
| MAI-004 | 9 | 0 | SIN DDL |
|
|
| MAI-005 | 5 | 0 | SIN DDL |
|
|
| MAI-007 | 8 | 3 (employees, puestos, employee_fracc) | PARCIAL |
|
|
| MAI-008 | 8 | 0 | SIN DDL |
|
|
| MAI-009 | 5 | 0 | SIN DDL |
|
|
| MAI-010 | 1 | 0 | SIN DDL |
|
|
| MAI-011 | 7 | 0 | SIN DDL |
|
|
| MAI-012 | 3 | 0 | SIN DDL |
|
|
|
|
---
|
|
|
|
## 4. POLITICA DE CARGA LIMPIA
|
|
|
|
### 4.1 Cumplimiento
|
|
|
|
| Check | Estado | Detalle |
|
|
|-------|--------|---------|
|
|
| No carpeta migrations/ | OK | No existe |
|
|
| No archivos fix-*.sql | OK | No existen |
|
|
| No archivos migration-*.sql | OK | No existen |
|
|
| Existe drop-and-recreate-database.sh | OK | Existe y es ejecutable |
|
|
| DDL en schemas/ | OK | 3 archivos SQL |
|
|
| Archivo init existe | OK | init-scripts/01-init-database.sql |
|
|
|
|
**Resultado:** POLITICA CUMPLIDA (6/6 checks)
|
|
|
|
### 4.2 Archivos DDL Actuales
|
|
|
|
```
|
|
database/
|
|
├── init-scripts/
|
|
│ └── 01-init-database.sql # Extensiones, schemas base, funciones core
|
|
├── schemas/
|
|
│ ├── 01-construction-schema-ddl.sql # proyectos, fraccionamientos
|
|
│ ├── 02-hr-schema-ddl.sql # employees, puestos, employee_fracc
|
|
│ └── 03-hse-schema-ddl.sql # 58 tablas HSE
|
|
├── drop-and-recreate-database.sh # Script carga limpia
|
|
└── validate-clean-load-policy.sh # Validador de politica
|
|
```
|
|
|
|
---
|
|
|
|
## 5. ACCIONES REQUERIDAS
|
|
|
|
### 5.1 Prioridad ALTA (Inventarios Desactualizados)
|
|
|
|
1. **Actualizar MASTER_INVENTORY.yml:**
|
|
- Cambiar `schemas.hse.estado` de "pendiente" a "implementado"
|
|
- Cambiar `schemas.hse.tablas` de 0 a 58
|
|
- Agregar `schemas.hse.ddl: 03-hse-schema-ddl.sql`
|
|
- Actualizar conteos globales
|
|
|
|
2. **Actualizar DATABASE_INVENTORY.yml:**
|
|
- Agregar seccion completa para schema `hse` con 58 tablas
|
|
- Agregar 67 ENUMs de HSE
|
|
- Actualizar conteos en resumen
|
|
|
|
### 5.2 Prioridad MEDIA (Completar DDL Faltante)
|
|
|
|
Los siguientes schemas tienen tablas inventariadas pero NO implementadas:
|
|
|
|
| Schema | Tablas Faltantes | DDL Requerido |
|
|
|--------|------------------|---------------|
|
|
| construction | 22 tablas | construction-schema-ddl.sql (expandir) |
|
|
| estimates | 8 tablas | estimates-schema-ddl.sql (crear) |
|
|
| infonavit | 8 tablas | infonavit-schema-ddl.sql (crear) |
|
|
| hr | 5 tablas | hr-schema-ddl.sql (expandir) |
|
|
| inventory | 4 tablas | inventory-ext-schema-ddl.sql (crear) |
|
|
| purchase | 5 tablas | purchase-ext-schema-ddl.sql (crear) |
|
|
|
|
### 5.3 Prioridad BAJA (Documentacion)
|
|
|
|
- Crear TRACEABILITY.yml por modulo cuando se implemente
|
|
- Actualizar README de database/ con estructura actual
|
|
|
|
---
|
|
|
|
## 6. RESUMEN FINAL
|
|
|
|
### Estado Actual
|
|
|
|
```
|
|
DDL Implementado:
|
|
├── core: 2 tablas (tenants, users)
|
|
├── construction: 2 tablas
|
|
├── hr: 3 tablas
|
|
├── hse: 58 tablas + 67 ENUMs ← IMPLEMENTADO (inventario dice "pendiente")
|
|
├── estimates: schema vacio
|
|
├── infonavit: schema vacio
|
|
├── inventory: schema vacio
|
|
└── purchase: schema vacio
|
|
|
|
Total: 65 tablas, 89 ENUMs
|
|
```
|
|
|
|
### Inventarios Declaran
|
|
|
|
```
|
|
MASTER + DATABASE_INVENTORY:
|
|
├── construction: 24 tablas (22 sin DDL)
|
|
├── estimates: 8 tablas (sin DDL)
|
|
├── infonavit: 8 tablas (sin DDL)
|
|
├── hr: 8 tablas (5 sin DDL)
|
|
├── inventory: 4 tablas (sin DDL)
|
|
├── purchase: 5 tablas (sin DDL)
|
|
└── hse: "pendiente" (INCORRECTO - tiene 58 tablas)
|
|
|
|
Total declarado: 57 tablas, 22 ENUMs
|
|
```
|
|
|
|
### Gap Analysis
|
|
|
|
| Categoria | Inventario | DDL Real | Diferencia |
|
|
|-----------|------------|----------|------------|
|
|
| Tablas | 57 | 65 | +8 (HSE +58, otros -50) |
|
|
| ENUMs | 22 | 89 | +67 (todos HSE) |
|
|
| Schemas implementados | 6 | 7 | +1 (hse) |
|
|
|
|
---
|
|
|
|
**Documento generado automaticamente como parte de la validacion de Sprint 0.**
|