# Guía del Comando eliminar_pedimentos_duplicados ## 📝 Descripción El comando `eliminar_pedimentos_duplicados` es una herramienta de mantenimiento que identifica y elimina pedimentos duplicados dentro de una organización, conservando automáticamente el pedimento que tenga más documentos y relaciones asociadas. ## ⚙️ Funcionalidad ### Criterios de Duplicación - Pedimentos con el mismo número dentro de una organización - Solo se consideran duplicados dentro de la misma organización - Se mantiene el pedimento con más: - Documentos (Documents) - COVEs - E-documents - Partidas ## 💻 Uso ### Comando Básico ```bash python manage.py eliminar_pedimentos_duplicados ``` ### Con Argumentos Opcionales ```bash # Procesar organización específica python manage.py eliminar_pedimentos_duplicados --organizacion="uuid-organizacion" # Ajustar tamaño del lote python manage.py eliminar_pedimentos_duplicados --batch-size=50 # Combinar opciones python manage.py eliminar_pedimentos_duplicados --organizacion="uuid" --batch-size=50 ``` ## 🔧 Argumentos Disponibles | Argumento | Descripción | Tipo | Default | |-----------|-------------|------|---------| | --organizacion | UUID de la organización a procesar | string | None | | --batch-size | Número de pedimentos por lote | integer | 100 | ## 📊 Proceso de Ejecución 1. **Inicio** - Validación de argumentos - Conexión a base de datos - Cálculo de duplicados totales 2. **Procesamiento por Lotes** - Identificación de duplicados - Análisis de documentos asociados - Selección de pedimento a mantener 3. **Eliminación** - Eliminación de COVEs asociados - Eliminación de E-documents - Eliminación de Partidas - Eliminación de Documents - Eliminación del pedimento duplicado 4. **Reporte** - Total de grupos procesados - Tiempo de ejecución - Detalles de errores (si existen) ## ⚠️ Precauciones ### Antes de Ejecutar - [x] Realizar respaldo de la base de datos - [x] Verificar espacio en disco - [x] Revisar carga del servidor - [x] Confirmar permisos de usuario ### Durante la Ejecución - No interrumpir el proceso - Monitorear uso de recursos - Revisar logs en tiempo real ### Después de la Ejecución - Verificar integridad de datos - Revisar logs de errores - Documentar cambios realizados ## 🔍 Monitoreo ### Logs y Salidas - Progreso por lote - Errores encontrados - Resumen de operaciones - Tiempo total de ejecución ### Mensajes de Estado - ✓ Operación exitosa - ✗ Error en la operación - ℹ️ Información de progreso ## 🚨 Solución de Problemas ### Errores Comunes 1. **Timeout de Base de Datos** - Reducir tamaño del lote - Verificar conexión a BD - Revisar índices de la tabla 2. **Memoria Insuficiente** - Ajustar batch-size - Verificar recursos del servidor - Liberar memoria cache 3. **Errores de Permisos** - Verificar permisos de usuario - Confirmar acceso a tablas - Revisar configuración de BD ## 📌 Notas Importantes - La eliminación es permanente - El proceso es transaccional por lote - Se puede reanudar si se interrumpe - Los cambios afectan a relaciones en cascada ## 🔄 Mantenimiento ### Recomendaciones 1. Ejecutar periódicamente 2. Mantener respaldos actualizados 3. Revisar logs regularmente 4. Ajustar parámetros según necesidad ### Mejor Momento para Ejecutar - Durante horas de bajo tráfico - Después de respaldos programados - Cuando el sistema está menos cargado ## 📚 Referencias - Documentación de Django Management Commands - Logs del sistema - Documentación de la base de datos