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