提交 bda2e6df authored 作者: 贺阳's avatar 贺阳

尾程匹配托盘的优化

上级 7b89420b
...@@ -721,16 +721,16 @@ class OrderController(http.Controller): ...@@ -721,16 +721,16 @@ class OrderController(http.Controller):
# 3. 预加载托盘数据(如果需要) # 3. 预加载托盘数据(如果需要)
pallet_data = {} pallet_data = {}
if is_pallet: if is_pallet:
# 先匹配所有服务商,获取ID列表 # 使用已构建的provider_index匹配服务商,获取ID列表
provider_ids = set() provider_ids = set()
for pkg in big_packages: for pkg in big_packages:
if not pkg.next_provider_name: if not pkg.next_provider_name:
continue continue
for provider in all_providers: provider_key = pkg.next_provider_name.lower().strip()
if provider.match_provider(pkg.next_provider_name, all_providers): provider = provider_index.get(provider_key)
provider_ids.add(provider.id) if provider:
break provider_ids.add(provider.id)
# 批量查询托盘数据 # 批量查询托盘数据
if provider_ids: if provider_ids:
pallet_domain = [('express_company_id', 'in', list(provider_ids))] pallet_domain = [('express_company_id', 'in', list(provider_ids))]
...@@ -738,7 +738,7 @@ class OrderController(http.Controller): ...@@ -738,7 +738,7 @@ class OrderController(http.Controller):
pallet_domain.append(('usage_state', '=', 'unused')) pallet_domain.append(('usage_state', '=', 'unused'))
else: else:
pallet_domain.append(('usage_state', '=', 'used')) pallet_domain.append(('usage_state', '=', 'used'))
pallets = request.env['cc.pallet'].sudo().search(pallet_domain) pallets = request.env['cc.pallet'].sudo().search(pallet_domain)
for pallet in pallets: for pallet in pallets:
if pallet.express_company_id.id not in pallet_data: if pallet.express_company_id.id not in pallet_data:
...@@ -750,13 +750,13 @@ class OrderController(http.Controller): ...@@ -750,13 +750,13 @@ class OrderController(http.Controller):
for pkg in big_packages: for pkg in big_packages:
if not pkg.next_provider_name: if not pkg.next_provider_name:
continue continue
next_provider_name=pkg.next_provider_name.lower().strip()
# 使用缓存的匹配结果 # 使用缓存的匹配结果
if pkg.next_provider_name not in provider_map: if next_provider_name not in provider_map:
provider = provider_index.get(pkg.next_provider_name.lower().strip()) provider = provider_index.get(next_provider_name)
provider_map[pkg.next_provider_name] = provider provider_map[next_provider_name] = provider
provider = provider_map[pkg.next_provider_name] provider = provider_map[next_provider_name]
if not provider: if not provider:
continue continue
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论