Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
H
hh_ccs
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
贺阳
hh_ccs
Commits
5dec80aa
提交
5dec80aa
authored
8月 27, 2025
作者:
贺阳
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
是必须节点的才参与倒挂和漏推的比较
上级
ecd2d710
隐藏空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
32 行增加
和
36 行删除
+32
-36
bl_patrol.py
ccs_connect_tiktok/models/bl_patrol.py
+32
-36
没有找到文件。
ccs_connect_tiktok/models/bl_patrol.py
浏览文件 @
5dec80aa
...
...
@@ -151,7 +151,7 @@ class BlPatrol(models.Model):
logs_by_process
[
log
.
process_code
]
=
log
# 方法1: 根据节点的seq进行排序(推荐)
sync_logs
=
[]
bl_nodes
=
self
.
env
[
'cc.node'
]
.
sudo
()
.
search
([(
'node_type'
,
'='
,
'package'
)],
order
=
'seq'
)
bl_nodes
=
self
.
env
[
'cc.node'
]
.
sudo
()
.
search
([(
'node_type'
,
'='
,
'package'
)
,(
'is_must'
,
'='
,
True
)
],
order
=
'seq'
)
if
bl_nodes
:
for
node
in
bl_nodes
:
if
node
.
is_default
:
...
...
@@ -169,8 +169,7 @@ class BlPatrol(models.Model):
if
current_time
and
previous_time
and
current_time
<
previous_time
:
try
:
# 检查节点类型,只处理小包节点
node
=
self
.
env
[
'cc.node'
]
.
sudo
()
.
search
(
[(
'node_type'
,
'='
,
'package'
),
(
'tk_code'
,
'='
,
current_log
.
process_code
)])
node
=
self
.
env
[
'cc.node'
]
.
sudo
()
.
search
([(
'node_type'
,
'='
,
'package'
),
(
'tk_code'
,
'='
,
current_log
.
process_code
)])
if
node
:
# 只处理小包节点
progress_name
=
node
.
name
or
"空"
process_code
=
node
.
tk_code
or
"空"
...
...
@@ -247,7 +246,7 @@ class BlPatrol(models.Model):
"""
issues
=
[]
# 获取所有小包节点,按顺序排序
package_nodes
=
self
.
env
[
'cc.node'
]
.
sudo
()
.
search
([(
'node_type'
,
'='
,
'package'
)],
order
=
'seq'
)
package_nodes
=
self
.
env
[
'cc.node'
]
.
sudo
()
.
search
([(
'node_type'
,
'='
,
'package'
)
,(
'is_must'
,
'='
,
True
)
],
order
=
'seq'
)
if
not
package_nodes
:
return
issues
# 检查每个节点是否有对应的同步日志
...
...
@@ -296,43 +295,40 @@ class BlPatrol(models.Model):
# 根据节点的seq进行排序
sync_logs
=
[]
# 获取所有提单节点,按业务顺序排序
bl_nodes
=
self
.
env
[
'cc.node'
]
.
sudo
()
.
search
([(
'node_type'
,
'='
,
'bl'
)],
order
=
'seq'
)
bl_nodes
=
self
.
env
[
'cc.node'
]
.
sudo
()
.
search
([(
'node_type'
,
'='
,
'bl'
)
,(
'is_must'
,
'='
,
True
)
],
order
=
'seq'
)
if
bl_nodes
:
for
node
in
bl_nodes
:
if
node
.
tk_code
in
logs_by_bl_process
.
keys
():
sync_logs
.
append
(
logs_by_bl_process
[
node
.
tk_code
])
# 检查倒挂问题
if
len
(
sync_logs
)
>=
2
:
# 获取所有提单节点,按业务顺序排序
bl_nodes
=
self
.
env
[
'cc.node'
]
.
sudo
()
.
search
([(
'node_type'
,
'='
,
'bl'
)],
order
=
'seq'
)
if
bl_nodes
:
# 收集所有有日志的节点及其时间
node_logs
=
{}
# {node_index: (node, log, time)}
for
i
,
node
in
enumerate
(
bl_nodes
):
for
log
in
sync_logs
:
if
log
.
process_code
==
node
.
tk_code
:
node_logs
[
i
]
=
(
node
,
log
,
log
.
operate_time
)
break
# 遍历每个有日志的节点,与前面所有有日志的节点比较
for
current_idx
in
sorted
(
node_logs
.
keys
()):
current_node
,
current_log
,
current_time
=
node_logs
[
current_idx
]
# 与前面所有有日志的节点比较
for
prev_idx
in
sorted
(
node_logs
.
keys
()):
if
prev_idx
>=
current_idx
:
# 跳过自己和自己后面的节点
continue
prev_node
,
prev_log
,
prev_time
=
node_logs
[
prev_idx
]
# 检查时间顺序
if
current_time
and
prev_time
:
if
current_time
<
prev_time
:
try
:
progress_name
=
current_log
.
progress_name
or
"空"
process_code
=
current_log
.
process_code
or
"空"
issues
.
append
(
f
"{bl.bl_no},出现{progress_name}({process_code})倒挂"
)
except
Exception
as
e
:
_logger
.
warning
(
f
"构建倒序问题描述失败: {str(e)}"
)
issues
.
append
(
f
"{bl.bl_no},出现节点倒挂"
)
# 收集所有有日志的节点及其时间
node_logs
=
{}
# {node_index: (node, log, time)}
for
i
,
node
in
enumerate
(
bl_nodes
):
for
log
in
sync_logs
:
if
log
.
process_code
==
node
.
tk_code
:
node_logs
[
i
]
=
(
node
,
log
,
log
.
operate_time
)
break
# 遍历每个有日志的节点,与前面所有有日志的节点比较
for
current_idx
in
sorted
(
node_logs
.
keys
()):
current_node
,
current_log
,
current_time
=
node_logs
[
current_idx
]
# 与前面所有有日志的节点比较
for
prev_idx
in
sorted
(
node_logs
.
keys
()):
if
prev_idx
>=
current_idx
:
# 跳过自己和自己后面的节点
continue
prev_node
,
prev_log
,
prev_time
=
node_logs
[
prev_idx
]
# 检查时间顺序
if
current_time
and
prev_time
:
if
current_time
<
prev_time
:
try
:
progress_name
=
current_log
.
progress_name
or
"空"
process_code
=
current_log
.
process_code
or
"空"
issues
.
append
(
f
"{bl.bl_no},出现{progress_name}({process_code})倒挂"
)
except
Exception
as
e
:
_logger
.
warning
(
f
"构建倒序问题描述失败: {str(e)}"
)
issues
.
append
(
f
"{bl.bl_no},出现节点倒挂"
)
# 检查漏推问题
missing_issues
=
self
.
_check_bl_missing_nodes
(
bl
,
sync_logs
)
...
...
@@ -346,7 +342,7 @@ class BlPatrol(models.Model):
"""
issues
=
[]
# 获取所有提单节点,按顺序排序
bl_nodes
=
self
.
env
[
'cc.node'
]
.
sudo
()
.
search
([(
'node_type'
,
'='
,
'bl'
)],
order
=
'seq'
)
bl_nodes
=
self
.
env
[
'cc.node'
]
.
sudo
()
.
search
([(
'node_type'
,
'='
,
'bl'
)
,(
'is_must'
,
'='
,
True
)
],
order
=
'seq'
)
if
not
bl_nodes
:
return
issues
# 检查每个节点是否有对应的同步日志
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论