提交 e7239c09 authored 作者: 贺阳's avatar 贺阳

关于预警,不存在提单关务节点轨迹倒挂/轨迹漏推,则不需要显示相关内容,将倒叙修改为倒挂

上级 82dc502b
...@@ -73,8 +73,8 @@ class BlPatrol(models.Model): ...@@ -73,8 +73,8 @@ class BlPatrol(models.Model):
执行巡查逻辑 执行巡查逻辑
定时巡查,每天1次,默认巡查时间为北京时间8点开始; 定时巡查,每天1次,默认巡查时间为北京时间8点开始;
检查对象:提单日期为近x天(默认5天),清关中和完成的提单。 检查对象:提单日期为近x天(默认5天),清关中和完成的提单。
检查内容:符合要求的提单,提单关务节点同步日志是否出现倒 检查内容:符合要求的提单,提单关务节点同步日志是否出现倒
(根据配置的清关节点排序,若后一个节点的操作时间,小于前序节点时间,则属于倒), (根据配置的清关节点排序,若后一个节点的操作时间,小于前序节点时间,则属于倒),
是否有漏推(若节点已产生同步日期,但前序节点无同步日期,则属于漏推。是当前节点的节点无需纳入判断); 是否有漏推(若节点已产生同步日期,但前序节点无同步日期,则属于漏推。是当前节点的节点无需纳入判断);
""" """
# 获取配置 # 获取配置
...@@ -135,7 +135,7 @@ class BlPatrol(models.Model): ...@@ -135,7 +135,7 @@ class BlPatrol(models.Model):
""" """
issues = [] issues = []
# 按问题类型分组统计 # 按问题类型分组统计
reverse_issues = {} # 倒问题 reverse_issues = {} # 倒问题
missing_issues = {} # 漏推问题 missing_issues = {} # 漏推问题
# 获取该提单下所有小包的同步日志 # 获取该提单下所有小包的同步日志
ship_packages = bl.ship_package_ids ship_packages = bl.ship_package_ids
...@@ -174,12 +174,12 @@ class BlPatrol(models.Model): ...@@ -174,12 +174,12 @@ class BlPatrol(models.Model):
if node: # 只处理小包节点 if node: # 只处理小包节点
progress_name = node.name or "空" progress_name = node.name or "空"
process_code = node.tk_code or "空" process_code = node.tk_code or "空"
issue_key = f"{progress_name}({process_code})倒" issue_key = f"{progress_name}({process_code})倒"
if issue_key not in reverse_issues: if issue_key not in reverse_issues:
reverse_issues[issue_key] = [] reverse_issues[issue_key] = []
reverse_issues[issue_key].append(package.logistic_order_no) reverse_issues[issue_key].append(package.logistic_order_no)
except Exception as e: except Exception as e:
_logger.warning(f"构建小包倒问题描述失败: {str(e)}") _logger.warning(f"构建小包倒问题描述失败: {str(e)}")
# 如果无法确定节点类型,跳过 # 如果无法确定节点类型,跳过
continue continue
...@@ -207,7 +207,7 @@ class BlPatrol(models.Model): ...@@ -207,7 +207,7 @@ class BlPatrol(models.Model):
missing_issues[issue_key] = [] missing_issues[issue_key] = []
missing_issues[issue_key].append(package.logistic_order_no) missing_issues[issue_key].append(package.logistic_order_no)
# 格式化倒问题 # 格式化倒问题
issue_counter = 1 issue_counter = 1
for issue_type, packages in reverse_issues.items(): for issue_type, packages in reverse_issues.items():
package_list = self._format_package_list(packages) package_list = self._format_package_list(packages)
...@@ -301,7 +301,7 @@ class BlPatrol(models.Model): ...@@ -301,7 +301,7 @@ class BlPatrol(models.Model):
for node in bl_nodes: for node in bl_nodes:
if node.tk_code in logs_by_bl_process.keys(): if node.tk_code in logs_by_bl_process.keys():
sync_logs.append(logs_by_bl_process[node.tk_code]) sync_logs.append(logs_by_bl_process[node.tk_code])
# 检查倒问题 # 检查倒问题
if len(sync_logs) >= 2: if len(sync_logs) >= 2:
# 获取所有提单节点,按业务顺序排序 # 获取所有提单节点,按业务顺序排序
bl_nodes = self.env['cc.node'].sudo().search([('node_type', '=', 'bl')], order='seq') bl_nodes = self.env['cc.node'].sudo().search([('node_type', '=', 'bl')], order='seq')
...@@ -328,11 +328,11 @@ class BlPatrol(models.Model): ...@@ -328,11 +328,11 @@ class BlPatrol(models.Model):
progress_name = current_log.progress_name or "空" progress_name = current_log.progress_name or "空"
process_code = current_log.process_code or "空" process_code = current_log.process_code or "空"
issues.append( issues.append(
f"{bl.bl_no},出现{progress_name}({process_code})倒" f"{bl.bl_no},出现{progress_name}({process_code})倒"
) )
except Exception as e: except Exception as e:
_logger.warning(f"构建倒序问题描述失败: {str(e)}") _logger.warning(f"构建倒序问题描述失败: {str(e)}")
issues.append(f"{bl.bl_no},出现节点倒") issues.append(f"{bl.bl_no},出现节点倒")
# 检查漏推问题 # 检查漏推问题
missing_issues = self._check_bl_missing_nodes(bl, sync_logs) missing_issues = self._check_bl_missing_nodes(bl, sync_logs)
...@@ -397,18 +397,18 @@ class BlPatrol(models.Model): ...@@ -397,18 +397,18 @@ class BlPatrol(models.Model):
subject = f"(重要)推送预警/{fields.Date.today()}系统巡查轨迹" subject = f"(重要)推送预警/{fields.Date.today()}系统巡查轨迹"
# 构建邮件内容 # 构建邮件内容
package_content = result['package_issues'] if result['package_issues'] else "" package_content = result['package_issues'] if result['package_issues'] else ""
bl_content = result['bl_issues'] if result['bl_issues'] else "" bl_content = result['bl_issues'] if result['bl_issues'] else ""
content = f"""您好,经系统巡查。 content = f"""您好,经系统巡查。
发现以下提单存在小包轨迹倒叙/轨迹漏推 %s
{package_content} %s
发现以下提单存在提单关务节点轨迹倒叙/轨迹漏推 %s
{bl_content} %s
请立即处理!!!""" 请立即处理!!!""" % ("发现以下提单存在小包轨迹倒挂/轨迹漏推" if package_content else "", package_content if package_content else "", "发现以下提单存在提单关务节点轨迹倒挂/轨迹漏推" if bl_content else "", bl_content if bl_content else "")
# 发送邮件 # 发送邮件
self.env['mail.mail'].sudo().create({ self.env['mail.mail'].sudo().create({
......
...@@ -92,7 +92,7 @@ ...@@ -92,7 +92,7 @@
创建第一个巡查记录 创建第一个巡查记录
</p> </p>
<p> <p>
系统将自动巡查提单的轨迹问题,包括小包轨迹倒叙和提单关务节点倒叙 系统将自动巡查提单的轨迹问题,包括小包轨迹倒挂和提单关务节点倒挂
</p> </p>
</field> </field>
</record> </record>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论