以入仓码作为查货入口和轨迹卡片主号码

This commit is contained in:
2026-10-30 19:10:22 +08:00
parent fd1ec32dd6
commit 04f94ad665
8 changed files with 68 additions and 28 deletions
+19 -2
View File
@@ -61,9 +61,26 @@ class OrderDataTests(unittest.TestCase):
'1.2x0.8x0.6m', '[文件]/uploads/20261029100145_6787.txt'):
self.assertEqual(order_data.extract_reference(text), [])
events = self.events('帮我查询物流轨迹')
self.assertIn('订单号', events[0]['t'])
self.assertIn('入仓码', events[0]['t'])
self.assertEqual(events[-1], {'d':1})
def test_direct_inbound_lookup_and_followup_keep_the_inbound_identity(self):
cid=self.client.post('/api/new_chat').json['id']
card=self.events(self.record['inbound_code'],cid)[0]['card']
self.assertEqual(card['no'],self.record['order_no'])
self.assertTrue(card['summary'].startswith('入仓码 '+self.record['inbound_code']))
self.assertEqual(next(item['value'] for item in card['fields'] if item['key']=='number'),self.record['order_no'])
self.import_rows([{**self.record,'gross_weight_kg':'42.000'}],replace=True)
followup=self.events('现在到哪了',cid)[0]['card']
self.assertTrue(followup['summary'].startswith('入仓码 '+self.record['inbound_code']))
self.assertEqual(next(item['value'] for item in followup['fields'] if item['key']=='weight'),'42.000 kg')
def test_missing_inbound_code_is_not_replaced_by_the_internal_order_number(self):
self.import_rows([{**self.record,'inbound_code':None}],replace=True)
card=self.events(self.record['order_no'])[0]['card']
self.assertFalse(any(item['key']=='inbound' for item in card['fields']))
self.assertTrue(card['summary'].startswith('订单号 '+self.record['order_no']))
def test_order_identifiers_remain_queryable_alongside_quantities_and_dates(self):
for message in ('查询 FL202610290001,2026-10-29T16:53:00 提交的',
'FL202610290001 30.000000 KG', 'FL202610290001 100x100x100cm',
@@ -86,7 +103,7 @@ class OrderDataTests(unittest.TestCase):
def test_unimplemented_bulk_queries_ask_for_identifier_instead_of_inventing_records(self):
with patch('logistics_chat.ai_client.post_completion') as model:
events = self.events('列出所有订单')
self.assertIn('请提供订单号', events[0]['t'])
self.assertIn('请提供入仓码', events[0]['t'])
model.assert_not_called()
def test_server_tenant_scope_and_ambiguous_identifiers(self):