提交 151bf0e8 authored 作者: 贺阳's avatar 贺阳

定时器 状态为清关中且附件信息尾程交接POD(待大包数量和箱号),为空的提单,自动获取尾程POD信息

上级 58e0ec7c
......@@ -12,5 +12,18 @@
<field name="active" eval="False"/>
</record>
<!-- 自动获取尾程POD-->
<record id="cron_get_pod" model="ir.cron">
<field name="name">自动获取尾程POD</field>
<field name="model_id" ref="ccs_base.model_cc_bl"/>
<field name="state">code</field>
<field name="code">model.cron_get_pod()</field>
<field name='interval_number'>3</field>
<field name='interval_type'>hours</field>
<field name="nextcall" eval="(DateTime.now().replace(hour=0, minute=0) + timedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S')" />
<field name="numbercall">-1</field>
<field name="active" eval="True"/>
</record>
</data>
</odoo>
\ No newline at end of file
......@@ -712,6 +712,20 @@ class CcBL(models.Model):
# 添加状态说明字段
state_explain = fields.Text('State Explain', help='State Explain')
def cron_get_pod(self):
"""
状态为清关中且附件信息尾程交接POD(待大包数量和箱号),为空的提单,自动获取尾程POD信息
"""
bl_objs=self.env['cc.bl'].search([('state', '=', 'ccing'), ('cc_attachment_ids.file_name', '=', '尾程交接POD(待大包数量和箱号)'), ('cc_attachment_ids.file', '=', False)])
logging.info('cron_get_pod bl_objs:%s' % len(bl_objs))
if len(bl_objs) > 0:
wizard_obj = self.env['batch.get.pod.info.wizard'].sudo().with_context(active_id=bl_objs.ids).create({
'sync_last_mile_pod': True,
'remove_specified_text': True,
'sync_match_node': True
})
wizard_obj.confirm()
# 增加一个can_cancel的方法,用于检查提单当前是否可以取消,返回True表示可以取消, False表示不可以取消,同时返回取消的原因
def check_cancel(self):
if self.is_cancel:
......
......@@ -58,8 +58,8 @@ class BatchGetPodInfoWizard(models.TransientModel):
"""
# 计算整个过程的耗时
start_time = time.time()
_logger.info(f"开始执行批量获取POD信息操作")
bl_objs = self.get_order()
_logger.info(f"%s提单开始执行批量获取POD信息操作" % len(bl_objs))
# 调用接口获取提单pdf文件
pdf_file_arr = self._get_pdf_file_arr()
# 处理PDF文件,匹配提单对象
......@@ -183,6 +183,16 @@ class BatchGetPodInfoWizard(models.TransientModel):
bl = file_info['bl']
file_name = file_info['file_name']
file_data = file_info['file_data']
# 如果有文件为空的就回写,否则就创建新的清关文件记录
fix_name = '尾程交接POD(待大包数量和箱号)'
clearance_file = self.env['cc.clearance.file'].search(
[('bl_id', '=', bl.id), ('file_name', '=', fix_name), ('file', '=', False)], limit=1)
if clearance_file:
clearance_file.write({
'attachment_name': file_name,
'file': file_data
})
else:
# 创建新的清关文件记录
clearance_file = self.env['cc.clearance.file'].create({
'bl_id': bl.id,
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论