add qrs compare
Showing
5 changed files
with
135 additions
and
3 deletions
... | @@ -1258,6 +1258,7 @@ COMPARE_FIELDS = ( | ... | @@ -1258,6 +1258,7 @@ COMPARE_FIELDS = ( |
1258 | HMH_OCR_FIELD, | 1258 | HMH_OCR_FIELD, |
1259 | JYPZ_OCR_FIELD, | 1259 | JYPZ_OCR_FIELD, |
1260 | HT_FIELD, | 1260 | HT_FIELD, |
1261 | QRS_FIELD, | ||
1261 | BD_FIELD, | 1262 | BD_FIELD, |
1262 | BS_FIELD, | 1263 | BS_FIELD, |
1263 | HIL_CONTRACT_1_FIELD, | 1264 | HIL_CONTRACT_1_FIELD, |
... | @@ -1271,6 +1272,7 @@ PRE_COMPARE_FIELDS = ( | ... | @@ -1271,6 +1272,7 @@ PRE_COMPARE_FIELDS = ( |
1271 | BC_OCR_FIELD, | 1272 | BC_OCR_FIELD, |
1272 | HMH_OCR_FIELD, | 1273 | HMH_OCR_FIELD, |
1273 | HT_FIELD, | 1274 | HT_FIELD, |
1275 | QRS_FIELD, | ||
1274 | BD_FIELD, | 1276 | BD_FIELD, |
1275 | HIL_CONTRACT_1_FIELD, | 1277 | HIL_CONTRACT_1_FIELD, |
1276 | HIL_CONTRACT_2_FIELD, | 1278 | HIL_CONTRACT_2_FIELD, |
... | @@ -1605,6 +1607,7 @@ SE_HIL_CON_MAP = { | ... | @@ -1605,6 +1607,7 @@ SE_HIL_CON_MAP = { |
1605 | HIL_CONTRACT_3_CLASSIFY: SE_HIL_CON_3_MAP, | 1607 | HIL_CONTRACT_3_CLASSIFY: SE_HIL_CON_3_MAP, |
1606 | } | 1608 | } |
1607 | 1609 | ||
1610 | SE_AFC_CON_QRS_FIELD = ['合同编号'] | ||
1608 | SE_AFC_CON_FIELD = ['合同编号-每页', '所购车辆价格-小写-重要条款', '车架号-重要条款', '贷款本金金额-重要条款', '贷款期限-重要条款', | 1611 | SE_AFC_CON_FIELD = ['合同编号-每页', '所购车辆价格-小写-重要条款', '车架号-重要条款', '贷款本金金额-重要条款', '贷款期限-重要条款', |
1609 | '车辆贷款本金金额-重要条款', '附加产品融资贷款本金总额-重要条款', '所购车辆价格', '车架号', '经销商', | 1612 | '车辆贷款本金金额-重要条款', '附加产品融资贷款本金总额-重要条款', '所购车辆价格', '车架号', '经销商', |
1610 | '贷款本金金额', '车辆贷款本金金额', '附加产品融资贷款本金总额', '贷款期限', '还款账号', '户名', '开户行', | 1613 | '贷款本金金额', '车辆贷款本金金额', '附加产品融资贷款本金总额', '贷款期限', '还款账号', '户名', '开户行', |
... | @@ -1700,6 +1703,7 @@ DDA_EN = 'DDA' | ... | @@ -1700,6 +1703,7 @@ DDA_EN = 'DDA' |
1700 | HMH_EN = 'Mortgage Waiver Letter' | 1703 | HMH_EN = 'Mortgage Waiver Letter' |
1701 | JYPZ_EN = 'Used Car Document' | 1704 | JYPZ_EN = 'Used Car Document' |
1702 | AFC_CONTRACT_EN = 'AFC Contract' | 1705 | AFC_CONTRACT_EN = 'AFC Contract' |
1706 | AFC_CONTRACT_QRS_EN = '送达地址确认书' | ||
1703 | BD_EN = 'Insurance' | 1707 | BD_EN = 'Insurance' |
1704 | BS_EN = 'Bank Statement' | 1708 | BS_EN = 'Bank Statement' |
1705 | HIL_CONTRACT_1_EN = '售后回租合同' | 1709 | HIL_CONTRACT_1_EN = '售后回租合同' |
... | @@ -1989,6 +1993,10 @@ HIL_CONTRACT_3_COMPARE_LOGIC = { | ... | @@ -1989,6 +1993,10 @@ HIL_CONTRACT_3_COMPARE_LOGIC = { |
1989 | '承租人签字': ('承租人签字', 'se_contain_compare', {}, '车辆处置协议承租人签字与系统承租人姓名不一致'), | 1993 | '承租人签字': ('承租人签字', 'se_contain_compare', {}, '车辆处置协议承租人签字与系统承租人姓名不一致'), |
1990 | } | 1994 | } |
1991 | 1995 | ||
1996 | HT_QRS_COMPARE_LOGIC = { | ||
1997 | '合同编号': ('合同编号', 'se_qrs_compare', {}, '请确认是否提供合格的送达地址确认书'), | ||
1998 | } | ||
1999 | |||
1992 | HT_COMPARE_LOGIC = { | 2000 | HT_COMPARE_LOGIC = { |
1993 | '合同编号-每页': ('合同编号-每页', 'se_list_compare', {}, '合同编号与系统不一致'), | 2001 | '合同编号-每页': ('合同编号-每页', 'se_list_compare', {}, '合同编号与系统不一致'), |
1994 | # '合同编号-每页(no-asp)': ('合同编号-每页', 'se_list_compare', {'pop_last': True}, '合同编号与系统不一致'), | 2002 | # '合同编号-每页(no-asp)': ('合同编号-每页', 'se_list_compare', {'pop_last': True}, '合同编号与系统不一致'), |
... | @@ -2065,6 +2073,7 @@ SE_COMPARE_FIELD = { | ... | @@ -2065,6 +2073,7 @@ SE_COMPARE_FIELD = { |
2065 | HMH_EN: (HMH_OCR_FIELD, HMH_COMPARE_LOGIC, False), | 2073 | HMH_EN: (HMH_OCR_FIELD, HMH_COMPARE_LOGIC, False), |
2066 | JYPZ_EN: (JYPZ_OCR_FIELD, JYPZ_COMPARE_LOGIC, False), | 2074 | JYPZ_EN: (JYPZ_OCR_FIELD, JYPZ_COMPARE_LOGIC, False), |
2067 | AFC_CONTRACT_EN: (HT_FIELD, HT_COMPARE_LOGIC, False), | 2075 | AFC_CONTRACT_EN: (HT_FIELD, HT_COMPARE_LOGIC, False), |
2076 | AFC_CONTRACT_QRS_EN: (QRS_FIELD, HT_QRS_COMPARE_LOGIC, False), | ||
2068 | BD_EN: (BD_FIELD, BD_COMPARE_LOGIC, False), | 2077 | BD_EN: (BD_FIELD, BD_COMPARE_LOGIC, False), |
2069 | BS_EN: (BS_FIELD, BS_COMPARE_LOGIC, False), | 2078 | BS_EN: (BS_FIELD, BS_COMPARE_LOGIC, False), |
2070 | HIL_CONTRACT_1_EN: (HIL_CONTRACT_1_FIELD, HIL_CONTRACT_1_COMPARE_LOGIC, False), | 2079 | HIL_CONTRACT_1_EN: (HIL_CONTRACT_1_FIELD, HIL_CONTRACT_1_COMPARE_LOGIC, False), |
... | @@ -2074,7 +2083,7 @@ SE_COMPARE_FIELD = { | ... | @@ -2074,7 +2083,7 @@ SE_COMPARE_FIELD = { |
2074 | 2083 | ||
2075 | SE_COMPARE_FIELD_AUTO = { | 2084 | SE_COMPARE_FIELD_AUTO = { |
2076 | BS_EN: (BS_FIELD, BS_COMPARE_LOGIC_AUTO, False), | 2085 | BS_EN: (BS_FIELD, BS_COMPARE_LOGIC_AUTO, False), |
2077 | ID_EN: (IC_OCR_FIELD, ID_COMPARE_LOGIC, True), | 2086 | ID_EN: (IC_OCR_FIELD, ID_COMPARE_LOGIC_AUTO, True), |
2078 | } | 2087 | } |
2079 | 2088 | ||
2080 | 2089 | ... | ... |
... | @@ -914,8 +914,10 @@ def get_se_cms_compare_info_auto(last_obj, application_entity, auto=True, ignore | ... | @@ -914,8 +914,10 @@ def get_se_cms_compare_info_auto(last_obj, application_entity, auto=True, ignore |
914 | # is_cdfl = True # 车贷分离 | 914 | # is_cdfl = True # 车贷分离 |
915 | is_cdfl_bo = False # 车贷分离,主借 | 915 | is_cdfl_bo = False # 车贷分离,主借 |
916 | is_cdfl_co = False # 车贷分离,共借 | 916 | is_cdfl_co = False # 车贷分离,共借 |
917 | role_count = 0 | ||
917 | # province = cms_info.get('province', '') | 918 | # province = cms_info.get('province', '') |
918 | for individual_info in cms_info.get('applicantInformation', []): | 919 | for individual_info in cms_info.get('applicantInformation', []): |
920 | role_count += 1 | ||
919 | all_id_num = [] | 921 | all_id_num = [] |
920 | 922 | ||
921 | license_dict = {} | 923 | license_dict = {} |
... | @@ -1440,6 +1442,10 @@ def get_se_cms_compare_info_auto(last_obj, application_entity, auto=True, ignore | ... | @@ -1440,6 +1442,10 @@ def get_se_cms_compare_info_auto(last_obj, application_entity, auto=True, ignore |
1440 | afc_contract_input.append((consts.SE_AFC_CON_FIELD[19], empty_str)) | 1442 | afc_contract_input.append((consts.SE_AFC_CON_FIELD[19], empty_str)) |
1441 | 1443 | ||
1442 | contract_info[consts.AFC_CONTRACT_EN] = afc_contract_input | 1444 | contract_info[consts.AFC_CONTRACT_EN] = afc_contract_input |
1445 | |||
1446 | afc_contract_qrs_input = [(consts.SE_AFC_CON_QRS_FIELD[0], '{0}{1}{2}'.format(role_count, consts.SPLIT_STR, full_no))] | ||
1447 | contract_info[consts.AFC_CONTRACT_QRS_EN] = afc_contract_qrs_input | ||
1448 | |||
1443 | compare_info['contract'] = contract_info | 1449 | compare_info['contract'] = contract_info |
1444 | return compare_info, cms_info.get('autoApprovedDetails', {}).get('aaType', ''), is_gsyh | 1450 | return compare_info, cms_info.get('autoApprovedDetails', {}).get('aaType', ''), is_gsyh |
1445 | 1451 | ||
... | @@ -1460,8 +1466,10 @@ def get_se_cms_compare_info(last_obj, application_entity, detect_list, auto=Fals | ... | @@ -1460,8 +1466,10 @@ def get_se_cms_compare_info(last_obj, application_entity, detect_list, auto=Fals |
1460 | # 个人信息证件------------------------------------------------------------------------------------------------------ | 1466 | # 个人信息证件------------------------------------------------------------------------------------------------------ |
1461 | is_cdfl_bo = False # 车贷分离,主借 | 1467 | is_cdfl_bo = False # 车贷分离,主借 |
1462 | is_cdfl_co = False # 车贷分离,共借 | 1468 | is_cdfl_co = False # 车贷分离,共借 |
1469 | role_count = 0 | ||
1463 | # province = cms_info.get('province', '') | 1470 | # province = cms_info.get('province', '') |
1464 | for individual_info in cms_info.get('applicantInformation', []): | 1471 | for individual_info in cms_info.get('applicantInformation', []): |
1472 | role_count += 1 | ||
1465 | all_id_num = [] | 1473 | all_id_num = [] |
1466 | 1474 | ||
1467 | license_dict = {} | 1475 | license_dict = {} |
... | @@ -1983,6 +1991,9 @@ def get_se_cms_compare_info(last_obj, application_entity, detect_list, auto=Fals | ... | @@ -1983,6 +1991,9 @@ def get_se_cms_compare_info(last_obj, application_entity, detect_list, auto=Fals |
1983 | afc_contract_input.append((consts.SE_AFC_CON_FIELD[19], empty_str)) | 1991 | afc_contract_input.append((consts.SE_AFC_CON_FIELD[19], empty_str)) |
1984 | 1992 | ||
1985 | contract_info[consts.AFC_CONTRACT_EN] = afc_contract_input | 1993 | contract_info[consts.AFC_CONTRACT_EN] = afc_contract_input |
1994 | |||
1995 | afc_contract_qrs_input = [(consts.SE_AFC_CON_QRS_FIELD[0], '{0}{1}{2}'.format(role_count, consts.SPLIT_STR, full_no))] | ||
1996 | contract_info[consts.AFC_CONTRACT_QRS_EN] = afc_contract_qrs_input | ||
1986 | compare_info['contract'] = contract_info | 1997 | compare_info['contract'] = contract_info |
1987 | return compare_info, cms_info.get('applicationVersion', 1), is_gsyh | 1998 | return compare_info, cms_info.get('applicationVersion', 1), is_gsyh |
1988 | 1999 | ||
... | @@ -2718,6 +2729,46 @@ def se_contract_compare(license_en, ocr_res_dict, strip_list, is_gsyh): | ... | @@ -2718,6 +2729,46 @@ def se_contract_compare(license_en, ocr_res_dict, strip_list, is_gsyh): |
2718 | return result_field_list, field_img_path_dict | 2729 | return result_field_list, field_img_path_dict |
2719 | 2730 | ||
2720 | 2731 | ||
2732 | def se_contract_qrs_compare(license_en, ocr_res_dict, strip_list): | ||
2733 | ocr_field, compare_logic, _ = consts.SE_COMPARE_FIELD[license_en] | ||
2734 | ocr_res_str = ocr_res_dict.get(ocr_field) | ||
2735 | |||
2736 | result_field_list = [] | ||
2737 | field_img_path_dict = dict() | ||
2738 | |||
2739 | if ocr_res_str is not None: | ||
2740 | ocr_res_list = json.loads(ocr_res_str) | ||
2741 | |||
2742 | contract_num_list = [] | ||
2743 | for qrs_res in ocr_res_list: | ||
2744 | contract_num_list.append(qrs_res.get('合同编号', '')) | ||
2745 | |||
2746 | ocr_res = { | ||
2747 | '合同编号': contract_num_list | ||
2748 | } | ||
2749 | |||
2750 | for name, value in strip_list: | ||
2751 | |||
2752 | ocr_str_or_list = ocr_res.get(compare_logic[name][0]) | ||
2753 | |||
2754 | if isinstance(ocr_str_or_list, list): | ||
2755 | ocr_str = json.dumps(ocr_str_or_list, ensure_ascii=False) | ||
2756 | else: | ||
2757 | ocr_str_or_list = ocr_str_or_list.strip() | ||
2758 | ocr_str = ocr_str_or_list | ||
2759 | result = getattr(cp, compare_logic[name][1])(value, ocr_str_or_list, **compare_logic[name][2]) | ||
2760 | |||
2761 | reason = compare_logic[name][3] | ||
2762 | img_path = empty_str | ||
2763 | error_type = empty_error_type if result == consts.RESULT_Y else ErrorType.OCR.value | ||
2764 | result_field_list.append((name, value, result, ocr_str, img_path, error_type, reason)) | ||
2765 | else: | ||
2766 | for name, value in strip_list: | ||
2767 | result_field_list.append((name, value, consts.RESULT_N, empty_str, empty_str, ErrorType.NF.value, | ||
2768 | '{0}未找到'.format(license_en))) | ||
2769 | |||
2770 | return result_field_list, field_img_path_dict | ||
2771 | |||
2721 | def se_mvc34_compare(license_en, ocr_res_dict, field_list): | 2772 | def se_mvc34_compare(license_en, ocr_res_dict, field_list): |
2722 | ocr_field, compare_logic, _ = consts.SE_COMPARE_FIELD[license_en] | 2773 | ocr_field, compare_logic, _ = consts.SE_COMPARE_FIELD[license_en] |
2723 | ocr_res_str = ocr_res_dict.get(ocr_field) | 2774 | ocr_res_str = ocr_res_dict.get(ocr_field) |
... | @@ -2927,6 +2978,8 @@ def se_compare_process(compare_info, ocr_res_dict, is_gsyh, is_auto, id_res_list | ... | @@ -2927,6 +2978,8 @@ def se_compare_process(compare_info, ocr_res_dict, is_gsyh, is_auto, id_res_list |
2927 | result_field_list, field_img_path_dict = se_mvc34_compare(license_en, ocr_res_dict, strip_list) | 2978 | result_field_list, field_img_path_dict = se_mvc34_compare(license_en, ocr_res_dict, strip_list) |
2928 | elif license_en in [consts.HIL_CONTRACT_1_EN, consts.HIL_CONTRACT_2_EN, consts.HIL_CONTRACT_3_EN, consts.AFC_CONTRACT_EN]: | 2979 | elif license_en in [consts.HIL_CONTRACT_1_EN, consts.HIL_CONTRACT_2_EN, consts.HIL_CONTRACT_3_EN, consts.AFC_CONTRACT_EN]: |
2929 | result_field_list, field_img_path_dict = se_contract_compare(license_en, ocr_res_dict, strip_list, is_gsyh) | 2980 | result_field_list, field_img_path_dict = se_contract_compare(license_en, ocr_res_dict, strip_list, is_gsyh) |
2981 | elif license_en == consts.AFC_CONTRACT_QRS_EN: | ||
2982 | result_field_list, field_img_path_dict = se_contract_qrs_compare(license_en, ocr_res_dict, strip_list) | ||
2930 | elif license_en == consts.BS_EN: | 2983 | elif license_en == consts.BS_EN: |
2931 | result_field_list, field_img_path_dict = se_bs_compare(license_en, ocr_res_dict, strip_list, is_auto) | 2984 | result_field_list, field_img_path_dict = se_bs_compare(license_en, ocr_res_dict, strip_list, is_auto) |
2932 | else: | 2985 | else: |
... | @@ -2936,8 +2989,11 @@ def se_compare_process(compare_info, ocr_res_dict, is_gsyh, is_auto, id_res_list | ... | @@ -2936,8 +2989,11 @@ def se_compare_process(compare_info, ocr_res_dict, is_gsyh, is_auto, id_res_list |
2936 | for name, value, result, ocr_str, img_path, error_type, cn_reason in result_field_list: | 2989 | for name, value, result, ocr_str, img_path, error_type, cn_reason in result_field_list: |
2937 | total_fields += 1 | 2990 | total_fields += 1 |
2938 | if result == consts.RESULT_N: | 2991 | if result == consts.RESULT_N: |
2939 | # if license_en != consts.MVI_EN or name != consts.SE_NEW_ADD_FIELD[9]: | 2992 | # 确认书N2 |
2940 | successful_at_this_level = False | 2993 | if license_en == consts.AFC_CONTRACT_QRS_EN and name == consts.SE_AFC_CON_QRS_FIELD[0] and ocr_str == empty_str: |
2994 | pass | ||
2995 | else: | ||
2996 | successful_at_this_level = False | ||
2941 | failed_count += 1 | 2997 | failed_count += 1 |
2942 | each_license_failed_count += 1 | 2998 | each_license_failed_count += 1 |
2943 | failure_field.append(name) | 2999 | failure_field.append(name) | ... | ... |
... | @@ -646,6 +646,20 @@ class Comparison: | ... | @@ -646,6 +646,20 @@ class Comparison: |
646 | # input_str = input_str.replace('-', '') | 646 | # input_str = input_str.replace('-', '') |
647 | 647 | ||
648 | return self.is_after_today_pre(ocr_str) | 648 | return self.is_after_today_pre(ocr_str) |
649 | |||
650 | def se_qrs_compare(self, input_str, ocr_str_or_list, **kwargs): | ||
651 | try: | ||
652 | target_count_str, application_id = input_str.split('_') | ||
653 | search_count = 0 | ||
654 | for item_str in ocr_str_or_list: | ||
655 | if item_str == application_id: | ||
656 | search_count += 1 | ||
657 | if search_count >= int(target_count_str): | ||
658 | return self.RESULT_Y | ||
659 | else: | ||
660 | return self.RESULT_N | ||
661 | except Exception as e: | ||
662 | return self.RESULT_N | ||
649 | 663 | ||
650 | 664 | ||
651 | cp = Comparison() | 665 | cp = Comparison() | ... | ... |
... | @@ -19,8 +19,10 @@ def get_pos_compare_info(pos_info): | ... | @@ -19,8 +19,10 @@ def get_pos_compare_info(pos_info): |
19 | custr_name = custr_id = '' | 19 | custr_name = custr_id = '' |
20 | 20 | ||
21 | # 身份证 | 21 | # 身份证 |
22 | role_count = 0 | ||
22 | individual_cus_info_list = pos_info.get('individualCusInfo', []) | 23 | individual_cus_info_list = pos_info.get('individualCusInfo', []) |
23 | for individual_cus_info in individual_cus_info_list: | 24 | for individual_cus_info in individual_cus_info_list: |
25 | role_count += 1 | ||
24 | customer_name = individual_cus_info.get('customerName', '').strip() | 26 | customer_name = individual_cus_info.get('customerName', '').strip() |
25 | id_num = individual_cus_info.get('idNum', '') | 27 | id_num = individual_cus_info.get('idNum', '') |
26 | applicant_type = individual_cus_info.get('applicantType', '') | 28 | applicant_type = individual_cus_info.get('applicantType', '') |
... | @@ -177,6 +179,9 @@ def get_pos_compare_info(pos_info): | ... | @@ -177,6 +179,9 @@ def get_pos_compare_info(pos_info): |
177 | afc_contract_input.append((consts.AFC_CON_FIELDS[11], empty_str)) | 179 | afc_contract_input.append((consts.AFC_CON_FIELDS[11], empty_str)) |
178 | compare_info.setdefault(consts.AFC_CONTRACT_EN, []).append(afc_contract_input) | 180 | compare_info.setdefault(consts.AFC_CONTRACT_EN, []).append(afc_contract_input) |
179 | 181 | ||
182 | afc_contract_qrs_input = [(consts.AFC_CON_QRS_FIELDS[0], '{0}{1}{2}'.format(role_count, consts.SPLIT_STR, application_id_version))] | ||
183 | compare_info.setdefault(consts.AFC_CONTRACT_QRS_EN, []).append(afc_contract_qrs_input) | ||
184 | |||
180 | return compare_info | 185 | return compare_info |
181 | 186 | ||
182 | 187 | ||
... | @@ -191,6 +196,10 @@ def pre_compare_process(compare_info, ocr_res_dict, id_res_list): | ... | @@ -191,6 +196,10 @@ def pre_compare_process(compare_info, ocr_res_dict, id_res_list): |
191 | for field_list in items_list: | 196 | for field_list in items_list: |
192 | result_list = pre_compare_license_contract(license_en, ocr_res_dict, field_list) | 197 | result_list = pre_compare_license_contract(license_en, ocr_res_dict, field_list) |
193 | compare_result.setdefault(license_en, []).append(result_list) | 198 | compare_result.setdefault(license_en, []).append(result_list) |
199 | elif license_en == consts.AFC_CONTRACT_QRS_EN: | ||
200 | for field_list in items_list: | ||
201 | result_list = pre_compare_license_contract_qrs(license_en, ocr_res_dict, field_list) | ||
202 | compare_result.setdefault(license_en, []).append(result_list) | ||
194 | else: | 203 | else: |
195 | for field_list in items_list: | 204 | for field_list in items_list: |
196 | result_list = pre_compare_license(license_en, ocr_res_dict, field_list) | 205 | result_list = pre_compare_license(license_en, ocr_res_dict, field_list) |
... | @@ -376,6 +385,42 @@ def pre_compare_license_contract(license_en, ocr_res_dict, field_list): | ... | @@ -376,6 +385,42 @@ def pre_compare_license_contract(license_en, ocr_res_dict, field_list): |
376 | return result_field_list | 385 | return result_field_list |
377 | 386 | ||
378 | 387 | ||
388 | def pre_compare_license_contract_qrs(license_en, ocr_res_dict, field_list): | ||
389 | ocr_field, compare_logic, no_find_comment = consts.PRE_COMPARE_LOGIC_MAP[license_en] | ||
390 | ocr_res_str = ocr_res_dict.get(ocr_field) | ||
391 | |||
392 | result_field_list = [] | ||
393 | |||
394 | if ocr_res_str is not None: | ||
395 | ocr_res_list = json.loads(ocr_res_str) | ||
396 | |||
397 | contract_num_list = [] | ||
398 | for qrs_res in ocr_res_list: | ||
399 | contract_num_list.append(qrs_res.get('合同编号', '')) | ||
400 | |||
401 | ocr_res = { | ||
402 | '合同编号': contract_num_list | ||
403 | } | ||
404 | |||
405 | for name, value in field_list: | ||
406 | |||
407 | ocr_str_or_list = ocr_res.get(compare_logic[name][0]) | ||
408 | |||
409 | if isinstance(ocr_str_or_list, list): | ||
410 | ocr_str = json.dumps(ocr_str_or_list, ensure_ascii=False) | ||
411 | else: | ||
412 | ocr_str_or_list = ocr_str_or_list.strip() | ||
413 | ocr_str = ocr_str_or_list | ||
414 | result = getattr(cp, compare_logic[name][1])(value, ocr_str_or_list, **compare_logic[name][2]) | ||
415 | |||
416 | comments = compare_logic[name][3] | ||
417 | result_field_list.append((value, ocr_str, result, comments)) | ||
418 | else: | ||
419 | result_field_list.append((empty_str, empty_str, consts.RESULT_N, no_find_comment)) | ||
420 | |||
421 | return result_field_list | ||
422 | |||
423 | |||
379 | def rebuild_result(compare_result): | 424 | def rebuild_result(compare_result): |
380 | # compare_result = { | 425 | # compare_result = { |
381 | # "is_pass": True, | 426 | # "is_pass": True, | ... | ... |
... | @@ -26,6 +26,7 @@ ASP_SUM_NAME = '附加产品融资贷款本金总金额' | ... | @@ -26,6 +26,7 @@ ASP_SUM_NAME = '附加产品融资贷款本金总金额' |
26 | 26 | ||
27 | HIL_CON_2_FIELDS = ['合同编号', '合同编号-正文', '车辆识别代码'] | 27 | HIL_CON_2_FIELDS = ['合同编号', '合同编号-正文', '车辆识别代码'] |
28 | 28 | ||
29 | AFC_CON_QRS_FIELDS = ['合同编号'] | ||
29 | AFC_CON_FIELDS = ['合同编号-每页', '合同编号-每页(no-asp)', '车架号-重要条款', '车架号', '还款账号', '户名', '开户行', | 30 | AFC_CON_FIELDS = ['合同编号-每页', '合同编号-每页(no-asp)', '车架号-重要条款', '车架号', '还款账号', '户名', '开户行', |
30 | '还款计划表', 'ASP项目详情-重要条款', 'ASP项目详情', '见证人签字', '见证人日期'] | 31 | '还款计划表', 'ASP项目详情-重要条款', 'ASP项目详情', '见证人签字', '见证人日期'] |
31 | AFC_HT_DATE_FIELDS = ['主借人日期', '共借人日期', '保证人日期1', '保证人日期2'] | 32 | AFC_HT_DATE_FIELDS = ['主借人日期', '共借人日期', '保证人日期1', '保证人日期2'] |
... | @@ -38,6 +39,7 @@ BD_EN = 'Insurance' | ... | @@ -38,6 +39,7 @@ BD_EN = 'Insurance' |
38 | HIL_CONTRACT_1_EN = '售后回租合同' | 39 | HIL_CONTRACT_1_EN = '售后回租合同' |
39 | HIL_CONTRACT_2_EN = '车辆租赁抵押合同' | 40 | HIL_CONTRACT_2_EN = '车辆租赁抵押合同' |
40 | AFC_CONTRACT_EN = '合同' | 41 | AFC_CONTRACT_EN = '合同' |
42 | AFC_CONTRACT_QRS_EN = '送达地址确认书' | ||
41 | 43 | ||
42 | ID_OCR_FIELD = 'ic_ocr' | 44 | ID_OCR_FIELD = 'ic_ocr' |
43 | MVI_OCR_FIELD = 'mvi_ocr' | 45 | MVI_OCR_FIELD = 'mvi_ocr' |
... | @@ -47,6 +49,7 @@ BD_FIELD = 'bd_ocr' | ... | @@ -47,6 +49,7 @@ BD_FIELD = 'bd_ocr' |
47 | HIL_CONTRACT_1_FIELD = 'hil_contract_1_ocr' | 49 | HIL_CONTRACT_1_FIELD = 'hil_contract_1_ocr' |
48 | HIL_CONTRACT_2_FIELD = 'hil_contract_2_ocr' | 50 | HIL_CONTRACT_2_FIELD = 'hil_contract_2_ocr' |
49 | HT_FIELD = 'ht_ocr' | 51 | HT_FIELD = 'ht_ocr' |
52 | QRS_FIELD = 'qrs_ocr' | ||
50 | 53 | ||
51 | MVI_COMPARE_LOGIC = { | 54 | MVI_COMPARE_LOGIC = { |
52 | MVI_FIELDS[0]: ('车辆识别代码', 'se_common_compare', {}, '发票车架号与系统不一致'), | 55 | MVI_FIELDS[0]: ('车辆识别代码', 'se_common_compare', {}, '发票车架号与系统不一致'), |
... | @@ -93,6 +96,10 @@ HIL_CONTRACT_2_COMPARE_LOGIC = { | ... | @@ -93,6 +96,10 @@ HIL_CONTRACT_2_COMPARE_LOGIC = { |
93 | HIL_CON_2_FIELDS[2]: ('车辆识别代码', 'se_common_compare', {}, '车辆租赁抵押合同车辆识别代码与系统车架号不一致'), | 96 | HIL_CON_2_FIELDS[2]: ('车辆识别代码', 'se_common_compare', {}, '车辆租赁抵押合同车辆识别代码与系统车架号不一致'), |
94 | } | 97 | } |
95 | 98 | ||
99 | QRS_COMPARE_LOGIC = { | ||
100 | AFC_CON_QRS_FIELDS[0]: ('合同编号', 'se_qrs_compare', {}, '请确认是否提供合格的送达地址确认书'), | ||
101 | } | ||
102 | |||
96 | HT_COMPARE_LOGIC = { | 103 | HT_COMPARE_LOGIC = { |
97 | AFC_CON_FIELDS[0]: ('合同编号-每页', 'se_list_compare', {}, '合同编号与系统不一致'), | 104 | AFC_CON_FIELDS[0]: ('合同编号-每页', 'se_list_compare', {}, '合同编号与系统不一致'), |
98 | # '合同编号-每页(no-asp)': ('合同编号-每页', 'se_list_compare', {'pop_last': True}, '合同编号与系统不一致'), | 105 | # '合同编号-每页(no-asp)': ('合同编号-每页', 'se_list_compare', {'pop_last': True}, '合同编号与系统不一致'), |
... | @@ -131,6 +138,7 @@ PRE_COMPARE_LOGIC_MAP = { | ... | @@ -131,6 +138,7 @@ PRE_COMPARE_LOGIC_MAP = { |
131 | HMH_EN: (HMH_OCR_FIELD, HMH_COMPARE_LOGIC, '请确认是否已完成抵押登记豁免函签署'), | 138 | HMH_EN: (HMH_OCR_FIELD, HMH_COMPARE_LOGIC, '请确认是否已完成抵押登记豁免函签署'), |
132 | BD_EN: (BD_FIELD, BD_COMPARE_LOGIC, '请确认是否提供保单'), | 139 | BD_EN: (BD_FIELD, BD_COMPARE_LOGIC, '请确认是否提供保单'), |
133 | AFC_CONTRACT_EN: (HT_FIELD, HT_COMPARE_LOGIC, '请确认是否已完成车辆抵押贷款合同签署'), | 140 | AFC_CONTRACT_EN: (HT_FIELD, HT_COMPARE_LOGIC, '请确认是否已完成车辆抵押贷款合同签署'), |
141 | AFC_CONTRACT_QRS_EN: (QRS_FIELD, QRS_COMPARE_LOGIC, '请确认是否提供合格的送达地址确认书'), | ||
134 | HIL_CONTRACT_1_EN: (HIL_CONTRACT_1_FIELD, HIL_CONTRACT_1_COMPARE_LOGIC, '请确认是否已完成售后回租合同签署'), | 142 | HIL_CONTRACT_1_EN: (HIL_CONTRACT_1_FIELD, HIL_CONTRACT_1_COMPARE_LOGIC, '请确认是否已完成售后回租合同签署'), |
135 | HIL_CONTRACT_2_EN: (HIL_CONTRACT_2_FIELD, HIL_CONTRACT_2_COMPARE_LOGIC, '请确认是否已完成车辆租赁抵押合同签署'), | 143 | HIL_CONTRACT_2_EN: (HIL_CONTRACT_2_FIELD, HIL_CONTRACT_2_COMPARE_LOGIC, '请确认是否已完成车辆租赁抵押合同签署'), |
136 | } | 144 | } | ... | ... |
-
Please register or sign in to post a comment