4b008519 by 周伟奇

add keywords

1 parent 00bb1843
...@@ -778,7 +778,9 @@ class Command(BaseCommand, LoggerMixin): ...@@ -778,7 +778,9 @@ class Command(BaseCommand, LoggerMixin):
778 type=KeywordsType.LOAN.value, on_off=True).values_list('keyword', flat=True) 778 type=KeywordsType.LOAN.value, on_off=True).values_list('keyword', flat=True)
779 wechat_keyword = Keywords.objects.filter( 779 wechat_keyword = Keywords.objects.filter(
780 type=KeywordsType.ALI_WECHART.value, on_off=True).values_list('keyword', flat=True) 780 type=KeywordsType.ALI_WECHART.value, on_off=True).values_list('keyword', flat=True)
781 wb = BSWorkbook(interest_keyword, salary_keyword, loan_keyword, wechat_keyword) 781 repayments_keyword = Keywords.objects.filter(
782 type=KeywordsType.REPAYMENTS.value, on_off=True).values_list('keyword', flat=True)
783 wb = BSWorkbook(interest_keyword, salary_keyword, loan_keyword, wechat_keyword, repayments_keyword)
782 for img_path, res in ocr_1_res.items(): 784 for img_path, res in ocr_1_res.items():
783 pno, ino = self.parse_img_path(img_path) 785 pno, ino = self.parse_img_path(img_path)
784 part_idx = 1 786 part_idx = 1
......
...@@ -19,6 +19,7 @@ class KeywordsType(NamedEnum): ...@@ -19,6 +19,7 @@ class KeywordsType(NamedEnum):
19 SALARY = (1, '薪资') 19 SALARY = (1, '薪资')
20 LOAN = (2, '贷款') 20 LOAN = (2, '贷款')
21 ALI_WECHART = (3, '微信/支付宝') 21 ALI_WECHART = (3, '微信/支付宝')
22 REPAYMENTS = (4, '还款')
22 23
23 24
24 class RequestTeam(NamedEnum): 25 class RequestTeam(NamedEnum):
......
...@@ -14,17 +14,20 @@ from apps.doc import consts ...@@ -14,17 +14,20 @@ from apps.doc import consts
14 14
15 class BSWorkbook(Workbook): 15 class BSWorkbook(Workbook):
16 16
17 def __init__(self, interest_keyword, salary_keyword, loan_keyword, wechat_keyword, *args, **kwargs): 17 def __init__(self, interest_keyword, salary_keyword, loan_keyword, wechat_keyword, repayments_keyword, *args, **kwargs):
18 super().__init__(*args, **kwargs) 18 super().__init__(*args, **kwargs)
19 locale.setlocale(locale.LC_NUMERIC, 'en_US.UTF-8') 19 locale.setlocale(locale.LC_NUMERIC, 'en_US.UTF-8')
20 self.meta_sheet_title = 'Key info' 20 self.meta_sheet_title = 'Key info'
21 self.blank_row = (None,) 21 self.blank_row = (None,)
22 self.code_header = ('页数', '电子回单验证码') 22 self.code_header = ('页数', '电子回单验证码')
23 self.date_header = ('打印时间', '起始日期', '终止日期', '流水区间结果') 23 self.date_header = ('打印时间', '起始日期', '终止日期', '流水区间结果')
24 self.keyword_header = ('关键词', '记账日期', '金额') 24 self.interest_keyword_header = ('结息关键词', '记账日期', '金额')
25 self.salary_keyword_header = ('收入关键词', '记账日期', '金额')
26 self.repayments_keyword_header = ('还款关键词', '记账日期', '金额')
25 self.interest_keyword = self.replace_newline(interest_keyword) 27 self.interest_keyword = self.replace_newline(interest_keyword)
26 self.salary_keyword = self.replace_newline(salary_keyword) 28 self.salary_keyword = self.replace_newline(salary_keyword)
27 self.loan_keyword = self.replace_newline(loan_keyword) 29 self.loan_keyword = self.replace_newline(loan_keyword)
30 self.repayments_keyword = self.replace_newline(repayments_keyword)
28 self.wechat_keyword = wechat_keyword 31 self.wechat_keyword = wechat_keyword
29 self.proof_res = ('对', '错') 32 self.proof_res = ('对', '错')
30 self.loan_fill = PatternFill("solid", fgColor="00FFCC00") 33 self.loan_fill = PatternFill("solid", fgColor="00FFCC00")
...@@ -323,7 +326,7 @@ class BSWorkbook(Workbook): ...@@ -323,7 +326,7 @@ class BSWorkbook(Workbook):
323 self.date_header, 326 self.date_header,
324 (print_time, start_date, end_date, timedelta), 327 (print_time, start_date, end_date, timedelta),
325 self.blank_row, 328 self.blank_row,
326 self.keyword_header] 329 self.interest_keyword_header]
327 ) 330 )
328 return metadata_rows 331 return metadata_rows
329 332
...@@ -423,6 +426,7 @@ class BSWorkbook(Workbook): ...@@ -423,6 +426,7 @@ class BSWorkbook(Workbook):
423 result_idx = len(header) - 1 426 result_idx = len(header) - 1
424 427
425 tmp_ws = self.create_sheet('tmp_ws') 428 tmp_ws = self.create_sheet('tmp_ws')
429 tmp2_ws = self.create_sheet('tmp2_ws')
426 if classify in consts.ALI_WECHART_CLASSIFY: 430 if classify in consts.ALI_WECHART_CLASSIFY:
427 high_light_keyword = self.wechat_keyword 431 high_light_keyword = self.wechat_keyword
428 else: 432 else:
...@@ -536,6 +540,10 @@ class BSWorkbook(Workbook): ...@@ -536,6 +540,10 @@ class BSWorkbook(Workbook):
536 elif summary_cell_value in self.salary_keyword: 540 elif summary_cell_value in self.salary_keyword:
537 new_amount_cell_value = None if amount_cell is None else amount_cell.value 541 new_amount_cell_value = None if amount_cell is None else amount_cell.value
538 tmp_ws.append((summary_cell_value, date_cell_value, new_amount_cell_value)) 542 tmp_ws.append((summary_cell_value, date_cell_value, new_amount_cell_value))
543 # 关键词3提取至临时表
544 elif summary_cell_value in self.repayments_keyword:
545 new_amount_cell_value = None if amount_cell is None else amount_cell.value
546 tmp2_ws.append((summary_cell_value, date_cell_value, new_amount_cell_value))
539 # 贷款关键词高亮 547 # 贷款关键词高亮
540 # elif summary_cell_value in high_light_keyword: 548 # elif summary_cell_value in high_light_keyword:
541 # summary_cell.fill = self.amount_fill 549 # summary_cell.fill = self.amount_fill
...@@ -557,11 +565,18 @@ class BSWorkbook(Workbook): ...@@ -557,11 +565,18 @@ class BSWorkbook(Workbook):
557 565
558 # 关键词2信息提取 566 # 关键词2信息提取
559 ms.append(self.blank_row) 567 ms.append(self.blank_row)
560 ms.append(self.keyword_header) 568 ms.append(self.salary_keyword_header)
561 for row in tmp_ws.iter_rows(values_only=True): 569 for row in tmp_ws.iter_rows(values_only=True):
562 ms.append(row) 570 ms.append(row)
563 self.remove(tmp_ws) 571 self.remove(tmp_ws)
564 572
573 # 关键词3信息提取
574 ms.append(self.blank_row)
575 ms.append(self.repayments_keyword_header)
576 for row in tmp2_ws.iter_rows(values_only=True):
577 ms.append(row)
578 self.remove(tmp2_ws)
579
565 def bs_rebuild(self, bs_summary): 580 def bs_rebuild(self, bs_summary):
566 # bs_summary = { 581 # bs_summary = {
567 # '卡号': { 582 # '卡号': {
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!