11 KiB
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 basecore.users- Usuarios base
construction (2 tablas)
construction.proyectos- Proyectos de desarrolloconstruction.fraccionamientos- Obras/fraccionamientos
hr (3 tablas)
hr.employees- Empleadoshr.puestos- Catalogo de puestoshr.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.incidenteshse.incidente_involucradoshse.incidente_investigacionhse.incidente_accioneshse.incidente_evidencias
RF-MAA017-002 Control de Capacitaciones (6 tablas):
hse.capacitacioneshse.capacitacion_matrizhse.instructoreshse.capacitacion_sesioneshse.capacitacion_asistenteshse.constancias_dc3
RF-MAA017-003 Inspecciones de Seguridad (7 tablas):
hse.tipos_inspeccionhse.checklist_itemshse.programa_inspeccioneshse.inspeccioneshse.inspeccion_evaluacioneshse.hallazgoshse.hallazgo_evidencias
RF-MAA017-004 Control de EPP (7 tablas):
hse.epp_catalogohse.epp_matriz_puestohse.epp_asignacioneshse.epp_inspeccioneshse.epp_bajashse.epp_inventariohse.epp_movimientos
RF-MAA017-005 Cumplimiento STPS (11 tablas):
hse.normas_stpshse.norma_requisitoshse.cumplimiento_obrahse.comision_seguridadhse.comision_integranteshse.comision_recorridoshse.programa_seguridadhse.programa_actividadeshse.documentos_stpshse.auditorias
RF-MAA017-006 Gestion Ambiental (9 tablas):
hse.residuos_catalogohse.residuos_generacionhse.almacen_temporalhse.proveedores_ambientaleshse.manifiestos_residuoshse.manifiesto_detallehse.impacto_ambientalhse.quejas_ambientales
RF-MAA017-007 Permisos de Trabajo (8 tablas):
hse.tipos_permiso_trabajohse.permisos_trabajohse.permiso_personalhse.permiso_autorizacioneshse.permiso_checklisthse.permiso_monitoreoshse.permiso_eventoshse.permiso_documentos
RF-MAA017-008 Indicadores HSE (6 tablas):
hse.indicadores_confighse.indicadores_meta_obrahse.indicadores_valoreshse.horas_trabajadashse.dias_sin_accidentehse.reportes_programadoshse.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
constructiontienen nombres distintos en inventario vs DDL:- Inventario:
fraccionamientos(sin proyecto_id directo) - DDL:
proyectos+fraccionamientos(con proyecto_id)
- Inventario:
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)
-
Actualizar MASTER_INVENTORY.yml:
- Cambiar
schemas.hse.estadode "pendiente" a "implementado" - Cambiar
schemas.hse.tablasde 0 a 58 - Agregar
schemas.hse.ddl: 03-hse-schema-ddl.sql - Actualizar conteos globales
- Cambiar
-
Actualizar DATABASE_INVENTORY.yml:
- Agregar seccion completa para schema
hsecon 58 tablas - Agregar 67 ENUMs de HSE
- Actualizar conteos en resumen
- Agregar seccion completa para schema
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.