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

同步小包的时候增加commit

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