fix se bug
Showing
5 changed files
with
38 additions
and
34 deletions
... | @@ -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,12 +329,18 @@ class Command(BaseCommand, LoggerMixin): | ... | @@ -329,12 +329,18 @@ 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: |
337 | if len(name) < min_char_count_1: | ||
338 | min_char_count_1 = len(name) | ||
335 | product_result[0] = product.get('coverage', {}).get('words', '') | 339 | product_result[0] = product.get('coverage', {}).get('words', '') |
336 | product_result[2] = product.get('deductible_franchise', {}).get('words', '') | 340 | product_result[2] = product.get('deductible_franchise', {}).get('words', '') |
337 | elif name.find('第三者责任') != -1: | 341 | elif name.find('第三者责任') != -1: |
342 | if len(name) < min_char_count_2: | ||
343 | min_char_count_2 = len(name) | ||
338 | product_result[1] = product.get('coverage', {}).get('words', '') | 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', '') |
... | @@ -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,7 +682,7 @@ class BSWorkbook(Workbook): | ... | @@ -682,7 +682,7 @@ 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'), |
... | @@ -693,6 +693,8 @@ class BSWorkbook(Workbook): | ... | @@ -693,6 +693,8 @@ class BSWorkbook(Workbook): |
693 | res_count_tuple, | 693 | res_count_tuple, |
694 | is_verify_classify) | 694 | is_verify_classify) |
695 | 695 | ||
696 | summary['timedelta'] = timedelta | ||
697 | |||
696 | # 3.创建月份表、提取/高亮关键行 | 698 | # 3.创建月份表、提取/高亮关键行 |
697 | # 倒序处理 | 699 | # 倒序处理 |
698 | is_reverse = True if sum(reverse_trend_list) > 0 else False | 700 | is_reverse = True if sum(reverse_trend_list) > 0 else False | ... | ... |
This diff is collapsed.
Click to expand it.
... | @@ -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,16 +520,17 @@ class Comparison: | ... | @@ -517,16 +520,17 @@ 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 |
529 | else: | ||
530 | ocr_int = ocr_str | ||
531 | if ocr_int >= input_str: | ||
532 | return self.RESULT_Y | ||
533 | else: | ||
530 | return self.RESULT_N | 534 | return self.RESULT_N |
531 | 535 | ||
532 | 536 | ... | ... |
-
Please register or sign in to post a comment