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

时间识别的优化

上级 2e0670ae
......@@ -132,7 +132,7 @@ class BatchGetPodInfoWizard(models.TransientModel):
self._merge_pdf_files(successful_files)
# 如果所有文件都成功了(没有失败的文件),自动勾选"是否同步成功涂抹的提单"
if len(successful_files) == len(processed_files) and not failed_files:
if len(successful_files) == len(processed_files) and not failed_files and not self.show_error_message:
self.sync_successful_processed = True
_logger.info(f"所有提单都处理成功,自动勾选同步选项")
else:
......@@ -312,6 +312,7 @@ class BatchGetPodInfoWizard(models.TransientModel):
# 若需补推节点,则需判断提取时间-写入节点(不取写入第一个节点)的前序间隔时间是否大于小包当前节点的操作时间。
# 若不满足以上条件,则不执行生成和自动推送节点,并在小包上新增推送备注(新增该字段)回写备注信息:获取尾程POD,自动推送节点失败,有风险产生倒挂。请手动操作205-10-20 10:20:20(获取时间)
valid_files = self._validate_node_push_conditions(successful_processed_files)
# raise ValidationError('通知')
if valid_files:
self.get_date_sync_match_node(valid_files)
else:
......@@ -1895,6 +1896,7 @@ class BatchGetPodInfoWizard(models.TransientModel):
extracted_times = []
try:
logging.info('ocr_texts:%s' % ocr_texts)
# 如果没有提供OCR文本,则调用OCR识别
if ocr_texts is None:
pdf_binary = base64.b64decode(file_data)
......@@ -1926,6 +1928,8 @@ class BatchGetPodInfoWizard(models.TransientModel):
r'DATETIMEOFRELEASE(\d)(\d)(\d{2})(\d{2})-([A-Z]{3})-(\d{4})',
# OCR可能将:识别为多个空格,如"DATETIMEOFRELEASE 163420-SEP-2025"
r'DATETIMEOFRELEASE\s+(\d)(\d)(\d{2})(\d{2})-([A-Z]{3})-(\d{4})',
# OCR可能将:识别为多个空格,如"DATETIMEOFRELEASE 1623420-SEP-2025"把:识别成了2
r'DATETIMEOFRELEASE\s+(\d)(\d)2(\d{2})(\d{2})-([A-Z]{3})-(\d{4})',
]
for idx, pattern in enumerate(release_time_patterns):
......@@ -1973,7 +1977,6 @@ class BatchGetPodInfoWizard(models.TransientModel):
'JUL': 7, 'AUG': 8, 'SEP': 9, 'OCT': 10, 'NOV': 11, 'DEC': 12}[
month.upper()]
time_obj = datetime(int(year), month_num, int(day), int(hour), int(minute))
match_str = f"{hour}:{minute} {day.zfill(2)}-{month_normalized}-{year}"
elif group_count == 6:
# OCR将:识别为数字的情况: ('1', '6', '34', '20', 'SEP', '2025')
hour_tens = release_time_match.group(1)
......@@ -1992,7 +1995,6 @@ class BatchGetPodInfoWizard(models.TransientModel):
'JUL': 7, 'AUG': 8, 'SEP': 9, 'OCT': 10, 'NOV': 11, 'DEC': 12}[
month.upper()]
time_obj = datetime(int(year), month_num, int(day), int(hour), int(minute))
match_str = f"{hour}:{minute} {day.zfill(2)}-{month}-{year}"
else:
_logger.warning(f"意外的分组数量: {group_count}, 分组: {release_time_match.groups()}")
continue
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论