376 lines
20 KiB
Markdown
376 lines
20 KiB
Markdown
# Componentes Específicos de Construcción (No Migrar)
|
|
|
|
**Documento:** Análisis de Componentes Específicos de Construcción
|
|
**Proyecto:** ERP Construcción
|
|
**Fecha:** 2025-11-23
|
|
**Analista:** Architecture-Analyst
|
|
**Estado:** Completado
|
|
|
|
---
|
|
|
|
## Introducción
|
|
|
|
Este documento identifica los componentes del ERP Construcción que son **específicos de la industria de construcción** y que **NO deben migrarse** al ERP Genérico, sino permanecer en el proyecto `erp-construccion`.
|
|
|
|
### Criterios para Considerar un Componente Específico
|
|
|
|
Un componente se considera específico de construcción si cumple **al menos 2 de los siguientes criterios**:
|
|
|
|
1. **Lógica de Negocio Única:** Contiene reglas de negocio exclusivas de construcción/INFONAVIT
|
|
2. **Entidades Únicas:** Maneja entidades que solo existen en construcción (lotes, manzanas, prototipos de vivienda)
|
|
3. **Regulaciones Específicas:** Implementa cumplimiento normativo específico (INFONAVIT, IMSS construcción)
|
|
4. **Cálculos Especializados:** Realiza cálculos únicos de construcción (estimaciones, curva S, avances físicos)
|
|
5. **Bajo Potencial de Reutilización:** Menos del 30% de otros proyectos lo necesitarían
|
|
|
|
---
|
|
|
|
## 1. COMPONENTES DE BASE DE DATOS ESPECÍFICOS
|
|
|
|
### 1.1 Schemas Específicos de Construcción
|
|
|
|
| Schema | Ubicación | Descripción | Razón Específica | Permanece en |
|
|
|--------|-----------|-------------|------------------|--------------|
|
|
| `project_management` | construccion/database/ddl/ | Proyectos, manzanas, lotes, prototipos de vivienda | Estructura jerárquica única de fraccionamientos INFONAVIT | erp-construccion |
|
|
| `construction_management` | construccion/database/ddl/ | Control de obra, avances físicos, recursos de construcción | Lógica de control de obra específica | erp-construccion |
|
|
| `quality_management` | construccion/database/ddl/ | Inspecciones, pruebas de calidad, postventa de vivienda | QA específico de construcción | erp-construccion |
|
|
| `infonavit_management` | construccion/database/ddl/ | Integración INFONAVIT, cumplimiento normativo | Regulación específica México INFONAVIT | erp-construccion |
|
|
|
|
**Total:** 4 schemas específicos (de 7 totales)
|
|
|
|
### 1.2 Tablas Específicas por Schema
|
|
|
|
#### Schema: project_management (100% específico)
|
|
|
|
| Tabla | Descripción | Razón Específica | Permanece en |
|
|
|-------|-------------|------------------|--------------|
|
|
| `projects` | Proyectos de construcción | Campos específicos: tipo_vivienda, normas_infonavit, etapa_obra | erp-construccion |
|
|
| `development_phases` | Fases de desarrollo (etapas de obra) | Nomenclatura INFONAVIT, avances por etapa | erp-construccion |
|
|
| `blocks` | Manzanas del fraccionamiento | Concepto único de urbanización | erp-construccion |
|
|
| `lots` | Lotes individuales | Identificación catastral, escrituración | erp-construccion |
|
|
| `housing_prototypes` | Prototipos de vivienda | Modelos de casa (1 recámara, 2 recámaras, etc.) | erp-construccion |
|
|
| `prototype_assignments` | Asignación de prototipo a lote | Relación específica construcción | erp-construccion |
|
|
| `project_teams` | Equipos de proyecto | Roles específicos: residente, maestro de obra | erp-construccion |
|
|
| `project_milestones` | Hitos de proyecto de construcción | Hitos específicos: cimentación, estructura, acabados | erp-construccion |
|
|
|
|
**Subtotal:** 8 tablas específicas
|
|
|
|
#### Schema: construction_management (100% específico)
|
|
|
|
| Tabla | Descripción | Razón Específica | Permanece en |
|
|
|-------|-------------|------------------|--------------|
|
|
| `work_schedules` | Programas de obra | Curva S, ruta crítica | erp-construccion |
|
|
| `work_schedule_items` | Conceptos del programa | WBS específico de construcción | erp-construccion |
|
|
| `physical_progress` | Avances físicos de obra | Cálculo % avance por concepto | erp-construccion |
|
|
| `progress_evidence` | Evidencias fotográficas de avance | Geo-localización de fotos de obra | erp-construccion |
|
|
| `quality_checklists` | Checklists de calidad en obra | Listas específicas de construcción | erp-construccion |
|
|
| `construction_resources` | Recursos de construcción | Maquinaria, herramienta específica | erp-construccion |
|
|
| `labor_tracking` | Tracking de mano de obra | Jornal, cuadrillas, destajistas | erp-construccion |
|
|
| `material_usage` | Consumo de materiales en obra | Explosión de insumos por concepto | erp-construccion |
|
|
|
|
**Subtotal:** 8 tablas específicas
|
|
|
|
#### Schema: financial_management (10% específico)
|
|
|
|
| Tabla | Descripción | Razón Específica | Permanece en |
|
|
|-------|-------------|------------------|--------------|
|
|
| `construction_estimates` | Estimaciones de obra | Documento específico: generadores, números | erp-construccion |
|
|
|
|
**Subtotal:** 1 tabla específica (el resto es genérico)
|
|
|
|
#### Schema: quality_management (100% específico)
|
|
|
|
| Tabla | Descripción | Razón Específica | Permanece en |
|
|
|-------|-------------|------------------|--------------|
|
|
| `quality_inspections` | Inspecciones de calidad | Inspecciones específicas construcción | erp-construccion |
|
|
| `inspection_items` | Items de inspección | Checklist construcción (cimentación, muros, etc.) | erp-construccion |
|
|
| `test_results` | Resultados de pruebas | Pruebas de laboratorio (concreto, suelo) | erp-construccion |
|
|
| `non_conformities` | No conformidades | Issues específicos de construcción | erp-construccion |
|
|
| `warranty_claims` | Reclamaciones de garantía | Garantías de vivienda post-entrega | erp-construccion |
|
|
| `post_sale_services` | Servicios postventa | Atención post-entrega de vivienda | erp-construccion |
|
|
|
|
**Subtotal:** 6 tablas específicas
|
|
|
|
#### Schema: infonavit_management (100% específico)
|
|
|
|
| Tabla | Descripción | Razón Específica | Permanece en |
|
|
|-------|-------------|------------------|--------------|
|
|
| `beneficiaries` | Derechohabientes INFONAVIT | Específico México INFONAVIT | erp-construccion |
|
|
| `infonavit_credits` | Créditos INFONAVIT | NSS, monto crédito, modalidad | erp-construccion |
|
|
| `lot_assignments` | Asignación lote a derechohabiente | Proceso INFONAVIT de asignación | erp-construccion |
|
|
| `escrituracion` | Proceso de escrituración | Trámite legal específico | erp-construccion |
|
|
| `delivery_acts` | Actas de entrega-recepción | Documento legal entrega vivienda | erp-construccion |
|
|
| `infonavit_compliance` | Cumplimiento normativo INFONAVIT | Reportes regulatorios | erp-construccion |
|
|
| `housing_subsidies` | Subsidios de vivienda | Cofinavit, subsidios federales | erp-construccion |
|
|
|
|
**Subtotal:** 7 tablas específicas
|
|
|
|
**Total Tablas Específicas:** 30 tablas (de ~70 totales = 43%)
|
|
|
|
---
|
|
|
|
## 2. COMPONENTES DE BACKEND ESPECÍFICOS
|
|
|
|
### 2.1 Módulos Backend Específicos
|
|
|
|
| Módulo | Ubicación | Descripción | Razón Específica | Permanece en |
|
|
|--------|-----------|-------------|------------------|--------------|
|
|
| `projects` | backend/src/modules/projects/ | Gestión de proyectos de construcción | Lógica de fraccionamientos, manzanas, lotes | erp-construccion |
|
|
| `budgets` | backend/src/modules/budgets/ | Presupuestos de obra | Explosión de insumos, APUs construcción | erp-construccion |
|
|
| `construction` | backend/src/modules/construction/ | Control de obra y avances | Curva S, ruta crítica, avances físicos | erp-construccion |
|
|
| `estimates` | backend/src/modules/estimates/ | Estimaciones de obra | Generadores, números generadores | erp-construccion |
|
|
| `quality` | backend/src/modules/quality/ | Calidad y postventa | QA específico construcción | erp-construccion |
|
|
| `infonavit` | backend/src/modules/infonavit/ | Integración INFONAVIT | API INFONAVIT, cumplimiento | erp-construccion |
|
|
| `beneficiaries` | backend/src/modules/beneficiaries/ | CRM Derechohabientes | Gestión específica INFONAVIT | erp-construccion |
|
|
| `contracts` | backend/src/modules/contracts/ | Contratos de construcción | Contratos obra, subcontratistas | erp-construccion |
|
|
|
|
**Total:** 8 módulos backend específicos (de ~13 totales = 62%)
|
|
|
|
### 2.2 Servicios Específicos
|
|
|
|
| Servicio | Archivo | Descripción | Razón Específica | Permanece en |
|
|
|----------|---------|-------------|------------------|--------------|
|
|
| `CurvaSCalculator` | services/curva-s.service.ts | Cálculo de curva S | Algoritmo específico construcción | erp-construccion |
|
|
| `PhysicalProgressCalculator` | services/progress.service.ts | Cálculo de avances físicos | Lógica de ponderación de conceptos | erp-construccion |
|
|
| `EstimateGenerator` | services/estimate.service.ts | Generación de estimaciones | Formato específico construcción | erp-construccion |
|
|
| `INFONAVITApiService` | services/infonavit-api.service.ts | Integración API INFONAVIT | API específica México | erp-construccion |
|
|
| `APUCalculator` | services/apu.service.ts | Análisis de precios unitarios | Explosión de insumos construcción | erp-construccion |
|
|
|
|
**Total:** 5 servicios específicos
|
|
|
|
---
|
|
|
|
## 3. COMPONENTES DE FRONTEND ESPECÍFICOS
|
|
|
|
### 3.1 Features Específicas
|
|
|
|
| Feature | Ubicación | Descripción | Razón Específica | Permanece en |
|
|
|---------|-----------|-------------|------------------|--------------|
|
|
| `projects` | frontend/src/features/projects/ | Gestión de proyectos de construcción | UI específica: manzanas, lotes | erp-construccion |
|
|
| `construction` | frontend/src/features/construction/ | Control de obra | Dashboard curva S, avances | erp-construccion |
|
|
| `estimates` | frontend/src/features/estimates/ | Estimaciones | Generadores, formato específico | erp-construccion |
|
|
| `quality` | frontend/src/features/quality/ | Calidad y postventa | Checklists construcción | erp-construccion |
|
|
| `infonavit` | frontend/src/features/infonavit/ | INFONAVIT | UI derechohabientes, créditos | erp-construccion |
|
|
| `beneficiaries` | frontend/src/features/beneficiaries/ | CRM Derechohabientes | Pipeline ventas INFONAVIT | erp-construccion |
|
|
|
|
**Total:** 6 features específicas
|
|
|
|
### 3.2 Componentes UI Específicos
|
|
|
|
| Componente | Archivo | Descripción | Razón Específica | Permanece en |
|
|
|------------|---------|-------------|------------------|--------------|
|
|
| `LotSelector` | components/LotSelector.tsx | Selector de lotes en manzana | Visualización plano manzana | erp-construccion |
|
|
| `CurvaSChart` | components/CurvaSChart.tsx | Gráfica curva S | Chart específico construcción | erp-construccion |
|
|
| `ProgressTracker` | components/ProgressTracker.tsx | Tracker de avances | UI específica % avances | erp-construccion |
|
|
| `EstimateForm` | components/EstimateForm.tsx | Formulario de estimación | Generadores, conceptos obra | erp-construccion |
|
|
| `QualityChecklist` | components/QualityChecklist.tsx | Checklist de calidad | Items específicos construcción | erp-construccion |
|
|
| `PrototypeViewer` | components/PrototypeViewer.tsx | Visualizador de prototipos | Renders 3D de viviendas | erp-construccion |
|
|
| `INFONAVITForm` | components/INFONAVITForm.tsx | Formulario INFONAVIT | Campos específicos INFONAVIT | erp-construccion |
|
|
|
|
**Total:** 7 componentes UI específicos (de ~50 totales = 14%)
|
|
|
|
### 3.3 Páginas Específicas
|
|
|
|
| Página | Ruta | Descripción | Razón Específica | Permanece en |
|
|
|--------|------|-------------|------------------|--------------|
|
|
| Projects List | `/projects` | Lista de proyectos construcción | Filtros específicos construcción | erp-construccion |
|
|
| Project Detail | `/projects/:id` | Detalle proyecto (manzanas, lotes) | Vista específica fraccionamiento | erp-construccion |
|
|
| Budgets | `/budgets` | Presupuestos de obra | APUs, explosión insumos | erp-construccion |
|
|
| Construction Control | `/construction` | Control de obra | Curva S, avances físicos | erp-construccion |
|
|
| Estimates | `/estimates` | Estimaciones | Generadores, formato específico | erp-construccion |
|
|
| Quality | `/quality` | Calidad y postventa | Inspecciones, garantías | erp-construccion |
|
|
| INFONAVIT | `/infonavit` | Dashboard INFONAVIT | Derechohabientes, créditos | erp-construccion |
|
|
|
|
**Total:** 7 páginas específicas (de ~30 totales = 23%)
|
|
|
|
---
|
|
|
|
## 4. LÓGICA DE NEGOCIO ESPECÍFICA
|
|
|
|
### 4.1 Cálculos Especializados
|
|
|
|
| Cálculo | Descripción | Razón Específica | Permanece en |
|
|
|---------|-------------|------------------|--------------|
|
|
| **Curva S** | Programación de obra con curva S | Algoritmo específico construcción | erp-construccion |
|
|
| **Avance Físico** | Cálculo de % avance ponderado | Ponderación por concepto y monto | erp-construccion |
|
|
| **Explosión de Insumos** | APU → Materiales/Mano de obra | Análisis de precios unitarios | erp-construccion |
|
|
| **Estimación de Obra** | Generación de estimaciones | Formato constructor/supervisor | erp-construccion |
|
|
| **Presupuesto de Prototipo** | Presupuesto base por m² | Cálculo específico vivienda | erp-construccion |
|
|
|
|
### 4.2 Workflows Específicos
|
|
|
|
| Workflow | Descripción | Razón Específica | Permanece en |
|
|
|----------|-------------|------------------|--------------|
|
|
| **Licitación → Obra → Entrega** | Ciclo de vida proyecto construcción | Estados específicos construcción | erp-construccion |
|
|
| **Asignación de Lotes** | Derechohabiente → Lote | Proceso INFONAVIT | erp-construccion |
|
|
| **Estimación → Pago** | Flujo estimaciones de obra | Formato y aprobaciones específicas | erp-construccion |
|
|
| **Inspección → Entrega** | Calidad y entrega de vivienda | QA + acta entrega-recepción | erp-construccion |
|
|
|
|
### 4.3 Validaciones Específicas
|
|
|
|
| Validación | Descripción | Razón Específica | Permanece en |
|
|
|------------|-------------|------------------|--------------|
|
|
| **NSS válido** | Validar Número de Seguro Social | Formato IMSS México | erp-construccion |
|
|
| **Crédito INFONAVIT** | Validar monto crédito vs precio vivienda | Reglas INFONAVIT | erp-construccion |
|
|
| **% Avance Físico** | Validar avance ≤ 100% | Lógica de control de obra | erp-construccion |
|
|
| **Lote disponible** | Validar lote no asignado | Regla de asignación única | erp-construccion |
|
|
|
|
---
|
|
|
|
## 5. RESUMEN CUANTITATIVO
|
|
|
|
| Categoría | Componentes Específicos | Componentes Totales | % Específico |
|
|
|-----------|------------------------|---------------------|--------------|
|
|
| **Schemas DB** | 4 | 7 | 57% |
|
|
| **Tablas DB** | 30 | 70+ | 43% |
|
|
| **Módulos Backend** | 8 | 13 | 62% |
|
|
| **Servicios Backend** | 5 | 12 | 42% |
|
|
| **Features Frontend** | 6 | 10 | 60% |
|
|
| **Componentes UI** | 7 | 50 | 14% |
|
|
| **Páginas** | 7 | 30+ | 23% |
|
|
| **TOTAL** | **67 componentes** | **235+ componentes** | **~29%** |
|
|
|
|
**Complemento:**
|
|
- Componentes Genéricos: 143 (61%)
|
|
- Componentes Específicos: 67 (29%)
|
|
- Componentes Compartidos (adaptables): 25 (10%)
|
|
|
|
---
|
|
|
|
## 6. COMPONENTES COMPARTIDOS (Adaptar con Configuración)
|
|
|
|
Existen componentes que podrían compartirse entre genérico y específico mediante configuración:
|
|
|
|
| Componente | Tipo | Estrategia | Ubicación |
|
|
|------------|------|------------|-----------|
|
|
| `DataTable` | UI | Genérico con columnas configurables | erp-generic (shared) |
|
|
| `Dashboard` | UI | Template genérico + widgets específicos | erp-generic (template) + erp-construccion (widgets) |
|
|
| `Reports` | Backend | Motor de reportes genérico + templates específicos | erp-generic (engine) + erp-construccion (templates) |
|
|
| `Notifications` | Backend | Sistema genérico + eventos específicos | erp-generic (system) + erp-construccion (events) |
|
|
| `Workflows` | Backend | Engine genérico + estados específicos | erp-generic (engine) + erp-construccion (definitions) |
|
|
|
|
**Total:** 5 componentes compartidos/configurables
|
|
|
|
---
|
|
|
|
## 7. JUSTIFICACIÓN POR QUÉ NO MIGRAR
|
|
|
|
### 7.1 Bajo Potencial de Reutilización
|
|
|
|
**Componentes de INFONAVIT:**
|
|
- **Uso:** Solo México, solo vivienda social
|
|
- **Proyectos que lo usarían:** 1 (solo ERP Construcción)
|
|
- **Reutilización:** 0%
|
|
|
|
**Componentes de Fraccionamientos:**
|
|
- **Uso:** Específico de urbanización/vivienda horizontal
|
|
- **Proyectos que lo usarían:** 1-2 (solo construcción, quizá inmobiliaria)
|
|
- **Reutilización:** 10%
|
|
|
|
**Componentes de Control de Obra:**
|
|
- **Uso:** Construcción, posiblemente manufactura por proyectos
|
|
- **Proyectos que lo usarían:** 2 (construcción, mecánicas con adaptación)
|
|
- **Reutilización:** 20%
|
|
|
|
### 7.2 Complejidad de Abstracción
|
|
|
|
Algunos componentes específicos son tan complejos que intentar abstraerlos al genérico resultaría en:
|
|
1. **Over-engineering:** Demasiada complejidad para soportar edge cases
|
|
2. **Pérdida de simplicidad:** El genérico se volvería complejo
|
|
3. **Mantenibilidad reducida:** Difícil de mantener
|
|
4. **ROI negativo:** Más esfuerzo de abstracción que beneficio
|
|
|
|
**Ejemplos:**
|
|
- **Curva S:** Algoritmo complejo, específico construcción
|
|
- **Estimaciones:** Formato muy específico, regulado
|
|
- **APUs:** Explosión de insumos única construcción
|
|
|
|
---
|
|
|
|
## 8. ESTRATEGIA DE MANTENIMIENTO
|
|
|
|
### 8.1 Componentes Específicos en ERP Construcción
|
|
|
|
**Ubicación:**
|
|
```
|
|
projects/
|
|
└── erp-construccion/
|
|
├── apps/
|
|
│ ├── backend/
|
|
│ │ └── src/
|
|
│ │ └── modules/
|
|
│ │ ├── projects/ # Específico
|
|
│ │ ├── construction/ # Específico
|
|
│ │ ├── estimates/ # Específico
|
|
│ │ ├── quality/ # Específico
|
|
│ │ ├── infonavit/ # Específico
|
|
│ │ └── beneficiaries/ # Específico
|
|
│ │
|
|
│ └── frontend/
|
|
│ └── src/
|
|
│ └── features/
|
|
│ ├── projects/ # Específico
|
|
│ ├── construction/ # Específico
|
|
│ ├── estimates/ # Específico
|
|
│ └── infonavit/ # Específico
|
|
│
|
|
└── database/
|
|
└── ddl/
|
|
├── project_management/ # Específico
|
|
├── construction_management/ # Específico
|
|
├── quality_management/ # Específico
|
|
└── infonavit_management/ # Específico
|
|
```
|
|
|
|
### 8.2 Dependencias con ERP Genérico
|
|
|
|
**ERP Construcción depende de ERP Genérico:**
|
|
```json
|
|
// erp-construccion/package.json
|
|
{
|
|
"dependencies": {
|
|
"@erp-generic/core": "^1.0.0", // Auth, RBAC, Companies
|
|
"@erp-generic/financial": "^1.0.0", // Contabilidad base
|
|
"@erp-generic/purchasing": "^1.0.0", // Compras base
|
|
"@erp-generic/ui-components": "^1.0.0" // Componentes UI
|
|
}
|
|
}
|
|
```
|
|
|
|
**Relación:**
|
|
- ERP Construcción **EXTIENDE** ERP Genérico
|
|
- ERP Construcción **NO modifica** ERP Genérico
|
|
- ERP Genérico es **independiente** de Construcción
|
|
|
|
---
|
|
|
|
## 9. CONCLUSIONES
|
|
|
|
### 9.1 Hallazgos Principales
|
|
|
|
1. **29% de componentes son específicos:** 67 de 235 componentes deben permanecer en ERP Construcción
|
|
2. **INFONAVIT es altamente específico:** 7 tablas + 2 módulos + 2 features solo para México
|
|
3. **Control de Obra tiene potencial limitado:** Solo 20% reutilización (construcción + mecánicas)
|
|
4. **UI es mayormente genérica:** Solo 14% de componentes UI son específicos
|
|
|
|
### 9.2 Recomendaciones
|
|
|
|
1. **NO migrar componentes INFONAVIT:** 0% reutilización en otros proyectos
|
|
2. **NO migrar componentes de fraccionamientos:** Muy específicos de vivienda horizontal
|
|
3. **CONSIDERAR abstraer workflows:** Motor de workflows genérico + estados específicos
|
|
4. **MANTENER separación clara:** ERP Construcción extiende, no modifica Genérico
|
|
|
|
### 9.3 Validación de la Decisión
|
|
|
|
**Criterios de éxito:**
|
|
- ✅ ERP Genérico NO contiene lógica de construcción
|
|
- ✅ ERP Construcción puede evolucionar independientemente
|
|
- ✅ Otros proyectos (Vidrio, Mecánicas) NO necesitan componentes específicos construcción
|
|
- ✅ Mantenibilidad: Cada proyecto es responsable de su lógica específica
|
|
|
|
---
|
|
|
|
**Fecha de Creación:** 2025-11-23
|
|
**Versión:** 1.0
|
|
**Estado:** Completado
|
|
**Próximo Documento:** MEJORAS-ARQUITECTONICAS.md
|