43 lines
1.3 KiB
Python
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 |