9db2ff50 by 周伟奇

Merge branch 'feature/ca_compare' into feature/0611

2 parents 554d2f4f e4460765
......@@ -1147,6 +1147,7 @@ ID_TYPE_COMPARE = {
ID_RES = 'idNumResult'
SECOND_ID_TYPE_FIELD = 'secondIdType'
NAME_FIELD = 'customerChineseName'
SECOND_ID_FIELD = 'secondIdNum'
SECOND_ID_RES = 'secondIdNumResult'
......
......@@ -16,6 +16,21 @@ compare_log = logging.getLogger('compare')
log_base = '[CA Compare]'
def name_check(ocr_res_dict, second_ocr_field, second_compare_list, second_id_num, name):
id_field = second_compare_list[1][1]
name_field = second_compare_list[0][1]
ocr_res_str = ocr_res_dict.get(second_ocr_field)
if ocr_res_str is not None:
ocr_res_list = json.loads(ocr_res_str)
for ocr_res in ocr_res_list:
ocr_second_id_num = ocr_res.get(id_field)
if ocr_second_id_num == second_id_num:
ocr_name = ocr_res.get(name_field)
if ocr_name == name:
return True
return False
def get_order_dict(src_dict, order_tuple):
# if consts.SECOND_ID_TYPE_FIELD in src_dict:
# if src_dict.get(consts.SECOND_ID_TYPE_FIELD) not in consts.SECOND_ID_TYPE_COMPARE:
......@@ -247,9 +262,22 @@ def compare(application_id, application_entity, uniq_seq, ocr_res_id):
second_ocr_field, second_compare_list = consts.SECOND_ID_TYPE_COMPARE.get(second_id_type)
field_compare(order_individual_cus_info, ocr_res_dict, second_ocr_field,
second_compare_list, res_set)
# 姓名比对
second_id_res = order_individual_cus_info.pop(consts.SECOND_ID_RES, consts.RESULT_NA)
if second_id_res == consts.RESULT_Y:
second_id_num = order_individual_cus_info.get(consts.SECOND_ID_FIELD)
name = order_individual_cus_info.get(consts.NAME_FIELD)
if isinstance(second_id_num, str) and isinstance(name, str):
second_ocr_field, second_compare_list, _ = consts.ID_TYPE_COMPARE.get(second_id_type)
name_right = name_check(ocr_res_dict, second_ocr_field, second_compare_list, second_id_num, name)
if not name_right:
res_set.add(consts.RESULT_N)
second_id_res = consts.RESULT_N
order_individual_cus_info[consts.SECOND_ID_FIELD] = '{0}-{1}'.format(second_id_num, name)
# 重新排列
new_dict = OrderedDict({})
second_id_res = order_individual_cus_info.pop(consts.SECOND_ID_RES, consts.RESULT_NA)
for key, value in order_individual_cus_info.items():
new_dict[key] = value
if key == consts.ID_RES:
......@@ -376,16 +404,21 @@ def compare(application_id, application_entity, uniq_seq, ocr_res_id):
}
individual_list = comparison_res.get('OCR_Input', {}).get('individualCusInfo', [])
total_fields = len(individual_list) * 4
total_fields = 0
for individual in individual_list:
field_list = []
if not successful_at_this_level:
for field_name, _, _, _, result_field in consts.ITPRC:
if individual.get(result_field) != consts.RESULT_Y:
field_list.append(field_name)
if individual.get('customerType') not in consts.NO_COMPARE_CUSTOMER_TYPE and \
individual.get('idType') in consts.ID_TYPE_COMPARE:
total_fields += 4
if not successful_at_this_level:
for field_name, _, _, _, result_field in consts.ITPRC:
if individual.get(result_field) != consts.RESULT_Y:
field_list.append(field_name)
if individual.get('secondIdType') in consts.SECOND_ID_TYPE_COMPARE:
if individual.get('customerType') not in consts.NO_COMPARE_CUSTOMER_TYPE and \
individual.get('secondIdType') in consts.SECOND_ID_TYPE_COMPARE:
total_fields += 1
if not successful_at_this_level:
if individual.get(consts.SECOND_ID_RES) != consts.RESULT_Y:
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!