海运补问保留贸易条款;陆运多车型价表按列回填,车型码不进起始地

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
linmianxun
2026-10-29 10:53:30 +08:00
co-authored by Cursor
parent 56ba8e93b5
commit eca0a7ad93
10 changed files with 809 additions and 18 deletions
@@ -360,6 +360,43 @@ class LandGroupCollabTests(unittest.TestCase):
"只有这张单的销售能调价。航线请继续报价,价格未改。",
)
def test_land_multi_vehicle_rates_attach_segment(self) -> None:
"""多车型价挂到 landSegments,出单才能按车型列写入;OD 用工单事实。"""
from agent.llm.extract_text import extract_product_quote
from agent.policy.sea_group_ops import _attach_land_vehicle_rates_segment
quote = extract_product_quote(
"太原富士康--春疆\n车型:\n5T/8T:13000\n10T:14000\n40HQ/45HQ:19500\n含0点税",
business_line="LAND",
)
view = {
"facts": {
"起运港": "太原富士康",
"目的港": "越南北寧市南山工業區",
}
}
out = _attach_land_vehicle_rates_segment(quote, view)
segs = list(out.get("landSegments") or [])
self.assertEqual(len(segs), 1)
seg = segs[0]
self.assertEqual(str(seg.get("origin") or ""), "太原富士康")
self.assertEqual(str(seg.get("destination") or ""), "越南北寧市南山工業區")
rates = dict(seg.get("vehicleRates") or {})
self.assertEqual(rates.get("5T"), "13000")
self.assertEqual(rates.get("45HQ"), "19500")
self.assertEqual(str(seg.get("remark") or ""), "含0点税")
self.assertFalse(str(seg.get("salePrice") or "").strip())
self.assertEqual(list(out.get("fee_rows") or []), [])
# 收货地址归一键也能取到目的地
out2 = _attach_land_vehicle_rates_segment(
quote,
{"facts": {"提货地址": "太原富士康", "收货地址": "越南北寧市南山工業區"}},
)
self.assertEqual(
str((out2.get("landSegments") or [{}])[0].get("destination") or ""),
"越南北寧市南山工業區",
)
def test_land_bare_price_defaults_to_land_fee(self) -> None:
"""陆运「价格为1RMB/KG」无费用名时默认陆运费,禁止落成海运费(WO118)。"""
from agent.llm.extract_text import extract_product_quote