138 lines
3.6 KiB
Markdown
138 lines
3.6 KiB
Markdown
# 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 |