cross_doctor/app/report_common.py

43 lines
1.3 KiB
Python

# -*- coding: utf-8 -*-
# @Author: Owl
# @Date: 2026/5/11 15:19
# @Description: 导出文件的公共函数部分
import hashlib
from datetime import datetime
def gen_report_file_name(cross_name, date_list, tp_info, parts, gen_report_date):
"""生成报告文件名"""
date_str = ','.join(date_list)
parts_str = ','.join(parts)
tp_info_str = str(tp_info)
md5_boj = hashlib.md5()
md5_boj.update((date_str + tp_info_str + parts_str + gen_report_date).encode('utf-8'))
suffix = md5_boj.hexdigest()
return f'{cross_name}_{suffix}'
def gen_date_range_str(date_list):
if len(date_list) == 1:
return datetime.strptime(date_list[0], '%Y%m%d').strftime('%Y年%m月%d')
min_date = min(date_list)
max_date = max(date_list)
min_date_str = datetime.strptime(min_date, '%Y%m%d').strftime('%Y年%m月%d')
max_date_str = datetime.strptime(max_date, '%Y%m%d').strftime('%Y年%m月%d')
return f'{min_date_str}-{max_date_str}'
def compare_service_level(obj1, obj2):
priority_map = {'A': 0, 'B': 1, 'C': 2, 'D': 3, 'E': 4, 'F': 5}
if obj1 == '-' or obj2 == '-':
return None
val1 = priority_map.get(obj1) # d 3
val2 = priority_map.get(obj2) # c 2
if val1 is None or val2 is None:
return None
return val1 - val2