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

尾程服务商 名称增加中英文模式,按尾程理货和交货接口根据语言返回

上级 8c92b179
import random
from odoo import models, fields, api from odoo import models, fields, api
...@@ -21,7 +20,7 @@ class CCExceptionInfo(models.Model): ...@@ -21,7 +20,7 @@ class CCExceptionInfo(models.Model):
# 异常编码增加唯一约束 # 异常编码增加唯一约束
_sql_constraints = [('exception_code_uniq', 'unique(exception_code)', 'The Exception Code must be unique.')] _sql_constraints = [('exception_code_uniq', 'unique(exception_code)', 'The Exception Code must be unique.')]
def search_exception_info(self, pda_lang=False): def search_exception_info(self):
""" """
查询包裹异常原因 查询包裹异常原因
:return: :return:
......
...@@ -31,7 +31,7 @@ class CCLastMileProvider(models.Model): ...@@ -31,7 +31,7 @@ class CCLastMileProvider(models.Model):
_("Placement Area must be unique !")) _("Placement Area must be unique !"))
logo = fields.Binary('Courier Logo') # 快递logo,英文 logo = fields.Binary('Courier Logo') # 快递logo,英文
name = fields.Char(string='Courier Name', required=True) # 快递名称 name = fields.Char(string='Courier Name', required=True, translate=True) # 快递名称
abbreviation = fields.Char(string='Abbreviation', required=True) # 简称 abbreviation = fields.Char(string='Abbreviation', required=True) # 简称
tape_color_value = fields.Char(string='Tape Color Value') # 胶带色值 tape_color_value = fields.Char(string='Tape Color Value') # 胶带色值
active = fields.Boolean('Active', default=True) # 有效☑️ active = fields.Boolean('Active', default=True) # 有效☑️
...@@ -41,7 +41,7 @@ class CCLastMileProvider(models.Model): ...@@ -41,7 +41,7 @@ class CCLastMileProvider(models.Model):
def match_provider(self, provider_name): def match_provider(self, provider_name):
"""Check if the provider name exists in matching values and return the record.""" """Check if the provider name exists in matching values and return the record."""
# 查询所有匹配的记录 # 查询所有匹配的记录
matching_records = self.search([]) matching_records = self.sudo().search([])
# 检查是否有记录的 matching_value 包含 provider_name # 检查是否有记录的 matching_value 包含 provider_name
for record in matching_records: for record in matching_records:
if provider_name in record.matching_value.split('\n'): if provider_name in record.matching_value.split('\n'):
...@@ -50,7 +50,7 @@ class CCLastMileProvider(models.Model): ...@@ -50,7 +50,7 @@ class CCLastMileProvider(models.Model):
def get_all_placement_area(self, domain=[]): def get_all_placement_area(self, domain=[]):
""" """
获取所有摆放区域,英文 获取所有摆放区域
""" """
all_providers = self.sudo().search(domain or []) all_providers = self.sudo().search(domain or [])
provider_map = { provider_map = {
......
...@@ -310,10 +310,8 @@ class OrderController(http.Controller): ...@@ -310,10 +310,8 @@ class OrderController(http.Controller):
try: try:
logging.info('exceptions_info kwargs:%s' % kwargs) logging.info('exceptions_info kwargs:%s' % kwargs)
lang = 'zh_CN' if pda_lang == 'zh' else 'en_US' # 语言 lang = 'zh_CN' if pda_lang == 'zh' else 'en_US' # 语言
exception_obj = request.env['cc.exception.info'].sudo( exception_obj = request.env['cc.exception.info'].sudo().with_context({'lang': lang}).search([]) # 包裹异常原因
).with_context({'lang': lang}).search([]) # 包裹异常原因 res['exception_arr'] = [excep.search_exception_info() for excep in exception_obj]
res['exception_arr'] = [excep.search_exception_info(
pda_lang=pda_lang) for excep in exception_obj]
res['state'] = 200 res['state'] = 200
except Exception as e: except Exception as e:
exceptions_msg_dic = { exceptions_msg_dic = {
...@@ -333,16 +331,48 @@ class OrderController(http.Controller): ...@@ -333,16 +331,48 @@ class OrderController(http.Controller):
尾程快递名称,摆放区域,快递LOGO,大包件数 尾程快递名称,摆放区域,快递LOGO,大包件数
大包信息字段:大包号,尾程快递名称,尾程快递色值; 大包信息字段:大包号,尾程快递名称,尾程快递色值;
""" """
return self._get_last_mile_grouped('unprocessed_goods') kwargs = json.loads(request.httprequest.data)
pda_lang = kwargs.get('pda_lang') or 'zh'
res = {'state': 201, 'message': ''}
try:
logging.info('last_mile_tally kwargs:%s' % kwargs)
lang = 'zh_CN' if pda_lang == 'zh' else 'en_US' # 语言
return self._get_last_mile_grouped('unprocessed_goods', lang)
except Exception as e:
exceptions_msg_dic = {
'en': 'System parsing error, the reason for the error is %s' % e,
'zh': '系统解析错误,错误原因是%s' % e
}
logging.info('last_mile_tally error:%s' % e)
res['message'] = exceptions_msg_dic[
pda_lang] # _('System parsing error, the reason for the error is %s', e) # 系统解析错误,错误原因是
logging.info('last_mile_tally res:%s' % res)
return res
@http.route('/api/last_mile/delivery', type='json', auth='public', csrf=False) @http.route('/api/last_mile/delivery', type='json', auth='public', csrf=False)
def last_mile_delivery(self): def last_mile_delivery(self):
""" """
按尾程快递交货接口,查询系统所有清关中的提单关联的大包,且大包状态为已理货的数量,按下一阶段服务商名称分组,下一个阶段服务商名称匹配尾程快递传给PDA。传输字段与理货的一致。 按尾程快递交货接口,查询系统所有清关中的提单关联的大包,且大包状态为已理货的数量,按下一阶段服务商名称分组,下一个阶段服务商名称匹配尾程快递传给PDA。传输字段与理货的一致。
""" """
return self._get_last_mile_grouped('checked_goods') kwargs = json.loads(request.httprequest.data)
pda_lang = kwargs.get('pda_lang') or 'zh'
res = {'state': 201, 'message': ''}
try:
logging.info('last_mile_delivery kwargs:%s' % kwargs)
lang = 'zh_CN' if pda_lang == 'zh' else 'en_US' # 语言
return self._get_last_mile_grouped('checked_goods', lang)
except Exception as e:
exceptions_msg_dic = {
'en': 'System parsing error, the reason for the error is %s' % e,
'zh': '系统解析错误,错误原因是%s' % e
}
logging.info('last_mile_delivery error:%s' % e)
res['message'] = exceptions_msg_dic[
pda_lang] # _('System parsing error, the reason for the error is %s', e) # 系统解析错误,错误原因是
logging.info('last_mile_delivery res:%s' % res)
return res
def _get_last_mile_grouped(self, tally_state): def _get_last_mile_grouped(self, tally_state, lang):
# 1. 查所有清关中提单 # 1. 查所有清关中提单
bls = request.env['cc.bl'].sudo().search([('state', '=', 'ccing')]) bls = request.env['cc.bl'].sudo().search([('state', '=', 'ccing')])
# 2. 查所有大包 # 2. 查所有大包
...@@ -354,8 +384,8 @@ class OrderController(http.Controller): ...@@ -354,8 +384,8 @@ class OrderController(http.Controller):
group_dict = {} group_dict = {}
for pkg in big_packages: for pkg in big_packages:
provider = request.env['cc.last.mile.provider'].sudo( provider = request.env['cc.last.mile.provider'].sudo().with_context({'lang': lang}).match_provider(
).match_provider(pkg.next_provider_name) pkg.next_provider_name)
if not provider: if not provider:
continue continue
key = provider.id key = provider.id
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论