提交 71df1437 authored 作者: 贺阳's avatar 贺阳

只要有小包状态不是当前节点的就变为清关中

上级 68e36974
......@@ -2,15 +2,17 @@
import asyncio
import json
import logging
import re
import ssl
from datetime import timedelta, datetime
import re
import aiohttp
import certifi
import pytz
from odoo import models, fields, api, _
from odoo.exceptions import ValidationError
def get_rfc339_time(utc_time=None):
if not utc_time:
# 获取当前时间的UTC时间
......@@ -355,14 +357,14 @@ class CcBl(models.Model):
根据小包的状态修改提单的状态
:return:
"""
# 如果提单有小包变成了清关开始,提单状态变为清关中
# 如果提单有小包变成了清关开始,提单状态变为清关中改成 只要有小包状态不是当前节点的就变为清关中
if self.state == 'draft' and self.ship_package_ids.filtered(
lambda line: line.state.tk_code == 'cb_imcustoms_start'):
lambda line: not line.state.is_default): # == 'cb_imcustoms_start'
self.ccing_func()
# 如果提单所有小包的清关节点变成"是完成节点",则该提单状态变成已完成
if all(line.state.is_done for line in
self.ship_package_ids) and self.unsync_package_count <= 0 and self.customs_clearance_status.is_done and self.is_bl_sync:
self.done_func(is_email = True)
self.done_func(is_email=True)
def change_customs_state_by_ship_package(self, package_state_obj, user_obj=False):
"""
......@@ -452,13 +454,13 @@ class CcBl(models.Model):
# 提单巡查
result = bls.check_bl_patrol()
logging.info(f"提单完成时手动巡查完成, 发现问题: {result['issue_count']}")
is_success = result['issue_count'] == 0
is_success = result['issue_count'] == 0
if not is_success:
if is_email:
#发送邮件
# 发送邮件
bls._send_patrol_email(result)
else:
#把错误的进行提示
# 把错误的进行提示
content = self.get_patrol_email_content(result)
raise ValidationError(content)
if is_success:
......@@ -696,10 +698,10 @@ class CcBl(models.Model):
if log.process_code == node.tk_code:
node_logs[i] = (node, log, log.operate_time)
break
# 用于记录已经报告过倒挂的节点,避免重复报告
reported_inversions = set()
# 遍历每个有日志的节点,与前面所有有日志的节点比较
for current_idx in sorted(node_logs.keys()):
current_node, current_log, current_time = node_logs[current_idx]
......@@ -770,7 +772,7 @@ class CcBl(models.Model):
break
return issues
def _send_patrol_email(self, result,patrol_obj=False):
def _send_patrol_email(self, result, patrol_obj=False):
"""
发送巡查邮件
"""
......@@ -809,8 +811,7 @@ class CcBl(models.Model):
except Exception as e:
logging.error(f"发送巡查邮件失败: {str(e)}")
def get_patrol_email_content(self, result,title='您好,经系统巡查。'):
def get_patrol_email_content(self, result, title='您好,经系统巡查。'):
"""
获取巡查邮件内容
"""
......@@ -825,7 +826,7 @@ class CcBl(models.Model):
%s
%s
请立即处理!!!""" % (title,"发现以下提单存在小包轨迹倒挂/轨迹漏推" if package_content else "",
请立即处理!!!""" % (title, "发现以下提单存在小包轨迹倒挂/轨迹漏推" if package_content else "",
package_content if package_content else "",
"发现以下提单存在提单关务节点轨迹倒挂/轨迹漏推" if bl_content else "",
bl_content if bl_content else "")
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论