Files
descarga_adjuntos_correos_cpe/docs/mermaid.md
T

2.2 KiB

graph TD
    Start((<b>INICIO</b><br/>main.py)) --> Init[Configurar Logger y<br/>Base de Datos SQLITE]
    Init --> Auth[Obtener Token de Acceso<br/>Outlook API]

    subgraph MailConfigLoop [Bucle por cada Cuenta de Correo en config.json]
        direction TB
        GetEmails[Consultar correos del día<br/>outlook_utilities.get_emails]
        GetEmails --> FilterNew[Filtrar correos no procesados<br/>email_services.filtrar_correos_nuevos]

        subgraph EmailLoop [Bucle por cada Correo Nuevo con Adjuntos]
            direction TB
            Download[Descargar adjuntos a /adjuntos/temp<br/>outlook_utilities.download_attachments]
            Download --> Unzip[Descomprimir ZIPs y filtrar archivos<br/>email_services.procesar_adjuntos_email]

            subgraph DataExtraction [Extracción de Metadatos]
                direction LR
                ParseXML[Parsear XML<br/>document_processor.obtener_datos_xml]
                ParsePDF[Parsear PDF multilínea<br/>pdf_utilities.obtener_datos_pdf]
            end

            Unzip --> DataExtraction

            DataExtraction --> Grouping[Lógica de Agrupación y Renombrado<br/>file_manager.procesar_renombrado_agrupado]

            Grouping --> Rename[Renombrado físico de archivos<br/>F001.xml -> RUC-01-F001.xml]

            Rename --> MoveLocal[Mover archivos agrupados a /resultado/<br/>file_manager.mover_archivos_a_resultado]
        end

        FilterNew --> EmailLoop

        EmailLoop --> SMBSync[<b>Sincronización SMB</b><br/>smb_utils.sincronizar_a_smb]

        subgraph SMBSteps [Proceso SMB]
            direction LR
            Mount[Montar Unidad según SO<br/>mount_smbfs / net use] --> Rsync[Ejecutar rsync -av<br/>--remove-source-files]
        end

        SMBSync --- SMBSteps
    end

    Auth --> MailConfigLoop

    MailConfigLoop --> ExportJSON[Exportar resultados finales a JSON<br/>/output_json/YYYY-MM-DD.json]
    ExportJSON --> End((<b>FIN</b>))

    style Start fill:#f9f,stroke:#333,stroke-width:2px
    style End fill:#f9f,stroke:#333,stroke-width:2px
    style MailConfigLoop fill:#e1f5fe,stroke:#01579b,stroke-dasharray: 5 5
    style EmailLoop fill:#fff3e0,stroke:#e65100
    style SMBSync fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px