diff --git a/inquiry-agent/agent/policy/air_text_flow.py b/inquiry-agent/agent/policy/air_text_flow.py index c98e441..2ae649f 100644 --- a/inquiry-agent/agent/policy/air_text_flow.py +++ b/inquiry-agent/agent/policy/air_text_flow.py @@ -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)) diff --git a/inquiry-agent/tests/test_air_text_inquiry.py b/inquiry-agent/tests/test_air_text_inquiry.py index 3900739..63eaab7 100644 --- a/inquiry-agent/tests/test_air_text_inquiry.py +++ b/inquiry-agent/tests/test_air_text_inquiry.py @@ -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: diff --git a/inquiry-agent/tests/test_continue_ticket.py b/inquiry-agent/tests/test_continue_ticket.py index 6d529f2..07efa4a 100644 --- a/inquiry-agent/tests/test_continue_ticket.py +++ b/inquiry-agent/tests/test_continue_ticket.py @@ -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: """报价文件已出后,原话写工单号加已成交,要入账并回复,不能没反应。""" diff --git a/inquiry-agent/tests/test_sea_text_inquiry.py b/inquiry-agent/tests/test_sea_text_inquiry.py index b1a6a4f..66900d9 100644 --- a/inquiry-agent/tests/test_sea_text_inquiry.py +++ b/inquiry-agent/tests/test_sea_text_inquiry.py @@ -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)