提交 349bf2ce authored 作者: 贺阳's avatar 贺阳

同步小包的时候增加commit

上级 06b9d598
import base64
import json
import logging
import pytz
from datetime import datetime
from lxml import etree
import pytz
from odoo import models, fields, api, tools, _
from odoo.exceptions import ValidationError, Warning
......@@ -175,34 +174,50 @@ class CcShipPackage(models.Model):
}
]
}
logging.info('小包轨迹 push_data:%s' % push_data)
# logging.info('小包轨迹 push_data:%s' % push_data)
return push_data
def callback_track(self):
def callback_track(self, is_push=True):
if not self.is_sync and self.state and self.state.tk_code:
data = self.get_callback_track_data()
tt_api_obj = self.env["ao.tt.api"].sudo()
response = tt_api_obj.callback_track(data)
logging.info('callback_track response:%s' % response)
response_data = response.json()
if response_data['code'] != 0:
self.is_sync = False
error_msg = response_data['msg']
request_id = response_data['requestID']
code = response_data['code']
self.env['ao.tt.api.log'].sudo().create_api_log(self.tracking_no or '', '小包状态轨迹回传:' + error_msg,
data,
code,
request_id, source='推出')
return error_msg
if is_push:
tt_api_obj = self.env["ao.tt.api"].sudo()
response = tt_api_obj.callback_track(data)
response_data = response.json()
if response_data['code'] != 0:
self.is_sync = False
self._cr.commit()
error_msg = response_data['msg']
request_id = response_data['requestID']
code = response_data['code']
self.env['ao.tt.api.log'].sudo().create_api_log(self.tracking_no or '',
'小包状态轨迹回传:' + error_msg,
data,
code,
request_id, source='推出')
return error_msg
else:
# 回传成功
self.is_sync = True
self.env['cc.ship.package.sync.log'].sudo().create_sync_log(self.id, 'Tiktok', self.state.tk_code,
self.state_explain,
self.process_time.strftime(
'%Y-%m-%d %H:%M:%S'))
self._cr.commit()
request_id = response_data['requestID']
self.env['ao.tt.api.log'].sudo().create_api_log(self.tracking_no or '', '', data, 0, request_id,
source='推出')
return ''
else:
# 回传成功
self.is_sync = True
self.env['cc.ship.package.sync.log'].sudo().create_sync_log(self.id, 'Tiktok', self.state.tk_code,
self.state_explain,
self.process_time.strftime(
'%Y-%m-%d %H:%M:%S'))
request_id = response_data['requestID']
self._cr.commit()
request_id = ''
self.env['ao.tt.api.log'].sudo().create_api_log(self.tracking_no or '', '', data, 0, request_id,
source='推出')
return ''
......@@ -233,6 +248,13 @@ class CcBl(models.Model):
package.callback_track()
return True
def deal_ship_package_state(self):
for item in self:
ship_packages = self.env['cc.ship.package'].search([('bl_id', '=', item.id), ('is_sync', '=', False)])
for package in ship_packages:
package.callback_track(is_push=False)
return True
def batch_action_sync(self):
"""
批量回传通过文件
......
......@@ -103,5 +103,19 @@
action = records.callback_track()
</field>
</record>
<record id="action_batch_update_package_status" model="ir.actions.server">
<field name="name">批量手动处理小包异常数据</field>
<field name="model_id" ref="model_cc_bl"/>
<field name="binding_model_id" ref="model_cc_bl"/>
<field name="binding_view_types">list</field>
<field name="groups_id" eval="[(4, ref('base.group_system'))]"/>
<field name="state">code</field>
<field name="code">
if records:
records.deal_ship_package_state()
</field>
</record>
</data>
</odoo>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论