3e6491e2 by 冯轩

Merge branch 'feature/CHINARPA-4395' into feature/uat-tmp

2 parents c4a3a8eb 498bf14e
...@@ -158,6 +158,13 @@ class PreSEHandler: ...@@ -158,6 +158,13 @@ class PreSEHandler:
158 result_class = HILSEOCRResult if application_entity in consts.HIL_SET else AFCSEOCRResult 158 result_class = HILSEOCRResult if application_entity in consts.HIL_SET else AFCSEOCRResult
159 ca_result_class = HILOCRResult if application_entity in consts.HIL_SET else AFCOCRResult 159 ca_result_class = HILOCRResult if application_entity in consts.HIL_SET else AFCOCRResult
160 160
161 data_source = ''
162 if application_entity == consts.AFC_PREFIX:
163 doc_obj = AFCDoc.objects.filter(application_id=application_id, document_name__icontains='电子签署-车辆抵押贷款合同').last()
164 data_source = doc_obj.data_source
165 LoggerMixin.running_log.info('[pre get data_source] [id={0}] [data_source={1}]]'.format(
166 application_id, data_source))
167
161 ca_ocr_res_dict = ca_result_class.objects.filter(application_id=application_id).values( 168 ca_ocr_res_dict = ca_result_class.objects.filter(application_id=application_id).values(
162 *consts.CA_ADD_COMPARE_FIELDS_PRE).first() 169 *consts.CA_ADD_COMPARE_FIELDS_PRE).first()
163 ocr_res_dict = result_class.objects.filter(application_id=application_id).values( 170 ocr_res_dict = result_class.objects.filter(application_id=application_id).values(
...@@ -171,7 +178,7 @@ class PreSEHandler: ...@@ -171,7 +178,7 @@ class PreSEHandler:
171 id_res_list.append(ca_ocr_res_dict.get(field_name) if isinstance(ca_ocr_res_dict, dict) else None) 178 id_res_list.append(ca_ocr_res_dict.get(field_name) if isinstance(ca_ocr_res_dict, dict) else None)
172 id_res_list.append(ocr_res_dict.get(field_name)) 179 id_res_list.append(ocr_res_dict.get(field_name))
173 180
174 rebuild_compare_result = pre_compare(pos_content, ocr_res_dict, id_res_list) 181 rebuild_compare_result = pre_compare(pos_content, ocr_res_dict, id_res_list, data_source)
175 return rebuild_compare_result 182 return rebuild_compare_result
176 183
177 184
......
...@@ -37,6 +37,7 @@ from apps.doc.models import ( ...@@ -37,6 +37,7 @@ from apps.doc.models import (
37 InterfaceReport, 37 InterfaceReport,
38 HILCompareReportNew, 38 HILCompareReportNew,
39 AFCCompareReportNew, 39 AFCCompareReportNew,
40 AFCDoc,
40 ) 41 )
41 from apps.doc import consts 42 from apps.doc import consts
42 from apps.doc.ocr.gcap import gcap 43 from apps.doc.ocr.gcap import gcap
...@@ -899,7 +900,7 @@ def ca_compare(application_id, application_entity, ocr_res_id, last_obj, ocr_res ...@@ -899,7 +900,7 @@ def ca_compare(application_id, application_entity, ocr_res_id, last_obj, ocr_res
899 traceback.format_exc())) 900 traceback.format_exc()))
900 901
901 902
902 def get_se_cms_compare_info_auto(last_obj, application_entity, auto=True, ignore_bank=False): 903 def get_se_cms_compare_info_auto(last_obj, application_entity, data_source, auto=True, ignore_bank=False):
903 cms_info = json.loads(last_obj.content) 904 cms_info = json.loads(last_obj.content)
904 905
905 compare_info = {} 906 compare_info = {}
...@@ -1439,7 +1440,7 @@ def get_se_cms_compare_info_auto(last_obj, application_entity, auto=True, ignore ...@@ -1439,7 +1440,7 @@ def get_se_cms_compare_info_auto(last_obj, application_entity, auto=True, ignore
1439 if not is_find and is_force: 1440 if not is_find and is_force:
1440 afc_contract_input.append((key, empty_str)) 1441 afc_contract_input.append((key, empty_str))
1441 1442
1442 if online_sign: 1443 if online_sign and data_source == 'ECONTRACT':
1443 afc_contract_input.append((consts.SE_AFC_CON_FIELD[18], consts.SE_STAMP_VALUE)) 1444 afc_contract_input.append((consts.SE_AFC_CON_FIELD[18], consts.SE_STAMP_VALUE))
1444 afc_contract_input.append((consts.SE_AFC_CON_FIELD[19], empty_str)) 1445 afc_contract_input.append((consts.SE_AFC_CON_FIELD[19], empty_str))
1445 1446
...@@ -1452,7 +1453,7 @@ def get_se_cms_compare_info_auto(last_obj, application_entity, auto=True, ignore ...@@ -1452,7 +1453,7 @@ def get_se_cms_compare_info_auto(last_obj, application_entity, auto=True, ignore
1452 return compare_info, cms_info.get('autoApprovedDetails', {}).get('aaType', ''), is_gsyh 1453 return compare_info, cms_info.get('autoApprovedDetails', {}).get('aaType', ''), is_gsyh
1453 1454
1454 1455
1455 def get_se_cms_compare_info(last_obj, application_entity, detect_list, auto=False, ignore_bank=False): 1456 def get_se_cms_compare_info(last_obj, application_entity, detect_list, data_source, auto=False, ignore_bank=False):
1456 cms_info = json.loads(last_obj.content) 1457 cms_info = json.loads(last_obj.content)
1457 1458
1458 compare_info = {} 1459 compare_info = {}
...@@ -1988,7 +1989,7 @@ def get_se_cms_compare_info(last_obj, application_entity, detect_list, auto=Fals ...@@ -1988,7 +1989,7 @@ def get_se_cms_compare_info(last_obj, application_entity, detect_list, auto=Fals
1988 if not is_find and is_force: 1989 if not is_find and is_force:
1989 afc_contract_input.append((key, empty_str)) 1990 afc_contract_input.append((key, empty_str))
1990 1991
1991 if online_sign: 1992 if online_sign and data_source == 'ECONTRACT':
1992 afc_contract_input.append((consts.SE_AFC_CON_FIELD[18], consts.SE_STAMP_VALUE)) 1993 afc_contract_input.append((consts.SE_AFC_CON_FIELD[18], consts.SE_STAMP_VALUE))
1993 afc_contract_input.append((consts.SE_AFC_CON_FIELD[19], empty_str)) 1994 afc_contract_input.append((consts.SE_AFC_CON_FIELD[19], empty_str))
1994 1995
...@@ -3119,13 +3120,13 @@ def se_result_detect(ocr_res_dict): ...@@ -3119,13 +3120,13 @@ def se_result_detect(ocr_res_dict):
3119 return detect_list 3120 return detect_list
3120 3121
3121 3122
3122 def se_compare_auto(application_id, application_entity, ocr_res_id, last_obj, ocr_res_dict, auto_obj, ignore_bank, id_res_list): 3123 def se_compare_auto(application_id, application_entity, ocr_res_id, last_obj, ocr_res_dict, auto_obj, ignore_bank, id_res_list, data_source):
3123 start_time = datetime.now() 3124 start_time = datetime.now()
3124 try: 3125 try:
3125 # 比对逻辑 3126 # 比对逻辑
3126 # detect_list = se_result_detect(ocr_res_dict) 3127 # detect_list = se_result_detect(ocr_res_dict)
3127 compare_info, aa_type, is_gsyh = get_se_cms_compare_info_auto( 3128 compare_info, aa_type, is_gsyh = get_se_cms_compare_info_auto(
3128 last_obj, application_entity, ignore_bank=ignore_bank) 3129 last_obj, application_entity, data_source, ignore_bank=ignore_bank)
3129 compare_result, total_fields, failed_count, successful_at_this_level, failure_reason_str, \ 3130 compare_result, total_fields, failed_count, successful_at_this_level, failure_reason_str, \
3130 cn_failure_reason_str, bs_failure_reason_str, _, field_result_dict = se_compare_process( 3131 cn_failure_reason_str, bs_failure_reason_str, _, field_result_dict = se_compare_process(
3131 compare_info, ocr_res_dict, is_gsyh, True, id_res_list, aa_type) 3132 compare_info, ocr_res_dict, is_gsyh, True, id_res_list, aa_type)
...@@ -3186,13 +3187,13 @@ def se_compare_auto(application_id, application_entity, ocr_res_id, last_obj, oc ...@@ -3186,13 +3187,13 @@ def se_compare_auto(application_id, application_entity, ocr_res_id, last_obj, oc
3186 3187
3187 3188
3188 def se_compare(application_id, application_entity, ocr_res_id, last_obj, ocr_res_dict, is_cms, 3189 def se_compare(application_id, application_entity, ocr_res_id, last_obj, ocr_res_dict, is_cms,
3189 auto_result, ignore_bank, id_res_list): 3190 auto_result, ignore_bank, id_res_list, data_source):
3190 try: 3191 try:
3191 # 比对逻辑 3192 # 比对逻辑
3192 start_time = datetime.now() 3193 start_time = datetime.now()
3193 detect_list = se_result_detect(ocr_res_dict) 3194 detect_list = se_result_detect(ocr_res_dict)
3194 compare_info, application_version, aa_type, is_gsyh = get_se_cms_compare_info( 3195 compare_info, application_version, aa_type, is_gsyh = get_se_cms_compare_info(
3195 last_obj, application_entity, detect_list, ignore_bank=ignore_bank) 3196 last_obj, application_entity, detect_list, data_source, ignore_bank=ignore_bank)
3196 compare_result, total_fields, failed_count, successful_at_this_level, failure_reason_str, \ 3197 compare_result, total_fields, failed_count, successful_at_this_level, failure_reason_str, \
3197 cn_failure_reason_str, bs_failure_reason_str, rpa_failure_reason, field_result_dict = se_compare_process( 3198 cn_failure_reason_str, bs_failure_reason_str, rpa_failure_reason, field_result_dict = se_compare_process(
3198 compare_info, ocr_res_dict, is_gsyh, False, id_res_list, aa_type) 3199 compare_info, ocr_res_dict, is_gsyh, False, id_res_list, aa_type)
...@@ -3426,12 +3427,18 @@ def compare(application_id, application_entity, uniq_seq, ocr_res_id, is_ca=True ...@@ -3426,12 +3427,18 @@ def compare(application_id, application_entity, uniq_seq, ocr_res_id, is_ca=True
3426 auto_obj = auto_class.objects.filter(application_id=application_id, on_off=True).first() 3427 auto_obj = auto_class.objects.filter(application_id=application_id, on_off=True).first()
3427 bank_class = HILbankVerification if application_entity == consts.HIL_PREFIX else AFCbankVerification 3428 bank_class = HILbankVerification if application_entity == consts.HIL_PREFIX else AFCbankVerification
3428 ignore_bank = bank_class.objects.filter(application_id=application_id, on_off=True).exists() 3429 ignore_bank = bank_class.objects.filter(application_id=application_id, on_off=True).exists()
3430 data_source = ''
3431 if application_entity == consts.AFC_PREFIX:
3432 doc_obj = AFCDoc.objects.filter(application_id=application_id, document_name__icontains='电子签署-车辆抵押贷款合同').last()
3433 data_source = doc_obj.data_source
3434 compare_log.info('{0} [get data_source] [id={1}] [data_source={2}]]'.format(
3435 log_base, application_id, data_source))
3429 if auto_obj is not None: 3436 if auto_obj is not None:
3430 auto_result = se_compare_auto(application_id, application_entity, ocr_res_id, last_obj, ocr_res_dict, auto_obj, ignore_bank, id_res_list) 3437 auto_result = se_compare_auto(application_id, application_entity, ocr_res_id, last_obj, ocr_res_dict, auto_obj, ignore_bank, id_res_list, data_source)
3431 else: 3438 else:
3432 auto_result = None 3439 auto_result = None
3433 3440
3434 full_result = se_compare(application_id, application_entity, ocr_res_id, last_obj, ocr_res_dict, is_cms, auto_result, ignore_bank, id_res_list) 3441 full_result = se_compare(application_id, application_entity, ocr_res_id, last_obj, ocr_res_dict, is_cms, auto_result, ignore_bank, id_res_list, data_source)
3435 3442
3436 if auto_obj is not None: 3443 if auto_obj is not None:
3437 try: 3444 try:
......
...@@ -6,7 +6,7 @@ from common.tools.comparison import cp ...@@ -6,7 +6,7 @@ from common.tools.comparison import cp
6 empty_str = '' 6 empty_str = ''
7 7
8 8
9 def get_pos_compare_info(pos_info): 9 def get_pos_compare_info(pos_info, data_source):
10 compare_info = {} 10 compare_info = {}
11 11
12 application_entity = pos_info.get('applicationEntity', 'AFC') 12 application_entity = pos_info.get('applicationEntity', 'AFC')
...@@ -175,8 +175,10 @@ def get_pos_compare_info(pos_info): ...@@ -175,8 +175,10 @@ def get_pos_compare_info(pos_info):
175 afc_contract_input.append((consts.AFC_CON_FIELDS[8], asp_list)) 175 afc_contract_input.append((consts.AFC_CON_FIELDS[8], asp_list))
176 afc_contract_input.append((consts.AFC_CON_FIELDS[9], asp_list)) 176 afc_contract_input.append((consts.AFC_CON_FIELDS[9], asp_list))
177 177
178 if data_source == 'ECONTRACT':
178 afc_contract_input.append((consts.AFC_CON_FIELDS[10], consts.HAVE_CN)) 179 afc_contract_input.append((consts.AFC_CON_FIELDS[10], consts.HAVE_CN))
179 afc_contract_input.append((consts.AFC_CON_FIELDS[11], empty_str)) 180 afc_contract_input.append((consts.AFC_CON_FIELDS[11], empty_str))
181
180 compare_info.setdefault(consts.AFC_CONTRACT_EN, []).append(afc_contract_input) 182 compare_info.setdefault(consts.AFC_CONTRACT_EN, []).append(afc_contract_input)
181 183
182 afc_contract_qrs_input = [(consts.AFC_CON_QRS_FIELDS[0], '{0}{1}{2}'.format(role_count, consts.SPLIT_STR, application_id_version))] 184 afc_contract_qrs_input = [(consts.AFC_CON_QRS_FIELDS[0], '{0}{1}{2}'.format(role_count, consts.SPLIT_STR, application_id_version))]
...@@ -463,8 +465,8 @@ def rebuild_result(compare_result): ...@@ -463,8 +465,8 @@ def rebuild_result(compare_result):
463 return rebuild_compare_result 465 return rebuild_compare_result
464 466
465 467
466 def pre_compare(pos_info, ocr_res_dict, id_res_list): 468 def pre_compare(pos_info, ocr_res_dict, id_res_list, data_source):
467 compare_info = get_pos_compare_info(pos_info) 469 compare_info = get_pos_compare_info(pos_info, data_source)
468 compare_result = pre_compare_process(compare_info, ocr_res_dict, id_res_list) 470 compare_result = pre_compare_process(compare_info, ocr_res_dict, id_res_list)
469 rebuild_compare_result = rebuild_result(compare_result) 471 rebuild_compare_result = rebuild_result(compare_result)
470 return rebuild_compare_result 472 return rebuild_compare_result
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!