Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
H
hh_ccs
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
贺阳
hh_ccs
Commits
5865634f
提交
5865634f
authored
3月 30, 2026
作者:
刘擎阳
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1.优化
上级
69889a83
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
11 行增加
和
6 行删除
+11
-6
order_state_change_rule.py
ccs_base/models/order_state_change_rule.py
+11
-6
没有找到文件。
ccs_base/models/order_state_change_rule.py
浏览文件 @
5865634f
...
@@ -151,20 +151,20 @@ class OrderStateChangeRule(models.Model):
...
@@ -151,20 +151,20 @@ class OrderStateChangeRule(models.Model):
retries
+=
1
# 上传失败,增加重试次数
retries
+=
1
# 上传失败,增加重试次数
if
retries
>
max_retries
:
if
retries
>
max_retries
:
_logger
.
info
(
f
"上传文件 {file_obj.attachment_name} 失败,已尝试 {max_retries} 次,仍然失败。"
)
_logger
.
info
(
f
"上传文件 {file_obj.attachment_name} 失败,已尝试 {max_retries} 次,仍然失败。"
)
break
# 超过最大重试次数后跳出循环
return
False
# 超过最大重试次数后跳出循环
else
:
else
:
_logger
.
info
(
f
"上传文件 {file_obj.attachment_name} 失败,正在重新尝试第 {retries} 次..."
)
_logger
.
info
(
f
"上传文件 {file_obj.attachment_name} 失败,正在重新尝试第 {retries} 次..."
)
else
:
else
:
# 如果上传成功,退出重试循环
# 如果上传成功,退出重试循环
_logger
.
info
(
f
"文件 {file_obj.attachment_name} 上传成功"
)
_logger
.
info
(
f
"文件 {file_obj.attachment_name} 上传成功"
)
break
return
True
except
Exception
as
e
:
except
Exception
as
e
:
# 捕获任何异常并重试
# 捕获任何异常并重试
retries
+=
1
retries
+=
1
_logger
.
info
(
f
"发生异常:{e},正在重新尝试第 {retries} 次上传文件 {file_obj.attachment_name}..."
)
_logger
.
info
(
f
"发生异常:{e},正在重新尝试第 {retries} 次上传文件 {file_obj.attachment_name}..."
)
if
retries
>
max_retries
:
if
retries
>
max_retries
:
_logger
.
info
(
f
"上传文件 {file_obj.attachment_name} 失败,已尝试 {max_retries} 次,仍然失败。"
)
_logger
.
info
(
f
"上传文件 {file_obj.attachment_name} 失败,已尝试 {max_retries} 次,仍然失败。"
)
break
# 超过最大重试次数后跳出循环
return
False
# 超过最大重试次数后跳出循环
def
get_pdf_order_data
(
self
,
attachment_data
):
def
get_pdf_order_data
(
self
,
attachment_data
):
"""识别PDF数据方法"""
"""识别PDF数据方法"""
...
@@ -339,6 +339,7 @@ class OrderStateChangeRule(models.Model):
...
@@ -339,6 +339,7 @@ class OrderStateChangeRule(models.Model):
ids
=
[
i
[
0
]
for
i
in
result
]
ids
=
[
i
[
0
]
for
i
in
result
]
bl_objs
=
self
.
env
[
'cc.bl'
]
.
sudo
()
.
search
([(
'id'
,
'in'
,
ids
)])
if
ids
else
False
bl_objs
=
self
.
env
[
'cc.bl'
]
.
sudo
()
.
search
([(
'id'
,
'in'
,
ids
)])
if
ids
else
False
not_bl_pdf_arr
=
[]
not_bl_pdf_arr
=
[]
upload_fail_arr
=
[]
if
bl_objs
:
if
bl_objs
:
for
bl_obj
in
bl_objs
:
for
bl_obj
in
bl_objs
:
target_awb
=
bl_obj
.
bl_no
target_awb
=
bl_obj
.
bl_no
...
@@ -354,19 +355,23 @@ class OrderStateChangeRule(models.Model):
...
@@ -354,19 +355,23 @@ class OrderStateChangeRule(models.Model):
if
result_merge
.
get
(
"output"
)
and
os
.
path
.
exists
(
result_merge
[
"output"
]):
if
result_merge
.
get
(
"output"
)
and
os
.
path
.
exists
(
result_merge
[
"output"
]):
with
open
(
result_merge
[
"output"
],
'rb'
)
as
f
:
with
open
(
result_merge
[
"output"
],
'rb'
)
as
f
:
extracted_pdf_bytes
=
f
.
read
()
extracted_pdf_bytes
=
f
.
read
()
self
.
upload_pod_attachment
(
bl_obj
,
f
'{bl_obj.bl_no}.pdf'
,
extracted_pdf_bytes
)
is_upload_ok
=
self
.
upload_pod_attachment
(
bl_obj
,
f
'{bl_obj.bl_no}.pdf'
,
extracted_pdf_bytes
)
if
not
is_upload_ok
:
upload_fail_arr
.
append
(
bl_obj
.
bl_no
)
else
:
else
:
not_bl_pdf_arr
.
append
(
bl_obj
.
bl_no
)
not_bl_pdf_arr
.
append
(
bl_obj
.
bl_no
)
self
.
_cr
.
commit
()
self
.
_cr
.
commit
()
# 4. 异常报警逻辑
# 4. 异常报警逻辑
if
not
bl_objs
or
not_bl_pdf_arr
:
if
not
bl_objs
or
not_bl_pdf_arr
or
upload_fail_arr
:
mail_time
=
(
datetime
.
utcnow
()
+
timedelta
(
hours
=
8
))
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
mail_time
=
(
datetime
.
utcnow
()
+
timedelta
(
hours
=
8
))
.
strftime
(
"
%
Y-
%
m-
%
d
%
H:
%
M:
%
S"
)
content
=
f
"""<p>您好:
content
=
f
"""<p>您好:
邮箱在{mail_time}(+8)时间接收到主题为POD的邮件,但未识别到对应的提单,请检查
邮箱在{mail_time}(+8)时间接收到主题为POD的邮件,但未识别到对应的提单,请检查
避免推送超时!</p>
避免推送超时!</p>
"""
"""
if
not_bl_pdf_arr
:
if
not_bl_pdf_arr
:
content
+=
f
"
\n
以下提单未提取到PDF文件 {'/'.join(not_bl_pdf_arr)}"
content
+=
f
"
\n
以下提单未提取到PDF文件: {'/'.join(not_bl_pdf_arr)}"
if
upload_fail_arr
:
content
+=
f
"<br> 以下提单向TK推送POD文件失败: {'/'.join(upload_fail_arr)}"
# 给客户配置的每个邮箱都发送邮件
# 给客户配置的每个邮箱都发送邮件
patrol_sender_email
=
self
.
env
[
"ir.config_parameter"
]
.
sudo
()
.
get_param
(
patrol_sender_email
=
self
.
env
[
"ir.config_parameter"
]
.
sudo
()
.
get_param
(
'patrol_sender_email'
)
or
''
'patrol_sender_email'
)
or
''
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论