55611fd2 by 周伟奇

fix sep name

1 parent 022411dc
......@@ -1130,6 +1130,7 @@ PCUSD_DL = [
]
# 营业执照
LEGAL_REP_NAME = '经营者姓名'
TCCOR = [
('customerChineseName', '企业名称', 'company_compare', {}, 'customerChinessNameResult'),
('legalRepName', '经营者姓名', 'name_compare', {}, 'legalRepNameResult'),
......
......@@ -24,24 +24,35 @@ def get_order_dict(src_dict, order_tuple):
return order_dict
def field_compare(info_dict, ocr_res_dict, ocr_field, compare_list, res_set, has_expiry_date=False):
def field_compare(info_dict, ocr_res_dict, ocr_field, compare_list, res_set, has_expiry_date=False, sep_name=None):
is_find = False
ocr_res_str = ocr_res_dict.get(ocr_field)
if ocr_res_str is not None:
ocr_res_list = json.loads(ocr_res_str)
length = len(ocr_res_list)
# sep营业执照根据法人过滤
if isinstance(sep_name, str):
tmp_list = []
for ocr_res in ocr_res_list:
ocr_sep_name = ocr_res.get(consts.LEGAL_REP_NAME)
if isinstance(ocr_sep_name, str) and ocr_sep_name == sep_name:
tmp_list.append(ocr_res)
else:
tmp_list = ocr_res_list
length = len(tmp_list)
# 过期期限特殊处理
if has_expiry_date:
expiry_dates = []
key = compare_list[2][1]
for ocr_res in ocr_res_list:
for ocr_res in tmp_list:
if ocr_res.get(key):
expiry_dates.append(ocr_res.get(key))
else:
expiry_dates = []
for ocr_res in ocr_res_list:
for ocr_res in tmp_list:
if is_find:
break
for idx, compare_tuple in enumerate(compare_list):
......@@ -186,17 +197,29 @@ def compare(application_id, application_entity, uniq_seq, ocr_res_id):
for individual_cus_info in individual_cus_info_list:
order_individual_cus_info = get_order_dict(individual_cus_info, consts.IN_ORDER)
# 获取sep下营业执照法人代表
if order_individual_cus_info.get('customerType') == consts.CUSTOMER_TYPE[5]:
sep_name = order_individual_cus_info.get('customerChineseName')
if isinstance(sep_name, str):
sep_name = sep_name.strip()
if sep_name == '':
sep_name = None
else:
sep_name = None
# 个人信息证件
id_type = order_individual_cus_info.get('idType')
compare_info_list = consts.ID_TYPE_COMPARE.get(id_type)
if compare_info_list is not None:
field_compare(order_individual_cus_info, ocr_res_dict, compare_info_list[0], compare_info_list[1], res_set, has_expiry_date=True)
field_compare(order_individual_cus_info, ocr_res_dict, compare_info_list[0], compare_info_list[1],
res_set, has_expiry_date=True)
# 第二证件
second_id_type = order_individual_cus_info.get('secondIdType')
second_compare_info_list = consts.SECOND_ID_TYPE_COMPARE.get(second_id_type)
if second_compare_info_list is not None:
field_compare(order_individual_cus_info, ocr_res_dict, second_compare_info_list[0], second_compare_info_list[1], res_set)
field_compare(order_individual_cus_info, ocr_res_dict, second_compare_info_list[0],
second_compare_info_list[1], res_set)
# 重新排列
new_dict = OrderedDict({})
second_id_res = order_individual_cus_info.pop(consts.SECOND_ID_RES, consts.RESULT_NA)
......@@ -208,7 +231,8 @@ def compare(application_id, application_entity, uniq_seq, ocr_res_id):
# sep营业执照
if order_individual_cus_info.get('customerType') == consts.CUSTOMER_TYPE[5]:
field_compare(order_individual_cus_info, ocr_res_dict, consts.BL_OCR_FIELD, consts.TCSEP, res_set)
field_compare(order_individual_cus_info, ocr_res_dict, consts.BL_OCR_FIELD, consts.TCSEP, res_set,
sep_name=sep_name)
order_individual_cus_info_list.append(order_individual_cus_info)
......@@ -218,10 +242,12 @@ def compare(application_id, application_entity, uniq_seq, ocr_res_id):
usedcar_info = json.loads(last_obj.usedcar_info)
order_usedcar_info = get_order_dict(usedcar_info, consts.UC_ORDER)
mvc_find, mvc_vinos = usedcar_info_compare(order_usedcar_info, ocr_res_dict, consts.MVC_OCR_FIELD, consts.PCUSD_MVC, res_set)
mvc_find, mvc_vinos = usedcar_info_compare(order_usedcar_info, ocr_res_dict, consts.MVC_OCR_FIELD,
consts.PCUSD_MVC, res_set)
# if order_usedcar_info[consts.PCUSD_MVC[0][0] + 'Result'] == consts.RESULT_Y:
dl_find, dl_vinos = usedcar_info_compare(order_usedcar_info, ocr_res_dict, consts.DL_OCR_FIELD, consts.PCUSD_DL, res_set)
dl_find, dl_vinos = usedcar_info_compare(order_usedcar_info, ocr_res_dict, consts.DL_OCR_FIELD,
consts.PCUSD_DL, res_set)
if mvc_find is True and dl_find is False:
vino = dl_vinos[-1] if len(dl_vinos) > 0 else ''
......@@ -239,7 +265,6 @@ def compare(application_id, application_entity, uniq_seq, ocr_res_id):
vino_list.append(dl_vinos[-1])
vino = '、'.join('{0}: {1}'.format(consts.PREFIX_DL, dl_vino))
order_usedcar_info[consts.PCUSD_MVC[0][0]] = vino
order_usedcar_info[consts.PCUSD_MVC[0][4]] = consts.RESULT_N
comparison_res['OCR_Input']['usedCarInfo'] = order_usedcar_info
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!