baf48dff by 周伟奇

fix se bug

1 parent 4c33a6e1
...@@ -1413,7 +1413,7 @@ SE_GB_USED_FIELD = ['customerName', 'idNum', 'date'] ...@@ -1413,7 +1413,7 @@ SE_GB_USED_FIELD = ['customerName', 'idNum', 'date']
1413 SE_BS_FIELD = ['户名', '打印日期', '流水日期', '(担保人1)户名', '(担保人1)打印日期', '(担保人1)流水日期', '(担保人2)户名', '(担保人2)打印日期', '(担保人2)流水日期'] 1413 SE_BS_FIELD = ['户名', '打印日期', '流水日期', '(担保人1)户名', '(担保人1)打印日期', '(担保人1)流水日期', '(担保人2)户名', '(担保人2)打印日期', '(担保人2)流水日期']
1414 SE_HMH_FIELD = ['借款人/承租人姓名', '借款人/承租人证件号', '申请号', '渠道', '签字'] 1414 SE_HMH_FIELD = ['借款人/承租人姓名', '借款人/承租人证件号', '申请号', '渠道', '签字']
1415 SE_BD_FIELD = ['被保险人姓名', '被保险人证件号码', '车架号', '机动车损失保险金额', '第三者责任保险金额', '绝对免赔率', '保险起始日期', '保险截止日期', '保单章', '第一受益人', '保险费合计'] 1415 SE_BD_FIELD = ['被保险人姓名', '被保险人证件号码', '车架号', '机动车损失保险金额', '第三者责任保险金额', '绝对免赔率', '保险起始日期', '保险截止日期', '保单章', '第一受益人', '保险费合计']
1416 JDMPV_VALUE = ['-', '--', '0%', '0.00', '/', '0'] 1416 JDMPV_VALUE = ['-', '--', '0%', '0.00', '/', '0', '']
1417 1417
1418 SE_BANK_FIELD = ['accountNo', 'bankName'] 1418 SE_BANK_FIELD = ['accountNo', 'bankName']
1419 SE_DDA_FIELD = ['applicationId(1)', 'applicationId(2)', 'bankName', 'companyName', 'customerName', 'idNum', 'accountHolderName', 'accountNo'] 1419 SE_DDA_FIELD = ['applicationId(1)', 'applicationId(2)', 'bankName', 'companyName', 'customerName', 'idNum', 'accountHolderName', 'accountNo']
...@@ -1568,15 +1568,15 @@ ROLE_LIST = [ ...@@ -1568,15 +1568,15 @@ ROLE_LIST = [
1568 ('保证人日期2', 'Guarantor', 1, '有', False, False), 1568 ('保证人日期2', 'Guarantor', 1, '有', False, False),
1569 ] 1569 ]
1570 1570
1571 # key, app_type, id_idx, field_idx, is_force, e_write 1571 # key, app_type, id_idx, field_idx, is_force, e_write, 公户跳过
1572 ROLE_LIST_2 = [ 1572 ROLE_LIST_2 = [
1573 ('抵押人', 'Borrower', 0, 0, True, True), 1573 ('抵押人', 'Borrower', 0, 0, True, True, False),
1574 ('抵押人证件号码', 'Borrower', 0, 2, True, True), 1574 ('抵押人证件号码', 'Borrower', 0, 2, True, True, False),
1575 ('抵押人签字', 'Borrower', 0, 0, True, False), 1575 ('抵押人签字', 'Borrower', 0, 0, True, False, False),
1576 1576
1577 ('抵押人配偶', 'Co-Borrower', 0, 0, False, True), 1577 ('抵押人配偶', 'Co-Borrower', 0, 0, False, True, True),
1578 ('抵押人配偶证件号码', 'Co-Borrower', 0, 2, False, True), 1578 ('抵押人配偶证件号码', 'Co-Borrower', 0, 2, False, True, True),
1579 ('抵押人配偶签字', 'Co-Borrower', 0, 0, False, False), 1579 ('抵押人配偶签字', 'Co-Borrower', 0, 0, False, False, True),
1580 ] 1580 ]
1581 1581
1582 ROLE_LIST_1 = [ 1582 ROLE_LIST_1 = [
...@@ -1770,7 +1770,7 @@ HMH_COMPARE_LOGIC = { ...@@ -1770,7 +1770,7 @@ HMH_COMPARE_LOGIC = {
1770 1770
1771 BD_COMPARE_LOGIC = { 1771 BD_COMPARE_LOGIC = {
1772 '被保险人姓名': ('被保险人姓名', 'se_name_compare', {}, '保单被保险人姓名与系统不一致'), 1772 '被保险人姓名': ('被保险人姓名', 'se_name_compare', {}, '保单被保险人姓名与系统不一致'),
1773 '被保险人证件号码': ('被保险人证件号码', 'se_common_compare', {}, '保单身份证号需人工核查'), 1773 '被保险人证件号码': ('被保险人证件号码', 'se_common_compare', {'is_bd_id': True}, '保单身份证号需人工核查'),
1774 '车架号': ('车架号', 'se_common_compare', {}, '保单车架号与系统不一致'), 1774 '车架号': ('车架号', 'se_common_compare', {}, '保单车架号与系统不一致'),
1775 '机动车损失保险金额': ('机动车损失保险金额', 'se_amount_lte_compare', {}, '保单车损险异常'), 1775 '机动车损失保险金额': ('机动车损失保险金额', 'se_amount_lte_compare', {}, '保单车损险异常'),
1776 '第三者责任保险金额': ('机动车第三者责任保险金额', 'se_amount_lte_compare', {}, '保单三者险异常'), 1776 '第三者责任保险金额': ('机动车第三者责任保险金额', 'se_amount_lte_compare', {}, '保单三者险异常'),
...@@ -1789,9 +1789,9 @@ BS_COMPARE_LOGIC = { ...@@ -1789,9 +1789,9 @@ BS_COMPARE_LOGIC = {
1789 '打印日期': ('print_time', 'se_bs_print_date_compare', {}, '主共借人银行流水打印日期超过15天'), 1789 '打印日期': ('print_time', 'se_bs_print_date_compare', {}, '主共借人银行流水打印日期超过15天'),
1790 '(担保人1)打印日期': ('print_time', 'se_bs_print_date_compare', {}, '担保人1银行流水打印日期超过15天'), 1790 '(担保人1)打印日期': ('print_time', 'se_bs_print_date_compare', {}, '担保人1银行流水打印日期超过15天'),
1791 '(担保人2)打印日期': ('print_time', 'se_bs_print_date_compare', {}, '担保人2银行流水打印日期超过15天'), 1791 '(担保人2)打印日期': ('print_time', 'se_bs_print_date_compare', {}, '担保人2银行流水打印日期超过15天'),
1792 '流水日期': ('date', 'se_bs_date_compare', {}, '主共借人银行流水日期不满足3个月'), 1792 '流水日期': ('timedelta', 'se_bs_date_compare', {}, '主共借人银行流水日期不满足3个月'),
1793 '(担保人1)流水日期': ('date', 'se_bs_date_compare', {}, '担保人1银行流水日期不满足3个月'), 1793 '(担保人1)流水日期': ('timedelta', 'se_bs_date_compare', {}, '担保人1银行流水日期不满足3个月'),
1794 '(担保人2)流水日期': ('date', 'se_bs_date_compare', {}, '担保人2银行流水日期不满足3个月'), 1794 '(担保人2)流水日期': ('timedelta', 'se_bs_date_compare', {}, '担保人2银行流水日期不满足3个月'),
1795 } 1795 }
1796 1796
1797 SPECIAL_REASON = '主共借人未提供银行流水,含担保人需人工查看直系亲属关系' 1797 SPECIAL_REASON = '主共借人未提供银行流水,含担保人需人工查看直系亲属关系'
......
...@@ -329,13 +329,19 @@ class Command(BaseCommand, LoggerMixin): ...@@ -329,13 +329,19 @@ class Command(BaseCommand, LoggerMixin):
329 # 保单 329 # 保单
330 if classify == consts.INSURANCE_CLASSIFY: 330 if classify == consts.INSURANCE_CLASSIFY:
331 product_result = ['', '', ''] 331 product_result = ['', '', '']
332 min_char_count_1 = 1000
333 min_char_count_2 = 1000
332 for product in license_data.get('result', {}).get('productList', []): 334 for product in license_data.get('result', {}).get('productList', []):
333 name = product.get('name', {}).get('words', '') 335 name = product.get('name', {}).get('words', '')
334 if name.find('机动车损失') != -1: 336 if name.find('机动车损失') != -1 or name.find('汽车损失') != -1:
335 product_result[0] = product.get('coverage', {}).get('words', '') 337 if len(name) < min_char_count_1:
336 product_result[2] = product.get('deductible_franchise', {}).get('words', '') 338 min_char_count_1 = len(name)
339 product_result[0] = product.get('coverage', {}).get('words', '')
340 product_result[2] = product.get('deductible_franchise', {}).get('words', '')
337 elif name.find('第三者责任') != -1: 341 elif name.find('第三者责任') != -1:
338 product_result[1] = product.get('coverage', {}).get('words', '') 342 if len(name) < min_char_count_2:
343 min_char_count_2 = len(name)
344 product_result[1] = product.get('coverage', {}).get('words', '')
339 345
340 special_str = license_data.get('result', {}).get('1stBeneficiary', {}).get('words', '') 346 special_str = license_data.get('result', {}).get('1stBeneficiary', {}).get('words', '')
341 special = '无' 347 special = '无'
...@@ -840,19 +846,11 @@ class Command(BaseCommand, LoggerMixin): ...@@ -840,19 +846,11 @@ class Command(BaseCommand, LoggerMixin):
840 print_date = bs_info.get('print_time', '').strftime("%Y-%m-%d") 846 print_date = bs_info.get('print_time', '').strftime("%Y-%m-%d")
841 except Exception as e: 847 except Exception as e:
842 print_date = '' 848 print_date = ''
843 try:
844 start_date = bs_info.get('start_date', '').strftime("%Y-%m-%d")
845 except Exception as e:
846 start_date = ''
847 try:
848 end_date = bs_info.get('end_date', '').strftime("%Y-%m-%d")
849 except Exception as e:
850 end_date = ''
851 res.append( 849 res.append(
852 { 850 {
853 'role': bs_info.get('role', ''), 851 'role': bs_info.get('role', ''),
854 'print_time': print_date, 852 'print_time': print_date,
855 'date': [start_date, end_date], 853 'timedelta': bs_info.get('timedelta', ''),
856 } 854 }
857 ) 855 )
858 return res 856 return res
......
...@@ -334,7 +334,7 @@ class BSWorkbook(Workbook): ...@@ -334,7 +334,7 @@ class BSWorkbook(Workbook):
334 metadata_rows.extend(code) 334 metadata_rows.extend(code)
335 335
336 if start_date is None or end_date is None: 336 if start_date is None or end_date is None:
337 timedelta = None 337 timedelta = ''
338 else: 338 else:
339 timedelta = (end_date - start_date).days 339 timedelta = (end_date - start_date).days
340 metadata_rows.extend( 340 metadata_rows.extend(
...@@ -344,11 +344,11 @@ class BSWorkbook(Workbook): ...@@ -344,11 +344,11 @@ class BSWorkbook(Workbook):
344 self.blank_row, 344 self.blank_row,
345 self.interest_keyword_header] 345 self.interest_keyword_header]
346 ) 346 )
347 return metadata_rows, verify_highlight_row 347 return metadata_rows, verify_highlight_row, timedelta
348 348
349 def build_meta_sheet(self, role_name, card, confidence, code, verify_list, print_time, start_date, end_date, 349 def build_meta_sheet(self, role_name, card, confidence, code, verify_list, print_time, start_date, end_date,
350 res_count_tuple, is_verify_classify): 350 res_count_tuple, is_verify_classify):
351 metadata_rows, verify_highlight_row = self.build_metadata_rows( 351 metadata_rows, verify_highlight_row, timedelta = self.build_metadata_rows(
352 confidence, code, verify_list, print_time, start_date, end_date, res_count_tuple, is_verify_classify) 352 confidence, code, verify_list, print_time, start_date, end_date, res_count_tuple, is_verify_classify)
353 if not isinstance(role_name, str): 353 if not isinstance(role_name, str):
354 role_name = consts.UNKNOWN_ROLE 354 role_name = consts.UNKNOWN_ROLE
...@@ -367,7 +367,7 @@ class BSWorkbook(Workbook): ...@@ -367,7 +367,7 @@ class BSWorkbook(Workbook):
367 cell.fill = self.amount_fill 367 cell.fill = self.amount_fill
368 for cell in ms[4]: 368 for cell in ms[4]:
369 cell.fill = self.amount_fill 369 cell.fill = self.amount_fill
370 return ms 370 return ms, timedelta
371 371
372 @staticmethod 372 @staticmethod
373 def amount_format(amount_str): 373 def amount_format(amount_str):
...@@ -682,16 +682,18 @@ class BSWorkbook(Workbook): ...@@ -682,16 +682,18 @@ class BSWorkbook(Workbook):
682 # 2.元信息提取表 682 # 2.元信息提取表
683 confidence = self.get_confidence(max_find_count) 683 confidence = self.get_confidence(max_find_count)
684 is_verify_classify = classify in consts.BS_VERIFY_CLASSIFY 684 is_verify_classify = classify in consts.BS_VERIFY_CLASSIFY
685 ms = self.build_meta_sheet(role_name, 685 ms, timedelta = self.build_meta_sheet(role_name,
686 new_card, 686 new_card,
687 confidence, 687 confidence,
688 summary.get('code'), 688 summary.get('code'),
689 summary.get('verify'), 689 summary.get('verify'),
690 summary.get('print_time'), 690 summary.get('print_time'),
691 start_date, 691 start_date,
692 end_date, 692 end_date,
693 res_count_tuple, 693 res_count_tuple,
694 is_verify_classify) 694 is_verify_classify)
695
696 summary['timedelta'] = timedelta
695 697
696 # 3.创建月份表、提取/高亮关键行 698 # 3.创建月份表、提取/高亮关键行
697 # 倒序处理 699 # 倒序处理
......
...@@ -258,6 +258,9 @@ class Comparison: ...@@ -258,6 +258,9 @@ class Comparison:
258 return self.build_res(input_s == ocr_s) 258 return self.build_res(input_s == ocr_s)
259 259
260 def se_common_compare(self, input_str, ocr_str, **kwargs): 260 def se_common_compare(self, input_str, ocr_str, **kwargs):
261 if kwargs.get('is_bd_id', False):
262 if ocr_str == '':
263 return self.RESULT_Y
261 if kwargs.get('is_gsyh', False): 264 if kwargs.get('is_gsyh', False):
262 if ocr_str == '' or ocr_str is None: 265 if ocr_str == '' or ocr_str is None:
263 return self.RESULT_Y 266 return self.RESULT_Y
...@@ -517,17 +520,18 @@ class Comparison: ...@@ -517,17 +520,18 @@ class Comparison:
517 except Exception as e: 520 except Exception as e:
518 return self.RESULT_N 521 return self.RESULT_N
519 522
520 def se_bs_date_compare(self, input_str, ocr_str_list, **kwargs): 523 def se_bs_date_compare(self, input_str, ocr_str, **kwargs):
521 if isinstance(ocr_str_list, list) and len(ocr_str_list) == 2: 524 if not isinstance(ocr_str, int):
522 try: 525 try:
523 start_date = datetime.strptime(ocr_str_list[0], "%Y-%m-%d") 526 ocr_int = int(ocr_str)
524 end_date = datetime.strptime(ocr_str_list[1], "%Y-%m-%d")
525 if end_date >= start_date + relativedelta(months=3):
526 return self.RESULT_Y
527 return self.RESULT_N
528 except Exception as e: 527 except Exception as e:
529 return self.RESULT_N 528 return self.RESULT_N
530 return self.RESULT_N 529 else:
530 ocr_int = ocr_str
531 if ocr_int >= input_str:
532 return self.RESULT_Y
533 else:
534 return self.RESULT_N
531 535
532 536
533 cp = Comparison() 537 cp = Comparison()
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!