add se bs jypz
Showing
4 changed files
with
41 additions
and
16 deletions
... | @@ -1439,6 +1439,8 @@ SE_BS_FIELD = ['户名', '打印日期', '流水日期', '(担保人1)户名', ' | ... | @@ -1439,6 +1439,8 @@ SE_BS_FIELD = ['户名', '打印日期', '流水日期', '(担保人1)户名', ' |
1439 | SE_HMH_FIELD = ['借款人/承租人姓名', '借款人/承租人证件号', '申请号', '渠道', '签字'] | 1439 | SE_HMH_FIELD = ['借款人/承租人姓名', '借款人/承租人证件号', '申请号', '渠道', '签字'] |
1440 | SE_BD_FIELD = ['被保险人姓名', '被保险人证件号码', '车架号', '机动车损失保险金额', '第三者责任保险金额', '绝对免赔率', '保险起始日期', '保险截止日期', '保单章', '第一受益人', '保险费合计'] | 1440 | SE_BD_FIELD = ['被保险人姓名', '被保险人证件号码', '车架号', '机动车损失保险金额', '第三者责任保险金额', '绝对免赔率', '保险起始日期', '保险截止日期', '保单章', '第一受益人', '保险费合计'] |
1441 | JDMPV_VALUE = ['-', '--', '0%', '0.00', '/', '0', ''] | 1441 | JDMPV_VALUE = ['-', '--', '0%', '0.00', '/', '0', ''] |
1442 | JYPZ_TYPE_1 = ['二手车交易凭证'] | ||
1443 | JYPZ_TYPE_2 = ['BMW官方认证二手车交易凭证', '二手车交易凭证'] | ||
1442 | 1444 | ||
1443 | SE_BANK_FIELD = ['accountNo', 'bankName'] | 1445 | SE_BANK_FIELD = ['accountNo', 'bankName'] |
1444 | SE_DDA_FIELD = ['applicationId(1)', 'applicationId(2)', 'bankName', 'companyName', 'customerName', 'idNum', 'accountHolderName', 'accountNo'] | 1446 | SE_DDA_FIELD = ['applicationId(1)', 'applicationId(2)', 'bankName', 'companyName', 'customerName', 'idNum', 'accountHolderName', 'accountNo'] |
... | @@ -1811,6 +1813,7 @@ DDA_COMPARE_LOGIC = { | ... | @@ -1811,6 +1813,7 @@ DDA_COMPARE_LOGIC = { |
1811 | } | 1813 | } |
1812 | 1814 | ||
1813 | JYPZ_COMPARE_LOGIC = { | 1815 | JYPZ_COMPARE_LOGIC = { |
1816 | 'type': ('type', 'super_list_compare', {}, '二手车凭证类型与产品不符'), | ||
1814 | 'vinNo': ('vin', 'se_common_compare', {}, '二手车凭证车辆识别代号与系统车架号不一致'), | 1817 | 'vinNo': ('vin', 'se_common_compare', {}, '二手车凭证车辆识别代号与系统车架号不一致'), |
1815 | 'dealerName': ('authorized_dealer', 'se_common_compare', {}, '二手车凭证经销商与系统经销商不一致'), | 1818 | 'dealerName': ('authorized_dealer', 'se_common_compare', {}, '二手车凭证经销商与系统经销商不一致'), |
1816 | 'vehicleTransactionAmount': ('price', 'se_amount_compare', {}, '二手车凭证购买方交易价格与系统车辆价格不一致'), | 1819 | 'vehicleTransactionAmount': ('price', 'se_amount_compare', {}, '二手车凭证购买方交易价格与系统车辆价格不一致'), | ... | ... |
... | @@ -919,6 +919,7 @@ class Command(BaseCommand, LoggerMixin): | ... | @@ -919,6 +919,7 @@ class Command(BaseCommand, LoggerMixin): |
919 | 'role': bs_info.get('role', ''), | 919 | 'role': bs_info.get('role', ''), |
920 | 'print_time': print_date, | 920 | 'print_time': print_date, |
921 | 'timedelta': bs_info.get('timedelta', ''), | 921 | 'timedelta': bs_info.get('timedelta', ''), |
922 | 'verify': bs_info.get('verify', True) | ||
922 | } | 923 | } |
923 | ) | 924 | ) |
924 | return res | 925 | return res | ... | ... |
... | @@ -392,7 +392,9 @@ class BSWorkbook(Workbook): | ... | @@ -392,7 +392,9 @@ class BSWorkbook(Workbook): |
392 | cell.fill = self.amount_fill | 392 | cell.fill = self.amount_fill |
393 | for cell in ms[4]: | 393 | for cell in ms[4]: |
394 | cell.fill = self.amount_fill | 394 | cell.fill = self.amount_fill |
395 | return ms, timedelta | 395 | |
396 | verify_res = False if len(metadata_highlight_row) > 0 or len(verify_highlight_row) > 0 else True | ||
397 | return ms, timedelta, verify_res | ||
396 | 398 | ||
397 | @staticmethod | 399 | @staticmethod |
398 | def amount_format(amount_str): | 400 | def amount_format(amount_str): |
... | @@ -723,20 +725,21 @@ class BSWorkbook(Workbook): | ... | @@ -723,20 +725,21 @@ class BSWorkbook(Workbook): |
723 | # 2.元信息提取表 | 725 | # 2.元信息提取表 |
724 | confidence = self.get_confidence(max_find_count, classify) | 726 | confidence = self.get_confidence(max_find_count, classify) |
725 | is_verify_classify = classify in consts.BS_VERIFY_CLASSIFY | 727 | is_verify_classify = classify in consts.BS_VERIFY_CLASSIFY |
726 | ms, timedelta = self.build_meta_sheet(role_name, | 728 | ms, timedelta, verify_res = self.build_meta_sheet(role_name, |
727 | new_card, | 729 | new_card, |
728 | confidence, | 730 | confidence, |
729 | summary.get('code'), | 731 | summary.get('code'), |
730 | summary.get('verify'), | 732 | summary.get('verify'), |
731 | summary.get('print_time'), | 733 | summary.get('print_time'), |
732 | start_date, | 734 | start_date, |
733 | end_date, | 735 | end_date, |
734 | res_count_tuple, | 736 | res_count_tuple, |
735 | is_verify_classify, | 737 | is_verify_classify, |
736 | metadata) | 738 | metadata) |
737 | 739 | ||
738 | summary['timedelta'] = timedelta | 740 | summary['timedelta'] = timedelta |
739 | summary['end_date'] = end_date | 741 | summary['end_date'] = end_date |
742 | summary['verify'] = verify_res | ||
740 | 743 | ||
741 | # 3.创建月份表、提取/高亮关键行 | 744 | # 3.创建月份表、提取/高亮关键行 |
742 | # 倒序处理 | 745 | # 倒序处理 | ... | ... |
... | @@ -1062,7 +1062,7 @@ def get_se_cms_compare_info_auto(last_obj, application_entity, auto=True): | ... | @@ -1062,7 +1062,7 @@ def get_se_cms_compare_info_auto(last_obj, application_entity, auto=True): |
1062 | # jypz_field_input.append(('dealerName', dealer_name)) | 1062 | # jypz_field_input.append(('dealerName', dealer_name)) |
1063 | # jypz_field_input.append(('vinNo', vin_no)) | 1063 | # jypz_field_input.append(('vinNo', vin_no)) |
1064 | # jypz_field_input.append(('vehicleTransactionAmount', amount)) | 1064 | # jypz_field_input.append(('vehicleTransactionAmount', amount)) |
1065 | # jypz_field_input.append((consts.SE_GB_USED_FIELD[-1], first_submission_date)) | 1065 | # jypz_field_input.append((consts.SE_GB_USED_FIELD[2], first_submission_date)) |
1066 | # | 1066 | # |
1067 | # vehicle_info[consts.MVC_EN] = gb_field_input | 1067 | # vehicle_info[consts.MVC_EN] = gb_field_input |
1068 | # vehicle_info[consts.MVC34_EN] = gb34_field_input | 1068 | # vehicle_info[consts.MVC34_EN] = gb34_field_input |
... | @@ -1531,6 +1531,7 @@ def get_se_cms_compare_info(last_obj, application_entity, detect_list, auto=Fals | ... | @@ -1531,6 +1531,7 @@ def get_se_cms_compare_info(last_obj, application_entity, detect_list, auto=Fals |
1531 | # dda_num = '、'.join(dda_num_list) | 1531 | # dda_num = '、'.join(dda_num_list) |
1532 | # del main_role_info | 1532 | # del main_role_info |
1533 | 1533 | ||
1534 | fp_group = cms_info.get('fpGroup', '') | ||
1534 | vehicle_info = {} | 1535 | vehicle_info = {} |
1535 | vehicle_field_input = [] | 1536 | vehicle_field_input = [] |
1536 | vehicle_status = cms_info.get('vehicleStatus', '') | 1537 | vehicle_status = cms_info.get('vehicleStatus', '') |
... | @@ -1592,7 +1593,11 @@ def get_se_cms_compare_info(last_obj, application_entity, detect_list, auto=Fals | ... | @@ -1592,7 +1593,11 @@ def get_se_cms_compare_info(last_obj, application_entity, detect_list, auto=Fals |
1592 | jypz_field_input.append(('dealerName', dealer_name)) | 1593 | jypz_field_input.append(('dealerName', dealer_name)) |
1593 | jypz_field_input.append(('vinNo', vin_no)) | 1594 | jypz_field_input.append(('vinNo', vin_no)) |
1594 | jypz_field_input.append(('vehicleTransactionAmount', amount)) | 1595 | jypz_field_input.append(('vehicleTransactionAmount', amount)) |
1595 | jypz_field_input.append((consts.SE_GB_USED_FIELD[-1], first_submission_date)) | 1596 | jypz_field_input.append((consts.SE_GB_USED_FIELD[2], first_submission_date)) |
1597 | if fp_group.find('Non-OCU Product Group') != -1: | ||
1598 | jypz_field_input.append(('type', consts.JYPZ_TYPE_1)) | ||
1599 | elif fp_group.find('OCU Product Group') != -1: | ||
1600 | jypz_field_input.append(('type', consts.JYPZ_TYPE_2)) | ||
1596 | 1601 | ||
1597 | vehicle_info[consts.MVC_EN] = gb_field_input | 1602 | vehicle_info[consts.MVC_EN] = gb_field_input |
1598 | vehicle_info[consts.MVC34_EN] = gb34_field_input | 1603 | vehicle_info[consts.MVC34_EN] = gb34_field_input |
... | @@ -1739,7 +1744,6 @@ def get_se_cms_compare_info(last_obj, application_entity, detect_list, auto=Fals | ... | @@ -1739,7 +1744,6 @@ def get_se_cms_compare_info(last_obj, application_entity, detect_list, auto=Fals |
1739 | # 保单 ----------------------------------------------------------------------------------------------------------- | 1744 | # 保单 ----------------------------------------------------------------------------------------------------------- |
1740 | is_insurance = 0 | 1745 | is_insurance = 0 |
1741 | fp_campaign = cms_info.get('fpCampaign', '') | 1746 | fp_campaign = cms_info.get('fpCampaign', '') |
1742 | fp_group = cms_info.get('fpGroup', '') | ||
1743 | insurance_type = cms_info.get('insuranceDetails', {}).get('insuranceType', '') | 1747 | insurance_type = cms_info.get('insuranceDetails', {}).get('insuranceType', '') |
1744 | if isinstance(insurance_price, str): | 1748 | if isinstance(insurance_price, str): |
1745 | is_insurance = 1 | 1749 | is_insurance = 1 |
... | @@ -1961,9 +1965,16 @@ def se_bs_compare(license_en, ocr_res_dict, strip_list, is_auto): | ... | @@ -1961,9 +1965,16 @@ def se_bs_compare(license_en, ocr_res_dict, strip_list, is_auto): |
1961 | # 主共借人 | 1965 | # 主共借人 |
1962 | pre_best_res = {} | 1966 | pre_best_res = {} |
1963 | max_correct_count = 0 | 1967 | max_correct_count = 0 |
1964 | for ocr_res in ocr_res_list: | 1968 | verify_list = [] |
1969 | verify_false_idx_list = [] | ||
1970 | |||
1971 | for tmp_idx, ocr_res in enumerate(ocr_res_list): | ||
1965 | correct_count = 0 | 1972 | correct_count = 0 |
1966 | pre_tmp_res_part = {} | 1973 | pre_tmp_res_part = {} |
1974 | verify_bool = ocr_res.get('verify', True) | ||
1975 | verify_list.append(verify_bool) | ||
1976 | if not verify_bool: | ||
1977 | verify_false_idx_list.append(str(tmp_idx+1)) | ||
1967 | for idx, (name, value) in enumerate(pre_field_list): | 1978 | for idx, (name, value) in enumerate(pre_field_list): |
1968 | ocr_str_or_list = ocr_res.get(compare_logic[name][0]) | 1979 | ocr_str_or_list = ocr_res.get(compare_logic[name][0]) |
1969 | if isinstance(ocr_str_or_list, str) or isinstance(ocr_str_or_list, list) \ | 1980 | if isinstance(ocr_str_or_list, str) or isinstance(ocr_str_or_list, list) \ |
... | @@ -1990,6 +2001,13 @@ def se_bs_compare(license_en, ocr_res_dict, strip_list, is_auto): | ... | @@ -1990,6 +2001,13 @@ def se_bs_compare(license_en, ocr_res_dict, strip_list, is_auto): |
1990 | max_correct_count = correct_count | 2001 | max_correct_count = correct_count |
1991 | pre_best_res = pre_tmp_res_part | 2002 | pre_best_res = pre_tmp_res_part |
1992 | 2003 | ||
2004 | # 真伪 | ||
2005 | if not is_auto: | ||
2006 | name = '真伪' | ||
2007 | result = consts.RESULT_Y if all(verify_list) else consts.RESULT_N | ||
2008 | reason = '第{0}份银行流水疑似造假,需人工核查'.format('、'.join(verify_false_idx_list)) | ||
2009 | result_field_list.append((name, empty_str, result, json.dumps(verify_list, ensure_ascii=False), empty_str, empty_error_type, reason)) | ||
2010 | |||
1993 | # 担保人1 | 2011 | # 担保人1 |
1994 | dbr1_best_res = {} | 2012 | dbr1_best_res = {} |
1995 | if len(dbr1_field_list) > 0: | 2013 | if len(dbr1_field_list) > 0: | ... | ... |
-
Please register or sign in to post a comment