498bf14e by 冯轩

MOD:核查点区分是否添加见证人字段

1 parent 2a03b2a7
......@@ -158,6 +158,13 @@ class PreSEHandler:
result_class = HILSEOCRResult if application_entity in consts.HIL_SET else AFCSEOCRResult
ca_result_class = HILOCRResult if application_entity in consts.HIL_SET else AFCOCRResult
data_source = ''
if application_entity == consts.AFC_PREFIX:
doc_obj = AFCDoc.objects.filter(application_id=application_id, document_name__icontains='电子签署-车辆抵押贷款合同').last()
data_source = doc_obj.data_source
LoggerMixin.running_log.info('[pre get data_source] [id={0}] [data_source={1}]]'.format(
application_id, data_source))
ca_ocr_res_dict = ca_result_class.objects.filter(application_id=application_id).values(
*consts.CA_ADD_COMPARE_FIELDS_PRE).first()
ocr_res_dict = result_class.objects.filter(application_id=application_id).values(
......@@ -171,7 +178,7 @@ class PreSEHandler:
id_res_list.append(ca_ocr_res_dict.get(field_name) if isinstance(ca_ocr_res_dict, dict) else None)
id_res_list.append(ocr_res_dict.get(field_name))
rebuild_compare_result = pre_compare(pos_content, ocr_res_dict, id_res_list)
rebuild_compare_result = pre_compare(pos_content, ocr_res_dict, id_res_list, data_source)
return rebuild_compare_result
......
......@@ -900,7 +900,7 @@ def ca_compare(application_id, application_entity, ocr_res_id, last_obj, ocr_res
traceback.format_exc()))
def get_se_cms_compare_info_auto(last_obj, application_entity, auto=True, ignore_bank=False):
def get_se_cms_compare_info_auto(last_obj, application_entity, data_source, auto=True, ignore_bank=False):
cms_info = json.loads(last_obj.content)
compare_info = {}
......@@ -1440,7 +1440,7 @@ def get_se_cms_compare_info_auto(last_obj, application_entity, auto=True, ignore
if not is_find and is_force:
afc_contract_input.append((key, empty_str))
if online_sign:
if online_sign and data_source == 'ECONTRACT':
afc_contract_input.append((consts.SE_AFC_CON_FIELD[18], consts.SE_STAMP_VALUE))
afc_contract_input.append((consts.SE_AFC_CON_FIELD[19], empty_str))
......@@ -1453,7 +1453,7 @@ def get_se_cms_compare_info_auto(last_obj, application_entity, auto=True, ignore
return compare_info, cms_info.get('autoApprovedDetails', {}).get('aaType', ''), is_gsyh
def get_se_cms_compare_info(last_obj, application_entity, detect_list, auto=False, ignore_bank=False):
def get_se_cms_compare_info(last_obj, application_entity, detect_list, data_source, auto=False, ignore_bank=False):
cms_info = json.loads(last_obj.content)
compare_info = {}
......@@ -1989,7 +1989,7 @@ def get_se_cms_compare_info(last_obj, application_entity, detect_list, auto=Fals
if not is_find and is_force:
afc_contract_input.append((key, empty_str))
if online_sign:
if online_sign and data_source == 'ECONTRACT':
afc_contract_input.append((consts.SE_AFC_CON_FIELD[18], consts.SE_STAMP_VALUE))
afc_contract_input.append((consts.SE_AFC_CON_FIELD[19], empty_str))
......@@ -3120,13 +3120,13 @@ def se_result_detect(ocr_res_dict):
return detect_list
def se_compare_auto(application_id, application_entity, ocr_res_id, last_obj, ocr_res_dict, auto_obj, ignore_bank, id_res_list):
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):
start_time = datetime.now()
try:
# 比对逻辑
# detect_list = se_result_detect(ocr_res_dict)
compare_info, aa_type, is_gsyh = get_se_cms_compare_info_auto(
last_obj, application_entity, ignore_bank=ignore_bank)
last_obj, application_entity, data_source, ignore_bank=ignore_bank)
compare_result, total_fields, failed_count, successful_at_this_level, failure_reason_str, \
cn_failure_reason_str, bs_failure_reason_str, _, field_result_dict = se_compare_process(
compare_info, ocr_res_dict, is_gsyh, True, id_res_list, aa_type)
......@@ -3187,13 +3187,13 @@ def se_compare_auto(application_id, application_entity, ocr_res_id, last_obj, oc
def se_compare(application_id, application_entity, ocr_res_id, last_obj, ocr_res_dict, is_cms,
auto_result, ignore_bank, id_res_list):
auto_result, ignore_bank, id_res_list, data_source):
try:
# 比对逻辑
start_time = datetime.now()
detect_list = se_result_detect(ocr_res_dict)
compare_info, application_version, aa_type, is_gsyh = get_se_cms_compare_info(
last_obj, application_entity, detect_list, ignore_bank=ignore_bank)
last_obj, application_entity, detect_list, data_source, ignore_bank=ignore_bank)
compare_result, total_fields, failed_count, successful_at_this_level, failure_reason_str, \
cn_failure_reason_str, bs_failure_reason_str, rpa_failure_reason, field_result_dict = se_compare_process(
compare_info, ocr_res_dict, is_gsyh, False, id_res_list, aa_type)
......@@ -3429,16 +3429,16 @@ def compare(application_id, application_entity, uniq_seq, ocr_res_id, is_ca=True
ignore_bank = bank_class.objects.filter(application_id=application_id, on_off=True).exists()
data_source = ''
if application_entity == consts.AFC_PREFIX:
doc_obj = AFCDoc.objects.filter(application_id=application_id, data_source__icontains='电子签署-车辆抵押贷款合同').latest()
doc_obj = AFCDoc.objects.filter(application_id=application_id, document_name__icontains='电子签署-车辆抵押贷款合同').last()
data_source = doc_obj.data_source
compare_log.info('{0} [Auto SE] [get data_source] [id={1}] [data_source={2}]]'.format(
compare_log.info('{0} [get data_source] [id={1}] [data_source={2}]]'.format(
log_base, application_id, data_source))
if auto_obj is not None:
auto_result = se_compare_auto(application_id, application_entity, ocr_res_id, last_obj, ocr_res_dict, auto_obj, ignore_bank, id_res_list)
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)
else:
auto_result = None
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)
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)
if auto_obj is not None:
try:
......
......@@ -6,7 +6,7 @@ from common.tools.comparison import cp
empty_str = ''
def get_pos_compare_info(pos_info):
def get_pos_compare_info(pos_info, data_source):
compare_info = {}
application_entity = pos_info.get('applicationEntity', 'AFC')
......@@ -175,8 +175,10 @@ def get_pos_compare_info(pos_info):
afc_contract_input.append((consts.AFC_CON_FIELDS[8], asp_list))
afc_contract_input.append((consts.AFC_CON_FIELDS[9], asp_list))
afc_contract_input.append((consts.AFC_CON_FIELDS[10], consts.HAVE_CN))
afc_contract_input.append((consts.AFC_CON_FIELDS[11], empty_str))
if data_source == 'ECONTRACT':
afc_contract_input.append((consts.AFC_CON_FIELDS[10], consts.HAVE_CN))
afc_contract_input.append((consts.AFC_CON_FIELDS[11], empty_str))
compare_info.setdefault(consts.AFC_CONTRACT_EN, []).append(afc_contract_input)
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):
return rebuild_compare_result
def pre_compare(pos_info, ocr_res_dict, id_res_list):
compare_info = get_pos_compare_info(pos_info)
def pre_compare(pos_info, ocr_res_dict, id_res_list, data_source):
compare_info = get_pos_compare_info(pos_info, data_source)
compare_result = pre_compare_process(compare_info, ocr_res_dict, id_res_list)
rebuild_compare_result = rebuild_result(compare_result)
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!