modify bs statistics
Showing
1 changed file
with
24 additions
and
10 deletions
| ... | @@ -8,6 +8,7 @@ from django.core.management import BaseCommand | ... | @@ -8,6 +8,7 @@ from django.core.management import BaseCommand | 
| 8 | from settings import conf | 8 | from settings import conf | 
| 9 | from common.mixins import LoggerMixin | 9 | from common.mixins import LoggerMixin | 
| 10 | from apps.doc import consts | 10 | from apps.doc import consts | 
| 11 | from apps.doc.models import HILDoc, AFCDoc | ||
| 11 | 12 | ||
| 12 | 13 | ||
| 13 | class Command(BaseCommand, LoggerMixin): | 14 | class Command(BaseCommand, LoggerMixin): | 
| ... | @@ -40,17 +41,30 @@ class Command(BaseCommand, LoggerMixin): | ... | @@ -40,17 +41,30 @@ class Command(BaseCommand, LoggerMixin): | 
| 40 | print('log_path not exists') | 41 | print('log_path not exists') | 
| 41 | return | 42 | return | 
| 42 | 43 | ||
| 43 | wb = Workbook() | 44 | summary_dict = {} | 
| 44 | ws = wb.get_sheet_by_name('Sheet') | ||
| 45 | ws.title = date_str | ||
| 46 | ws.append(('版式', '数目')) | ||
| 47 | |||
| 48 | with open(log_path, 'r', encoding='utf-8') as fp: | 45 | with open(log_path, 'r', encoding='utf-8') as fp: | 
| 49 | for line in fp: | 46 | for line in fp: | 
| 50 | search_obj = re.search(r'(\d{1,2}):(\d+)', line) | 47 | search_obj = re.search(r'task=(.*) merged_bs_summary=(.*)', line) | 
| 51 | classify = search_obj.group(1) | 48 | task_str = search_obj.group(1) | 
| 52 | count = search_obj.group(2) | 49 | business_type, doc_id_str = task_str.split(consts.SPLIT_STR) | 
| 53 | label = consts.CLASSIFY_LIST[int(classify)][0] | 50 | doc_id = int(doc_id_str) | 
| 54 | ws.append((label, int(count))) | 51 | doc_class = HILDoc if business_type == consts.HIL_PREFIX else AFCDoc | 
| 52 | application_id = doc_class.objects.filter(id=doc_id).values_list('application_id', flat=True) | ||
| 55 | 53 | ||
| 54 | bs_summary_str = search_obj.group(2) | ||
| 55 | new_bs_summary_str = re.sub(r'datetime.date\(\d+, \d+, \d+\)', 'None', bs_summary_str) | ||
| 56 | bs_summary = ast.literal_eval(new_bs_summary_str) | ||
| 57 | for value_dict in bs_summary.values(): | ||
| 58 | classify = value_dict.get('classify') | ||
| 59 | if classify is None: | ||
| 60 | continue | ||
| 61 | summary_dict.setdefault(classify, []).append(application_id[0]) | ||
| 62 | |||
| 63 | wb = Workbook() | ||
| 64 | wb.remove(wb.get_sheet_by_name('Sheet')) | ||
| 65 | for classify, application_id_list in summary_dict.items(): | ||
| 66 | sheet_name = consts.CLASSIFY_LIST[classify][0] | ||
| 67 | ws = wb.create_sheet(sheet_name) | ||
| 68 | for application_id in application_id_list: | ||
| 69 | ws.append((application_id, None)) | ||
| 56 | wb.save(excel_path) | 70 | wb.save(excel_path) | ... | ... | 
- 
Please register or sign in to post a comment