bf81e885 by 周伟奇

fix bug

1 parent 862a3a8c
......@@ -1083,23 +1083,26 @@ ID_TYPE_COMPARE = {
'ITRES': [RP_OCR_FIELD, ITRES],
}
ID_RES = 'idNumResult'
SECOND_ID_RES = 'secondIdNumResult'
SECOND_ITPRC = [
('secondIdNum', '公民身份号码', 'common_compare', {}, 'secondIdNumResult'),
('secondIdNum', '公民身份号码', 'common_compare', {}, SECOND_ID_RES),
]
# 护照
SECOND_ITPSP = [
('secondIdNum', '护照号码', 'common_compare', {}, 'secondIdNumResult'),
('secondIdNum', '护照号码', 'common_compare', {}, SECOND_ID_RES),
]
# 港澳台通行证
SECOND_ITHKM_ITTID = [
('secondIdNum', '证件号码', 'common_compare', {}, 'secondIdNumResult'),
('secondIdNum', '证件号码', 'common_compare', {}, SECOND_ID_RES),
]
# 居住证
SECOND_ITRES = [
('secondIdNum', '公民身份号码', 'common_compare', {}, 'secondIdNumResult'),
('secondIdNum', '公民身份号码', 'common_compare', {}, SECOND_ID_RES),
]
SECOND_ID_TYPE_COMPARE = {
......@@ -1128,7 +1131,7 @@ PCUSD_DL = [
# 营业执照
TCCOR = [
('customerChineseName', '企业名称', 'common_compare', {}, 'customerChinessNameResult'),
('customerChineseName', '企业名称', 'company_compare', {}, 'customerChinessNameResult'),
('legalRepName', '经营者姓名', 'name_compare', {}, 'legalRepNameResult'),
('idNum', '注册号', 'common_compare', {}, 'idNumResult'),
('businessLicenseNo', '注册号', 'common_compare', {}, 'businessLicenseNoResult'),
......@@ -1140,7 +1143,7 @@ TCCOR = [
]
TCSEP = [
('companyName', '企业名称', 'common_compare', {}, 'companyNameResult'),
('companyName', '企业名称', 'company_compare', {}, 'companyNameResult'),
('registeredCapital', '注册资本', 'rmb_compare', {}, 'registeredCapitalResult'), # 壹拾万元整 将OCR识别结果(人民币大写)转化为数字
('selfEmployedSubType', '企业类型', 'type_compare', {}, 'selfEmployedSubTypeResult') # 有限责任公司
]
......
......@@ -150,16 +150,22 @@ def compare(application_id, application_entity, uniq_seq, ocr_res_id):
# 个人信息证件
id_type = order_individual_cus_info.get('idType')
compare_info_list = consts.ID_TYPE_COMPARE.get(id_type)
if compare_info_list is None:
continue
field_compare(order_individual_cus_info, ocr_res_dict, compare_info_list[0], compare_info_list[1], res_set)
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)
# 第二证件
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 None:
continue
field_compare(order_individual_cus_info, ocr_res_dict, second_compare_info_list[0], second_compare_info_list[1], res_set)
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)
# 重新排列
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:
new_dict[consts.SECOND_ID_RES] = second_id_res
order_individual_cus_info = new_dict
# sep营业执照
if order_individual_cus_info.get('customerType') == consts.CUSTOMER_TYPE[5]:
......
......@@ -27,6 +27,7 @@ class Comparison:
'·': '',
}
self.TRANS = str.maketrans(self.TRANS_MAP)
self.re_obj = r'[(\(].*?[\))]'
def build_res(self, result):
if result:
......@@ -41,22 +42,27 @@ class Comparison:
return self.RESULT_NA, ocr_str
return self.build_res(input_str == ocr_str), ocr_str
def company_compare(self, input_str, ocr_str, idx, **kwargs):
if ocr_str == '':
return self.RESULT_NA, None
if not isinstance(input_str, str) or not isinstance(ocr_str, str):
return self.RESULT_NA, ocr_str
input_tmp = re.sub(self.re_obj, '', input_str).strip()
ocr_tmp = re.sub(self.re_obj, '', ocr_str).strip()
return self.build_res(input_tmp == ocr_tmp), ocr_str
def name_compare(self, input_str, ocr_str, idx, **kwargs):
if ocr_str == '':
return self.RESULT_NA, None
if not isinstance(input_str, str) or not isinstance(ocr_str, str):
return self.RESULT_NA, ocr_str
if kwargs.get('is_passport'):
input_obj = re.search(r'[a-zA-Z]]!', input_str)
if input_obj:
input_s = input_obj.group()
ocr_obj = re.search(r'[a-zA-Z]]!', ocr_str)
if ocr_obj:
ocr_s = ocr_obj.group()
return self.build_res(input_s == ocr_s), ocr_str
input_tmp = input_str.upper().replace(' ', '')
ocr_tmp = ocr_str.upper().replace(' ', '')
if input_tmp.find(ocr_tmp) == -1:
return self.RESULT_N, ocr_str
else:
return self.build_res((input_str == ocr_str)), ocr_str
return self.RESULT_Y, ocr_str
else:
if re.search(r'[a-zA-Z]]', input_str):
return self.RESULT_NA, ocr_str
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!