让成交卡等报价文件真正发出后再出现,并收紧 PDF 顶部留白,避免抬头被裁或空一截。
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -70,7 +70,8 @@ class LibreOfficeConverter:
|
||||
str(exe),
|
||||
"--headless",
|
||||
"--convert-to",
|
||||
"pdf",
|
||||
# calc 导出才认 Excel 的 A4/居中/页宽缩放;裸 pdf 会裁顶、偏左
|
||||
"pdf:calc_pdf_Export",
|
||||
"--outdir",
|
||||
str(out_dir),
|
||||
str(source),
|
||||
|
||||
@@ -41,6 +41,8 @@ def enqueue_pdf_job(
|
||||
redis: Optional[RedisRuntime] = None,
|
||||
touser: str = "",
|
||||
filename: str = "",
|
||||
quote: Optional[dict[str, Any]] = None,
|
||||
facts: Optional[dict[str, Any]] = None,
|
||||
) -> PdfEnqueueResult:
|
||||
"""Excel→PDF 任务入队;真正转换只在 LibreOffice 槽。"""
|
||||
rt = redis or get_redis_runtime()
|
||||
@@ -61,6 +63,8 @@ def enqueue_pdf_job(
|
||||
"quote_version": quote_version,
|
||||
"touser": touser,
|
||||
"filename": filename,
|
||||
"quote": dict(quote or {}),
|
||||
"facts": dict(facts or {}),
|
||||
}
|
||||
entry_id = q.enqueue(payload=payload, idempotency_key=idempotency_key)
|
||||
logger.info("pdf.enqueue id=%s inquiry=%s", entry_id, inquiry_no or "-")
|
||||
@@ -142,5 +146,23 @@ def _deliver_quote_file(data: dict[str, Any], result: LibreOfficeResult) -> None
|
||||
"filename": filename,
|
||||
},
|
||||
)
|
||||
# 文件先入队,成交卡后入队;出站单线程保证销售先看到文件
|
||||
quote = data.get("quote") if isinstance(data.get("quote"), dict) else {}
|
||||
facts = data.get("facts") if isinstance(data.get("facts"), dict) else {}
|
||||
if wo:
|
||||
from agent.policy import inquiry_copy as copy
|
||||
|
||||
store.enqueue_outbound(
|
||||
touser=touser,
|
||||
content=copy.deal_card(work_order_no=wo, quote=quote, facts=facts),
|
||||
dedupe_key=f"deal-card:{wo}:{filename}",
|
||||
payload=copy.deal_wecom_payload(work_order_no=wo, quote=quote, facts=facts),
|
||||
)
|
||||
try:
|
||||
from agent.policy.air_text_flow import get_air_text_flow
|
||||
|
||||
get_air_text_flow().mark_wait_deal(touser, wo)
|
||||
except Exception:
|
||||
logger.exception("PDF 出文件后未能切到成交跟进 inquiry=%s", wo)
|
||||
except Exception:
|
||||
logger.exception("PDF 出站入队失败 inquiry=%s", wo)
|
||||
|
||||
Reference in New Issue
Block a user