e68a5453 by 周伟奇

fix idNum

1 parent 66de28b0
......@@ -1329,15 +1329,15 @@ MVI_COMPARE_LOGIC = {
'dealer': ('销方名称', 'se_common_compare', {}),
'vehicleTransactionAmount': ('价税合计小写', 'se_amount_compare', {}),
'customerName': ('购方名称', 'se_name_compare', {}),
'idNum': ('购买方身份证号或组织机构代码', 'se_common_compare', {}),
'dateOfInvoice': ('开票日期', 'se_date_compare', {}),
'idNum': ('购买方身份证号或组织机构代码', 'se_contain_compare_2', {}),
'dateOfInvoice': ('开票日期', 'se_date_compare_2', {}),
}
UCI_COMPARE_LOGIC = {
'vinNo': ('车架号', 'se_common_compare', {}),
'vehicleTransactionAmount': ('价税合计小写', 'se_amount_compare', {}),
'customerName': ('购方名称', 'se_name_compare', {}),
'idNum': ('购方纳税人识别号', 'se_common_compare', {}),
'idNum': ('购方纳税人识别号', 'se_contain_compare_2', {}),
}
MVC_COMPARE_LOGIC = {
......@@ -1349,7 +1349,7 @@ MVC_COMPARE_LOGIC = {
BC_COMPARE_LOGIC = {
'accountNo': ('CardNum', 'se_common_compare', {}),
'bankName': ('BankName', 'se_common_compare', {}),
'bankName': ('BankName', 'se_both_contain_compare', {}),
}
DDA_COMPARE_LOGIC = {
......@@ -1357,8 +1357,8 @@ DDA_COMPARE_LOGIC = {
'applicationId(2)': ('check_Num', 'se_common_compare', {}),
'bankName': ('to_bank', 'se_common_compare', {}),
'companyName': ('to_company', 'se_company_compare', {}),
'customerName': (DDA_IC_NAME, 'se_common_compare', {}),
'idNum': (DDA_IC_ID, 'se_common_compare', {}),
'customerName': (DDA_IC_NAME, 'se_contain_compare_2', {}),
'idNum': (DDA_IC_ID, 'se_contain_compare_2', {}),
'accountHolderName': (DDA_BC_NAME, 'se_common_compare', {}),
'accountNo': (DDA_BC_ID, 'se_common_compare', {}),
}
......
......@@ -440,8 +440,12 @@ def get_se_compare_info(last_obj, application_entity):
individual_info_dict = {}
main_role_info = {}
for individual_info in json.loads(last_obj.individual_cus_info):
if isinstance(individual_info.get('secondIdNum'), str):
id_num = '{0}、{1}'.format(individual_info['idNum'], individual_info['secondIdNum'])
else:
id_num = individual_info['idNum']
main_role_info.setdefault(individual_info['applicantType'], []).append(
(individual_info['customerName'], individual_info['idNum']))
(individual_info['customerName'], id_num))
license_dict = {}
......@@ -474,10 +478,19 @@ def get_se_compare_info(last_obj, application_entity):
compare_info['individualCusInfo'] = individual_info_dict
dda_name_list = []
dda_num_list = []
for applicant_type in consts.APPLICANT_TYPE:
if applicant_type in main_role_info:
main_name, main_num = main_role_info[applicant_type][0]
break
for applicant_type in consts.APPLICANT_TYPE[:2]:
if applicant_type in main_role_info:
for dda_name_part, dda_num_part in main_role_info[applicant_type]:
dda_name_list.append(dda_name_part)
dda_num_list.append(dda_num_part)
dda_name = '、'.join(dda_name_list)
dda_num = '、'.join(dda_num_list)
del main_role_info
company_info = None
......@@ -507,18 +520,19 @@ def get_se_compare_info(last_obj, application_entity):
vehicle_info_dict = json.loads(last_obj.vehicle_info) # TODO 车辆登记证
vehicle_info = {}
vehicle_field_input = []
gb_field_input = []
if vehicle_info_dict['vehicleStatus'] == 'New':
for vehicle_field in consts.SE_NEW_FIELD:
vehicle_field_input.append((vehicle_field, vehicle_info_dict[vehicle_field]))
vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[0], main_name))
vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[1], main_num))
if isinstance(company_info, tuple):
vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[0], company_info[0]))
vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[1], company_info[1]))
else:
vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[0], main_name))
vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[1], main_num))
vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[2], last_obj.first_submmison_date))
for gb_field in consts.SE_GB_NEW_FIELD:
gb_field_input.append((gb_field, vehicle_info_dict[gb_field]))
vehicle_info[consts.MVI_EN] = vehicle_field_input
vehicle_info[consts.MVC_EN] = gb_field_input
else:
gb_field_input = []
for vehicle_field in consts.SE_USED_FIELD:
vehicle_field_input.append((vehicle_field, vehicle_info_dict[vehicle_field]))
for gb_field in consts.SE_GB_NEW_FIELD:
......@@ -553,9 +567,9 @@ def get_se_compare_info(last_obj, application_entity):
company_name = consts.HIL_COMPANY_NAME if application_entity in consts.HIL_SET else consts.AFC_COMPANY_NAME
dda_field_input.append((dda_field, company_name))
elif dda_field == 'customerName':
dda_field_input.append((dda_field, main_name))
dda_field_input.append((dda_field, dda_name))
elif dda_field == 'idNum':
dda_field_input.append((dda_field, main_num))
dda_field_input.append((dda_field, dda_num))
else:
dda_field_input.append((dda_field, bank_info_dict[dda_field]))
bank_info[consts.DDA_EN] = dda_field_input
......@@ -584,14 +598,15 @@ def se_compare_license(license_en, ocr_res_dict, field_list):
else:
expiry_dates = set()
for ocr_res in ocr_res_list:
for res_idx in range(length-1, -1, -1):
if is_find:
break
for idx, (name, value) in enumerate(field_list):
ocr_str = ocr_res.get(compare_logic[name][0])
ocr_str = ocr_res_list[res_idx].get(compare_logic[name][0])
if not isinstance(ocr_str, str):
result = consts.RESULT_N
ocr_str = ''
else:
result = getattr(cp, compare_logic[name][1])(value, ocr_str, **compare_logic[name][2])
......
import re
import time
from datetime import datetime
from .rmb_lower import rmb_handler
# from .rmb_upper import to_rmb_upper
......@@ -178,6 +179,18 @@ class Comparison:
else:
return self.RESULT_Y
def se_contain_compare_2(self, input_str, ocr_str, **kwargs):
if input_str.find(ocr_str) == -1:
return self.RESULT_N
else:
return self.RESULT_Y
def se_both_contain_compare(self, input_str, ocr_str, **kwargs):
if ocr_str.find(input_str) == -1 and input_str.find(ocr_str) == -1:
return self.RESULT_N
else:
return self.RESULT_Y
def se_amount_compare(self, input_str, ocr_str, **kwargs):
if input_str == ocr_str:
return self.RESULT_Y
......@@ -215,6 +228,15 @@ class Comparison:
compare_str = self.CSOTH
return self.build_res(input_str == compare_str)
def se_date_compare_2(self, input_str, ocr_str, **kwargs):
try:
input_date = time.strptime(input_str, "%Y-%m-%d")
ocr_date = time.strptime(ocr_str, "%Y-%m-%d")
except Exception as e:
return self.RESULT_N
else:
return self.build_res(input_date >= ocr_date)
cp = Comparison()
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!