落地销售调价:按自然语言改价并单独记销售价,拉群和后台不再把调后价当成 TMS 原价。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-20 14:40:20 +08:00
co-authored by Cursor
parent e4743541f7
commit 26dd5d72a1
36 changed files with 2795 additions and 176 deletions
@@ -74,8 +74,8 @@ def _reask_one(row: dict[str, Any], *, settings: Settings) -> bool:
return False
from agent.channel.queue import get_message_store
text = copy.deal_card(work_order_no=no, quote=quote, facts=facts)
payload = copy.deal_wecom_payload(work_order_no=no, quote=quote, facts=facts)
text = copy.deal_card(work_order_no=no, quote=quote, facts=facts, business_line=line)
payload = copy.deal_wecom_payload(work_order_no=no, quote=quote, facts=facts, business_line=line)
ok, info = get_message_store().enqueue_outbound(
touser=sales,
content=text,
@@ -115,6 +115,8 @@ def _send_group_reask(
return False
carder = getattr(client, "send_group_card", None)
if callable(carder):
payload = copy.deal_wecom_payload(work_order_no=work_order_no, quote=quote, facts=facts)
payload = copy.deal_wecom_payload(
work_order_no=work_order_no, quote=quote, facts=facts, business_line=business_line
)
carder(chat_id=chat_id, template_card=payload.get("template_card") or {})
return True
+3 -2
View File
@@ -138,6 +138,7 @@ def _deliver_quote_file(data: dict[str, Any], result: LibreOfficeResult) -> None
store = get_message_store()
quote = data.get("quote") if isinstance(data.get("quote"), dict) else {}
facts = data.get("facts") if isinstance(data.get("facts"), dict) else {}
line = str(data.get("business_line") or (quote or {}).get("business_line") or "").strip()
from agent.policy import inquiry_copy as copy
store.enqueue_outbound(
@@ -145,7 +146,7 @@ def _deliver_quote_file(data: dict[str, Any], result: LibreOfficeResult) -> None
content="\n".join(
[
file_ready(kind="PDF", work_order_no=wo, filename=filename),
copy.deal_card(work_order_no=wo, quote=quote, facts=facts),
copy.deal_card(work_order_no=wo, quote=quote, facts=facts, business_line=line),
]
),
dedupe_key=f"pdf-file:{wo}:{filename}",
@@ -154,7 +155,7 @@ def _deliver_quote_file(data: dict[str, Any], result: LibreOfficeResult) -> None
"filepath": result.pdf_path,
"filename": filename,
"followup_card": copy.deal_wecom_payload(
work_order_no=wo, quote=quote, facts=facts
work_order_no=wo, quote=quote, facts=facts, business_line=line
).get("template_card")
or {},
},