报价单发出后还在等成交时,再说继续工单没有回复。改为再发一次成交、未成交、协商中。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-10-09 08:21:28 +08:00
co-authored by Cursor
parent 2e8918a5c9
commit b15f64f419
4 changed files with 9 additions and 5 deletions
+5 -2
View File
@@ -882,8 +882,11 @@ class AirTextInquiryFlow:
reply(copy.quote_generating())
return "wait_file"
if sess.phase == "wait_deal":
# 成交卡已经绑在报价文件那条出站上。只续办、没说成交结果时不再另发一张卡。
# 原话写了已成交/未成交/协商中时,由 _close_spoken_deal 先入账,不会走到这里。
# 成交卡原来挂在报价单那条消息上,聊天一上滑就找不到。
# 销售再说继续工单、又没写成交结果时,再发一次成交/未成交/协商中。
# 原话已经写了结果时,_close_spoken_deal 会先入账,不会走到这里。
sess.allowed = (copy.BTN_DEAL, copy.BTN_LOST, copy.BTN_NEGOTIATE)
self._emit_deal(reply, sess)
return "wait_deal"
if sess.phase == "wait_lost_reason":
reply(copy.deal_ack("未成交", sess.work_order_no))
+2 -1
View File
@@ -1559,7 +1559,8 @@ class AirTextInquiryTests(unittest.TestCase):
source="test",
)
self.assertEqual(replay, "wait_deal")
self.assertNotIn("咨询成交状态", "\n".join(again))
self.assertIn("咨询成交状态", "\n".join(again))
self.assertNotIn("请稍候", "\n".join(again))
self.assertEqual(http.session_of("u-pdf-x").phase, "wait_deal")
def test_deal_click_works_while_http_still_wait_file(self) -> None:
+1 -1
View File
@@ -228,7 +228,7 @@ class ContinueTicketTests(unittest.TestCase):
sender_id="u6", work_order_no=wo, reply=reply
)
self.assertEqual(phase, "wait_deal")
self.assertFalse(any("成交" in x or copy.BTN_DEAL in x for x in replies))
self.assertTrue(any("【成交】【未成交】【协商中】" in x for x in replies))
def test_resume_spoken_deal_closes(self) -> None:
"""报价文件已出后,原话写工单号加已成交,要入账并回复,不能没反应。"""
+1 -1
View File
@@ -1580,7 +1580,7 @@ class SeaContinueTests(unittest.TestCase):
phase = handle_continue_thread(msg, thread_id=wo, store=store)
self.assertEqual(phase, "wait_deal")
joined = "\n".join(item.content for item in store._outbox.values())
self.assertFalse(any(x in joined for x in (copy.BTN_DEAL, "成交")))
self.assertIn("【成交】【未成交】【协商中】", joined)
self.assertNotIn(copy.BTN_SKIP_COLLAB, joined)