From 9d79fe932be06867083fb6e949f71d796ca66c53 Mon Sep 17 00:00:00 2001 From: Lizandro Guarnizo <77708265+lizandrogd@users.noreply.github.com> Date: Fri, 17 Jul 2026 15:13:14 -0500 Subject: [PATCH] =?UTF-8?q?fix:=20reduce=20diagnosticos=20batch=20500?= =?UTF-8?q?=E2=86=92200,=20add=20start=5Ffrom=20resume=20param?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- app/routes/envios.py | 11 +++++++---- app/templates/envios_erp.html | 27 +++++++++++++++++++-------- 2 files changed, 26 insertions(+), 12 deletions(-) diff --git a/app/routes/envios.py b/app/routes/envios.py index 4120cd8..4392c0b 100644 --- a/app/routes/envios.py +++ b/app/routes/envios.py @@ -45,8 +45,11 @@ async def erp_sync_now( @router.post("/erp/sync-diagnosticos") -async def erp_sync_diagnosticos(user: dict = Depends(get_current_user)): - """Migra los 12.422 diagnósticos CIE-10 de Firebird → WhatsApp en lotes de 500.""" +async def erp_sync_diagnosticos( + user: dict = Depends(get_current_user), + start_from: int = Query(default=0, ge=0, description="Índice desde el que reanudar"), +): + """Migra los 12.422 diagnósticos CIE-10 de Firebird → WhatsApp en lotes de 200.""" try: conn = get_connection() configs = {row["key"]: row["value"] for row in conn.execute("SELECT * FROM config").fetchall()} @@ -72,14 +75,14 @@ async def erp_sync_diagnosticos(user: dict = Depends(get_current_user)): diagnosticos = [{"cod": r["COD_DIAG"], "concepto": r["CONCEPTO"]} for r in (rows or [])] total = len(diagnosticos) - batch_size = 500 + batch_size = 200 url = f"{wa_url}/api/lab/ingest_diagnosticos.php" headers = {"Content-Type": "application/json", "X-Lab-Key": wa_key} insertados = 0 errores = [] async with httpx.AsyncClient(timeout=60) as client: - for i in range(0, total, batch_size): + for i in range(start_from, total, batch_size): lote = diagnosticos[i:i + batch_size] try: resp = await client.post(url, json={"rows": lote}, headers=headers) diff --git a/app/templates/envios_erp.html b/app/templates/envios_erp.html index f40d328..e746a31 100644 --- a/app/templates/envios_erp.html +++ b/app/templates/envios_erp.html @@ -87,7 +87,7 @@ 12.422 diagnósticos de Firebird → WhatsApp
-

Ejecutar una vez para poblar la tabla cie10_diagnosticos en WhatsApp. Requiere correr la migración SQL primero.

+

Pobla la tabla cie10_diagnosticos en WhatsApp. Idempotente — se puede re-ejecutar. Si corta a la mitad, usa "Reanudar" para continuar desde donde quedó.

` : ''}
`; } } catch(e) {