Merge branch 'feature/qrs' into feature/uat-tmp
Showing
9 changed files
with
220 additions
and
9 deletions
... | @@ -1042,6 +1042,10 @@ JYPZ_FIELD_ORDER = (("type", "标题"), | ... | @@ -1042,6 +1042,10 @@ JYPZ_FIELD_ORDER = (("type", "标题"), |
1042 | CONTRACT_CN_NAME = '合同' | 1042 | CONTRACT_CN_NAME = '合同' |
1043 | CONTRACT_CLASSIFY = 41 | 1043 | CONTRACT_CLASSIFY = 41 |
1044 | 1044 | ||
1045 | # 合同-送达地址确认书 | ||
1046 | CONTRACT_QRS_CN_NAME = '送达地址确认书' | ||
1047 | CONTRACT_QRS_CLASSIFY = 49 | ||
1048 | |||
1045 | # 合同编号: 每页 | 1049 | # 合同编号: 每页 |
1046 | 1050 | ||
1047 | HIL_CONTRACT_1_CN_NAME = '售后回租合同' | 1051 | HIL_CONTRACT_1_CN_NAME = '售后回租合同' |
... | @@ -1053,13 +1057,14 @@ HIL_CONTRACT_2_CLASSIFY = 44 | ... | @@ -1053,13 +1057,14 @@ HIL_CONTRACT_2_CLASSIFY = 44 |
1053 | HIL_CONTRACT_3_CN_NAME = '车辆处置协议' | 1057 | HIL_CONTRACT_3_CN_NAME = '车辆处置协议' |
1054 | HIL_CONTRACT_3_CLASSIFY = 45 | 1058 | HIL_CONTRACT_3_CLASSIFY = 45 |
1055 | 1059 | ||
1056 | CONTRACT_SET = {CONTRACT_CLASSIFY, HIL_CONTRACT_1_CLASSIFY, HIL_CONTRACT_2_CLASSIFY, HIL_CONTRACT_3_CLASSIFY} | 1060 | CONTRACT_SET = {CONTRACT_QRS_CLASSIFY, CONTRACT_CLASSIFY, HIL_CONTRACT_1_CLASSIFY, HIL_CONTRACT_2_CLASSIFY, HIL_CONTRACT_3_CLASSIFY} |
1057 | 1061 | ||
1058 | CONTRACT_MAP = { | 1062 | CONTRACT_MAP = { |
1059 | HIL_CONTRACT_1_CLASSIFY: HIL_CONTRACT_1_CN_NAME, | 1063 | HIL_CONTRACT_1_CLASSIFY: HIL_CONTRACT_1_CN_NAME, |
1060 | HIL_CONTRACT_2_CLASSIFY: HIL_CONTRACT_2_CN_NAME, | 1064 | HIL_CONTRACT_2_CLASSIFY: HIL_CONTRACT_2_CN_NAME, |
1061 | HIL_CONTRACT_3_CLASSIFY: HIL_CONTRACT_3_CN_NAME, | 1065 | HIL_CONTRACT_3_CLASSIFY: HIL_CONTRACT_3_CN_NAME, |
1062 | CONTRACT_CLASSIFY: CONTRACT_CN_NAME, | 1066 | CONTRACT_CLASSIFY: CONTRACT_CN_NAME, |
1067 | CONTRACT_QRS_CLASSIFY: CONTRACT_QRS_CN_NAME, | ||
1063 | } | 1068 | } |
1064 | 1069 | ||
1065 | # 保单 | 1070 | # 保单 |
... | @@ -1203,6 +1208,7 @@ DDA_OCR_FIELD = 'bs_ocr' | ... | @@ -1203,6 +1208,7 @@ DDA_OCR_FIELD = 'bs_ocr' |
1203 | HMH_OCR_FIELD = 'hmh_ocr' | 1208 | HMH_OCR_FIELD = 'hmh_ocr' |
1204 | JYPZ_OCR_FIELD = 'jypz_ocr' | 1209 | JYPZ_OCR_FIELD = 'jypz_ocr' |
1205 | HT_FIELD = 'ht_ocr' | 1210 | HT_FIELD = 'ht_ocr' |
1211 | QRS_FIELD = 'qrs_ocr' | ||
1206 | BD_FIELD = 'bd_ocr' | 1212 | BD_FIELD = 'bd_ocr' |
1207 | BS_FIELD = 'bss_ocr' | 1213 | BS_FIELD = 'bss_ocr' |
1208 | HIL_CONTRACT_1_FIELD = 'hil_contract_1_ocr' | 1214 | HIL_CONTRACT_1_FIELD = 'hil_contract_1_ocr' |
... | @@ -1226,6 +1232,7 @@ RESULT_MAPPING = { | ... | @@ -1226,6 +1232,7 @@ RESULT_MAPPING = { |
1226 | HMH_CLASSIFY: HMH_OCR_FIELD, | 1232 | HMH_CLASSIFY: HMH_OCR_FIELD, |
1227 | JYPZ_CLASSIFY: JYPZ_OCR_FIELD, | 1233 | JYPZ_CLASSIFY: JYPZ_OCR_FIELD, |
1228 | CONTRACT_CLASSIFY: HT_FIELD, | 1234 | CONTRACT_CLASSIFY: HT_FIELD, |
1235 | CONTRACT_QRS_CLASSIFY: QRS_FIELD, | ||
1229 | INSURANCE_CLASSIFY: BD_FIELD, | 1236 | INSURANCE_CLASSIFY: BD_FIELD, |
1230 | BS_CLASSIFY: BS_FIELD, | 1237 | BS_CLASSIFY: BS_FIELD, |
1231 | HIL_CONTRACT_1_CLASSIFY: HIL_CONTRACT_1_FIELD, | 1238 | HIL_CONTRACT_1_CLASSIFY: HIL_CONTRACT_1_FIELD, |
... | @@ -1251,6 +1258,7 @@ COMPARE_FIELDS = ( | ... | @@ -1251,6 +1258,7 @@ COMPARE_FIELDS = ( |
1251 | HMH_OCR_FIELD, | 1258 | HMH_OCR_FIELD, |
1252 | JYPZ_OCR_FIELD, | 1259 | JYPZ_OCR_FIELD, |
1253 | HT_FIELD, | 1260 | HT_FIELD, |
1261 | QRS_FIELD, | ||
1254 | BD_FIELD, | 1262 | BD_FIELD, |
1255 | BS_FIELD, | 1263 | BS_FIELD, |
1256 | HIL_CONTRACT_1_FIELD, | 1264 | HIL_CONTRACT_1_FIELD, |
... | @@ -1264,6 +1272,7 @@ PRE_COMPARE_FIELDS = ( | ... | @@ -1264,6 +1272,7 @@ PRE_COMPARE_FIELDS = ( |
1264 | BC_OCR_FIELD, | 1272 | BC_OCR_FIELD, |
1265 | HMH_OCR_FIELD, | 1273 | HMH_OCR_FIELD, |
1266 | HT_FIELD, | 1274 | HT_FIELD, |
1275 | QRS_FIELD, | ||
1267 | BD_FIELD, | 1276 | BD_FIELD, |
1268 | HIL_CONTRACT_1_FIELD, | 1277 | HIL_CONTRACT_1_FIELD, |
1269 | HIL_CONTRACT_2_FIELD, | 1278 | HIL_CONTRACT_2_FIELD, |
... | @@ -1479,6 +1488,10 @@ AFC_CON_FIELD_ORDER_LTGT = ( | ... | @@ -1479,6 +1488,10 @@ AFC_CON_FIELD_ORDER_LTGT = ( |
1479 | ('标准利率', '标准利率'), | 1488 | ('标准利率', '标准利率'), |
1480 | ) | 1489 | ) |
1481 | 1490 | ||
1491 | SE_AFC_CON_QRS_MAP = { | ||
1492 | '合同编号': (1, '合同编号'), | ||
1493 | } | ||
1494 | |||
1482 | SE_AFC_CON_MAP = { | 1495 | SE_AFC_CON_MAP = { |
1483 | '合同编号-每页': (None, None, '合同编号', None), | 1496 | '合同编号-每页': (None, None, '合同编号', None), |
1484 | '所购车辆价格-小写-重要条款': (1, 1, '所购车辆价格', None), | 1497 | '所购车辆价格-小写-重要条款': (1, 1, '所购车辆价格', None), |
... | @@ -1594,6 +1607,7 @@ SE_HIL_CON_MAP = { | ... | @@ -1594,6 +1607,7 @@ SE_HIL_CON_MAP = { |
1594 | HIL_CONTRACT_3_CLASSIFY: SE_HIL_CON_3_MAP, | 1607 | HIL_CONTRACT_3_CLASSIFY: SE_HIL_CON_3_MAP, |
1595 | } | 1608 | } |
1596 | 1609 | ||
1610 | SE_AFC_CON_QRS_FIELD = ['合同编号'] | ||
1597 | SE_AFC_CON_FIELD = ['合同编号-每页', '所购车辆价格-小写-重要条款', '车架号-重要条款', '贷款本金金额-重要条款', '贷款期限-重要条款', | 1611 | SE_AFC_CON_FIELD = ['合同编号-每页', '所购车辆价格-小写-重要条款', '车架号-重要条款', '贷款本金金额-重要条款', '贷款期限-重要条款', |
1598 | '车辆贷款本金金额-重要条款', '附加产品融资贷款本金总额-重要条款', '所购车辆价格', '车架号', '经销商', | 1612 | '车辆贷款本金金额-重要条款', '附加产品融资贷款本金总额-重要条款', '所购车辆价格', '车架号', '经销商', |
1599 | '贷款本金金额', '车辆贷款本金金额', '附加产品融资贷款本金总额', '贷款期限', '还款账号', '户名', '开户行', | 1613 | '贷款本金金额', '车辆贷款本金金额', '附加产品融资贷款本金总额', '贷款期限', '还款账号', '户名', '开户行', |
... | @@ -1689,6 +1703,7 @@ DDA_EN = 'DDA' | ... | @@ -1689,6 +1703,7 @@ DDA_EN = 'DDA' |
1689 | HMH_EN = 'Mortgage Waiver Letter' | 1703 | HMH_EN = 'Mortgage Waiver Letter' |
1690 | JYPZ_EN = 'Used Car Document' | 1704 | JYPZ_EN = 'Used Car Document' |
1691 | AFC_CONTRACT_EN = 'AFC Contract' | 1705 | AFC_CONTRACT_EN = 'AFC Contract' |
1706 | AFC_CONTRACT_QRS_EN = '送达地址确认书' | ||
1692 | BD_EN = 'Insurance' | 1707 | BD_EN = 'Insurance' |
1693 | BS_EN = 'Bank Statement' | 1708 | BS_EN = 'Bank Statement' |
1694 | HIL_CONTRACT_1_EN = '售后回租合同' | 1709 | HIL_CONTRACT_1_EN = '售后回租合同' |
... | @@ -1978,6 +1993,10 @@ HIL_CONTRACT_3_COMPARE_LOGIC = { | ... | @@ -1978,6 +1993,10 @@ HIL_CONTRACT_3_COMPARE_LOGIC = { |
1978 | '承租人签字': ('承租人签字', 'se_contain_compare', {}, '车辆处置协议承租人签字与系统承租人姓名不一致'), | 1993 | '承租人签字': ('承租人签字', 'se_contain_compare', {}, '车辆处置协议承租人签字与系统承租人姓名不一致'), |
1979 | } | 1994 | } |
1980 | 1995 | ||
1996 | HT_QRS_COMPARE_LOGIC = { | ||
1997 | '合同编号': ('合同编号', 'se_qrs_compare', {}, '请确认是否提供合格的送达地址确认书'), | ||
1998 | } | ||
1999 | |||
1981 | HT_COMPARE_LOGIC = { | 2000 | HT_COMPARE_LOGIC = { |
1982 | '合同编号-每页': ('合同编号-每页', 'se_list_compare', {}, '合同编号与系统不一致'), | 2001 | '合同编号-每页': ('合同编号-每页', 'se_list_compare', {}, '合同编号与系统不一致'), |
1983 | # '合同编号-每页(no-asp)': ('合同编号-每页', 'se_list_compare', {'pop_last': True}, '合同编号与系统不一致'), | 2002 | # '合同编号-每页(no-asp)': ('合同编号-每页', 'se_list_compare', {'pop_last': True}, '合同编号与系统不一致'), |
... | @@ -2054,6 +2073,7 @@ SE_COMPARE_FIELD = { | ... | @@ -2054,6 +2073,7 @@ SE_COMPARE_FIELD = { |
2054 | HMH_EN: (HMH_OCR_FIELD, HMH_COMPARE_LOGIC, False), | 2073 | HMH_EN: (HMH_OCR_FIELD, HMH_COMPARE_LOGIC, False), |
2055 | JYPZ_EN: (JYPZ_OCR_FIELD, JYPZ_COMPARE_LOGIC, False), | 2074 | JYPZ_EN: (JYPZ_OCR_FIELD, JYPZ_COMPARE_LOGIC, False), |
2056 | 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), | ||
2057 | BD_EN: (BD_FIELD, BD_COMPARE_LOGIC, False), | 2077 | BD_EN: (BD_FIELD, BD_COMPARE_LOGIC, False), |
2058 | BS_EN: (BS_FIELD, BS_COMPARE_LOGIC, False), | 2078 | BS_EN: (BS_FIELD, BS_COMPARE_LOGIC, False), |
2059 | 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), |
... | @@ -2063,7 +2083,7 @@ SE_COMPARE_FIELD = { | ... | @@ -2063,7 +2083,7 @@ SE_COMPARE_FIELD = { |
2063 | 2083 | ||
2064 | SE_COMPARE_FIELD_AUTO = { | 2084 | SE_COMPARE_FIELD_AUTO = { |
2065 | BS_EN: (BS_FIELD, BS_COMPARE_LOGIC_AUTO, False), | 2085 | BS_EN: (BS_FIELD, BS_COMPARE_LOGIC_AUTO, False), |
2066 | ID_EN: (IC_OCR_FIELD, ID_COMPARE_LOGIC, True), | 2086 | ID_EN: (IC_OCR_FIELD, ID_COMPARE_LOGIC_AUTO, True), |
2067 | } | 2087 | } |
2068 | 2088 | ||
2069 | 2089 | ||
... | @@ -2308,6 +2328,7 @@ FILE_NAME_PREFIX_MAP = { | ... | @@ -2308,6 +2328,7 @@ FILE_NAME_PREFIX_MAP = { |
2308 | ECONTRACT_KEYWORDS_MAP = { | 2328 | ECONTRACT_KEYWORDS_MAP = { |
2309 | AFC_PREFIX: [ | 2329 | AFC_PREFIX: [ |
2310 | ('抵押贷款合同', CONTRACT_CLASSIFY), | 2330 | ('抵押贷款合同', CONTRACT_CLASSIFY), |
2331 | ('送达地址确认书', CONTRACT_QRS_CLASSIFY), | ||
2311 | # ('电子签署-抵押登记豁免函', HMH_CLASSIFY, 0), | 2332 | # ('电子签署-抵押登记豁免函', HMH_CLASSIFY, 0), |
2312 | ], | 2333 | ], |
2313 | HIL_PREFIX: [ | 2334 | HIL_PREFIX: [ | ... | ... |
... | @@ -987,6 +987,15 @@ class Command(BaseCommand, LoggerMixin): | ... | @@ -987,6 +987,15 @@ class Command(BaseCommand, LoggerMixin): |
987 | # } | 987 | # } |
988 | # } | 988 | # } |
989 | license_summary[classify] = [res] | 989 | license_summary[classify] = [res] |
990 | elif classify == consts.CONTRACT_QRS_CLASSIFY: | ||
991 | res = {} | ||
992 | for key, (pno, key1) in consts.SE_AFC_CON_QRS_MAP.items(): | ||
993 | res[key] = page_info_dict.get(str(pno), {}).get(key1, '') | ||
994 | res.setdefault(consts.IMG_PATH_KEY, dict())[key] = page_info_dict.get(str(pno), {}).get( | ||
995 | consts.IMG_PATH_KEY, '') | ||
996 | res.setdefault(consts.ALL_POSITION_KEY, dict())[key] = page_info_dict.get(str(pno), {}).get( | ||
997 | consts.ALL_POSITION_KEY, {}).get(key1, []) | ||
998 | license_summary[classify] = [res] | ||
990 | else: | 999 | else: |
991 | res = {} | 1000 | res = {} |
992 | for key, (pno1, pno2, end_idx, key1, key2) in consts.SE_HIL_CON_MAP[classify].items(): | 1001 | for key, (pno1, pno2, end_idx, key1, key2) in consts.SE_HIL_CON_MAP[classify].items(): |
... | @@ -1474,6 +1483,16 @@ class Command(BaseCommand, LoggerMixin): | ... | @@ -1474,6 +1483,16 @@ class Command(BaseCommand, LoggerMixin): |
1474 | 'page_num': page_num, | 1483 | 'page_num': page_num, |
1475 | 'page_info': page_info | 1484 | 'page_info': page_info |
1476 | } | 1485 | } |
1486 | elif classify_1_str == str(consts.CONTRACT_QRS_CLASSIFY): | ||
1487 | ocr_result = afc_predict(pdf_handler.pdf_info, is_qrs=True) | ||
1488 | page_num = 'page_1' | ||
1489 | page_res = { | ||
1490 | page_num: { | ||
1491 | 'classify': int(classify_1_str), | ||
1492 | 'page_num': page_num, | ||
1493 | 'page_info': ocr_result.pop(page_num, {}) | ||
1494 | } | ||
1495 | } | ||
1477 | else: | 1496 | else: |
1478 | file_type_1 = consts.HIL_CONTRACT_TYPE_MAP.get(classify_1_str) | 1497 | file_type_1 = consts.HIL_CONTRACT_TYPE_MAP.get(classify_1_str) |
1479 | ocr_result_1 = hil_predict(pdf_handler.pdf_info, file_type_1) | 1498 | ocr_result_1 = hil_predict(pdf_handler.pdf_info, file_type_1) | ... | ... |
... | @@ -328,6 +328,7 @@ class AFCOCRResult(models.Model): | ... | @@ -328,6 +328,7 @@ class AFCOCRResult(models.Model): |
328 | hil_contract_1_ocr = models.TextField(null=True, verbose_name="HIL合同1") | 328 | hil_contract_1_ocr = models.TextField(null=True, verbose_name="HIL合同1") |
329 | hil_contract_2_ocr = models.TextField(null=True, verbose_name="HIL合同2") | 329 | hil_contract_2_ocr = models.TextField(null=True, verbose_name="HIL合同2") |
330 | hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3") | 330 | hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3") |
331 | qrs_ocr = models.TextField(null=True, verbose_name="AFC合同确认书") | ||
331 | 332 | ||
332 | update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间') | 333 | update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间') |
333 | create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') | 334 | create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') |
... | @@ -363,6 +364,7 @@ class HILOCRResult(models.Model): | ... | @@ -363,6 +364,7 @@ class HILOCRResult(models.Model): |
363 | hil_contract_1_ocr = models.TextField(null=True, verbose_name="HIL合同1") | 364 | hil_contract_1_ocr = models.TextField(null=True, verbose_name="HIL合同1") |
364 | hil_contract_2_ocr = models.TextField(null=True, verbose_name="HIL合同2") | 365 | hil_contract_2_ocr = models.TextField(null=True, verbose_name="HIL合同2") |
365 | hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3") | 366 | hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3") |
367 | qrs_ocr = models.TextField(null=True, verbose_name="AFC合同确认书") | ||
366 | 368 | ||
367 | update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间') | 369 | update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间') |
368 | create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') | 370 | create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') |
... | @@ -397,6 +399,7 @@ class AFCSEOCRResult(models.Model): | ... | @@ -397,6 +399,7 @@ class AFCSEOCRResult(models.Model): |
397 | hil_contract_1_ocr = models.TextField(null=True, verbose_name="HIL合同1") | 399 | hil_contract_1_ocr = models.TextField(null=True, verbose_name="HIL合同1") |
398 | hil_contract_2_ocr = models.TextField(null=True, verbose_name="HIL合同2") | 400 | hil_contract_2_ocr = models.TextField(null=True, verbose_name="HIL合同2") |
399 | hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3") | 401 | hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3") |
402 | qrs_ocr = models.TextField(null=True, verbose_name="AFC合同确认书") | ||
400 | 403 | ||
401 | update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间') | 404 | update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间') |
402 | create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') | 405 | create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') |
... | @@ -432,6 +435,7 @@ class HILSEOCRResult(models.Model): | ... | @@ -432,6 +435,7 @@ class HILSEOCRResult(models.Model): |
432 | hil_contract_1_ocr = models.TextField(null=True, verbose_name="HIL合同1") | 435 | hil_contract_1_ocr = models.TextField(null=True, verbose_name="HIL合同1") |
433 | hil_contract_2_ocr = models.TextField(null=True, verbose_name="HIL合同2") | 436 | hil_contract_2_ocr = models.TextField(null=True, verbose_name="HIL合同2") |
434 | hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3") | 437 | hil_contract_3_ocr = models.TextField(null=True, verbose_name="HIL合同3") |
438 | qrs_ocr = models.TextField(null=True, verbose_name="AFC合同确认书") | ||
435 | 439 | ||
436 | update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间') | 440 | update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间') |
437 | create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') | 441 | create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间') | ... | ... |
... | @@ -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) | ... | ... |
... | @@ -9,7 +9,21 @@ from .get_char import Finder | ... | @@ -9,7 +9,21 @@ from .get_char import Finder |
9 | import numpy as np | 9 | import numpy as np |
10 | 10 | ||
11 | 11 | ||
12 | def predict(pdf_info): | 12 | def extract_info(ocr_results): |
13 | contract_no = { | ||
14 | "words": None, | ||
15 | "position": None | ||
16 | } | ||
17 | for bbox, text in ocr_results.get('0', {}).values(): | ||
18 | if text.startswith('CH-B'): | ||
19 | contract_no['words'] = text | ||
20 | contract_no['position'] = [bbox[0], bbox[1], bbox[2], bbox[-1]] | ||
21 | break | ||
22 | |||
23 | return {'page_1': {'合同编号': contract_no}} | ||
24 | |||
25 | |||
26 | def predict(pdf_info, is_qrs=False): | ||
13 | ocr_results = {} | 27 | ocr_results = {} |
14 | for pno in pdf_info: | 28 | for pno in pdf_info: |
15 | ocr_results[pno] = {} | 29 | ocr_results[pno] = {} |
... | @@ -32,9 +46,12 @@ def predict(pdf_info): | ... | @@ -32,9 +46,12 @@ def predict(pdf_info): |
32 | keys = list(range(len(ocr_result))) | 46 | keys = list(range(len(ocr_result))) |
33 | ocr_result = dict(zip(keys, ocr_result)) | 47 | ocr_result = dict(zip(keys, ocr_result)) |
34 | ocr_results[pno] = ocr_result | 48 | ocr_results[pno] = ocr_result |
35 | # 输入是整个 PDF 中的信息 | 49 | if is_qrs: |
36 | f = Finder(pdf_info, ocr_results=ocr_results) | 50 | results = extract_info(ocr_results) |
37 | results = f.get_info() | 51 | else: |
52 | # 输入是整个 PDF 中的信息 | ||
53 | f = Finder(pdf_info, ocr_results=ocr_results) | ||
54 | results = f.get_info() | ||
38 | return results | 55 | return results |
39 | 56 | ||
40 | 57 | ... | ... |
... | @@ -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() | ... | ... |
src/common/tools/mssql_script23.py
0 → 100644
1 | import pyodbc | ||
2 | |||
3 | hil_sql = """ | ||
4 | ALTER TABLE hil_ocr_result ADD qrs_ocr nvarchar(max); | ||
5 | ALTER TABLE hil_se_ocr_result ADD qrs_ocr nvarchar(max); | ||
6 | """ | ||
7 | |||
8 | afc_sql = """ | ||
9 | ALTER TABLE afc_ocr_result ADD qrs_ocr nvarchar(max); | ||
10 | ALTER TABLE afc_se_ocr_result ADD qrs_ocr nvarchar(max); | ||
11 | """ | ||
12 | |||
13 | hil_cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};', autocommit=True) | ||
14 | |||
15 | hil_cursor = hil_cnxn.cursor() | ||
16 | hil_cursor.execute(hil_sql) | ||
17 | |||
18 | hil_cursor.close() | ||
19 | hil_cnxn.close() | ||
20 | |||
21 | afc_cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};', autocommit=True) | ||
22 | |||
23 | afc_cursor = afc_cnxn.cursor() | ||
24 | afc_cursor.execute(afc_sql) | ||
25 | |||
26 | afc_cursor.close() | ||
27 | afc_cnxn.close() |
... | @@ -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, |
... | @@ -434,7 +479,7 @@ def get_empty_result(): | ... | @@ -434,7 +479,7 @@ def get_empty_result(): |
434 | "input": "", | 479 | "input": "", |
435 | "ocr": "", | 480 | "ocr": "", |
436 | "field_is_pass": False, | 481 | "field_is_pass": False, |
437 | "comments": "未查找到OCR识别结果" | 482 | "comments": "预放款结果超时未返回,请直接提交放款" |
438 | }] | 483 | }] |
439 | }] | 484 | }] |
440 | } | 485 | } | ... | ... |
... | @@ -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