e68a5453 by 周伟奇

fix idNum

1 parent 66de28b0
...@@ -1329,15 +1329,15 @@ MVI_COMPARE_LOGIC = { ...@@ -1329,15 +1329,15 @@ MVI_COMPARE_LOGIC = {
1329 'dealer': ('销方名称', 'se_common_compare', {}), 1329 'dealer': ('销方名称', 'se_common_compare', {}),
1330 'vehicleTransactionAmount': ('价税合计小写', 'se_amount_compare', {}), 1330 'vehicleTransactionAmount': ('价税合计小写', 'se_amount_compare', {}),
1331 'customerName': ('购方名称', 'se_name_compare', {}), 1331 'customerName': ('购方名称', 'se_name_compare', {}),
1332 'idNum': ('购买方身份证号或组织机构代码', 'se_common_compare', {}), 1332 'idNum': ('购买方身份证号或组织机构代码', 'se_contain_compare_2', {}),
1333 'dateOfInvoice': ('开票日期', 'se_date_compare', {}), 1333 'dateOfInvoice': ('开票日期', 'se_date_compare_2', {}),
1334 } 1334 }
1335 1335
1336 UCI_COMPARE_LOGIC = { 1336 UCI_COMPARE_LOGIC = {
1337 'vinNo': ('车架号', 'se_common_compare', {}), 1337 'vinNo': ('车架号', 'se_common_compare', {}),
1338 'vehicleTransactionAmount': ('价税合计小写', 'se_amount_compare', {}), 1338 'vehicleTransactionAmount': ('价税合计小写', 'se_amount_compare', {}),
1339 'customerName': ('购方名称', 'se_name_compare', {}), 1339 'customerName': ('购方名称', 'se_name_compare', {}),
1340 'idNum': ('购方纳税人识别号', 'se_common_compare', {}), 1340 'idNum': ('购方纳税人识别号', 'se_contain_compare_2', {}),
1341 } 1341 }
1342 1342
1343 MVC_COMPARE_LOGIC = { 1343 MVC_COMPARE_LOGIC = {
...@@ -1349,7 +1349,7 @@ MVC_COMPARE_LOGIC = { ...@@ -1349,7 +1349,7 @@ MVC_COMPARE_LOGIC = {
1349 1349
1350 BC_COMPARE_LOGIC = { 1350 BC_COMPARE_LOGIC = {
1351 'accountNo': ('CardNum', 'se_common_compare', {}), 1351 'accountNo': ('CardNum', 'se_common_compare', {}),
1352 'bankName': ('BankName', 'se_common_compare', {}), 1352 'bankName': ('BankName', 'se_both_contain_compare', {}),
1353 } 1353 }
1354 1354
1355 DDA_COMPARE_LOGIC = { 1355 DDA_COMPARE_LOGIC = {
...@@ -1357,8 +1357,8 @@ DDA_COMPARE_LOGIC = { ...@@ -1357,8 +1357,8 @@ DDA_COMPARE_LOGIC = {
1357 'applicationId(2)': ('check_Num', 'se_common_compare', {}), 1357 'applicationId(2)': ('check_Num', 'se_common_compare', {}),
1358 'bankName': ('to_bank', 'se_common_compare', {}), 1358 'bankName': ('to_bank', 'se_common_compare', {}),
1359 'companyName': ('to_company', 'se_company_compare', {}), 1359 'companyName': ('to_company', 'se_company_compare', {}),
1360 'customerName': (DDA_IC_NAME, 'se_common_compare', {}), 1360 'customerName': (DDA_IC_NAME, 'se_contain_compare_2', {}),
1361 'idNum': (DDA_IC_ID, 'se_common_compare', {}), 1361 'idNum': (DDA_IC_ID, 'se_contain_compare_2', {}),
1362 'accountHolderName': (DDA_BC_NAME, 'se_common_compare', {}), 1362 'accountHolderName': (DDA_BC_NAME, 'se_common_compare', {}),
1363 'accountNo': (DDA_BC_ID, 'se_common_compare', {}), 1363 'accountNo': (DDA_BC_ID, 'se_common_compare', {}),
1364 } 1364 }
......
...@@ -440,8 +440,12 @@ def get_se_compare_info(last_obj, application_entity): ...@@ -440,8 +440,12 @@ def get_se_compare_info(last_obj, application_entity):
440 individual_info_dict = {} 440 individual_info_dict = {}
441 main_role_info = {} 441 main_role_info = {}
442 for individual_info in json.loads(last_obj.individual_cus_info): 442 for individual_info in json.loads(last_obj.individual_cus_info):
443 if isinstance(individual_info.get('secondIdNum'), str):
444 id_num = '{0}、{1}'.format(individual_info['idNum'], individual_info['secondIdNum'])
445 else:
446 id_num = individual_info['idNum']
443 main_role_info.setdefault(individual_info['applicantType'], []).append( 447 main_role_info.setdefault(individual_info['applicantType'], []).append(
444 (individual_info['customerName'], individual_info['idNum'])) 448 (individual_info['customerName'], id_num))
445 449
446 license_dict = {} 450 license_dict = {}
447 451
...@@ -474,10 +478,19 @@ def get_se_compare_info(last_obj, application_entity): ...@@ -474,10 +478,19 @@ def get_se_compare_info(last_obj, application_entity):
474 478
475 compare_info['individualCusInfo'] = individual_info_dict 479 compare_info['individualCusInfo'] = individual_info_dict
476 480
481 dda_name_list = []
482 dda_num_list = []
477 for applicant_type in consts.APPLICANT_TYPE: 483 for applicant_type in consts.APPLICANT_TYPE:
478 if applicant_type in main_role_info: 484 if applicant_type in main_role_info:
479 main_name, main_num = main_role_info[applicant_type][0] 485 main_name, main_num = main_role_info[applicant_type][0]
480 break 486 break
487 for applicant_type in consts.APPLICANT_TYPE[:2]:
488 if applicant_type in main_role_info:
489 for dda_name_part, dda_num_part in main_role_info[applicant_type]:
490 dda_name_list.append(dda_name_part)
491 dda_num_list.append(dda_num_part)
492 dda_name = '、'.join(dda_name_list)
493 dda_num = '、'.join(dda_num_list)
481 del main_role_info 494 del main_role_info
482 495
483 company_info = None 496 company_info = None
...@@ -507,18 +520,19 @@ def get_se_compare_info(last_obj, application_entity): ...@@ -507,18 +520,19 @@ def get_se_compare_info(last_obj, application_entity):
507 vehicle_info_dict = json.loads(last_obj.vehicle_info) # TODO 车辆登记证 520 vehicle_info_dict = json.loads(last_obj.vehicle_info) # TODO 车辆登记证
508 vehicle_info = {} 521 vehicle_info = {}
509 vehicle_field_input = [] 522 vehicle_field_input = []
510 gb_field_input = []
511 if vehicle_info_dict['vehicleStatus'] == 'New': 523 if vehicle_info_dict['vehicleStatus'] == 'New':
512 for vehicle_field in consts.SE_NEW_FIELD: 524 for vehicle_field in consts.SE_NEW_FIELD:
513 vehicle_field_input.append((vehicle_field, vehicle_info_dict[vehicle_field])) 525 vehicle_field_input.append((vehicle_field, vehicle_info_dict[vehicle_field]))
526 if isinstance(company_info, tuple):
527 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[0], company_info[0]))
528 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[1], company_info[1]))
529 else:
514 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[0], main_name)) 530 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[0], main_name))
515 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[1], main_num)) 531 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[1], main_num))
516 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[2], last_obj.first_submmison_date)) 532 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[2], last_obj.first_submmison_date))
517 for gb_field in consts.SE_GB_NEW_FIELD:
518 gb_field_input.append((gb_field, vehicle_info_dict[gb_field]))
519 vehicle_info[consts.MVI_EN] = vehicle_field_input 533 vehicle_info[consts.MVI_EN] = vehicle_field_input
520 vehicle_info[consts.MVC_EN] = gb_field_input
521 else: 534 else:
535 gb_field_input = []
522 for vehicle_field in consts.SE_USED_FIELD: 536 for vehicle_field in consts.SE_USED_FIELD:
523 vehicle_field_input.append((vehicle_field, vehicle_info_dict[vehicle_field])) 537 vehicle_field_input.append((vehicle_field, vehicle_info_dict[vehicle_field]))
524 for gb_field in consts.SE_GB_NEW_FIELD: 538 for gb_field in consts.SE_GB_NEW_FIELD:
...@@ -553,9 +567,9 @@ def get_se_compare_info(last_obj, application_entity): ...@@ -553,9 +567,9 @@ def get_se_compare_info(last_obj, application_entity):
553 company_name = consts.HIL_COMPANY_NAME if application_entity in consts.HIL_SET else consts.AFC_COMPANY_NAME 567 company_name = consts.HIL_COMPANY_NAME if application_entity in consts.HIL_SET else consts.AFC_COMPANY_NAME
554 dda_field_input.append((dda_field, company_name)) 568 dda_field_input.append((dda_field, company_name))
555 elif dda_field == 'customerName': 569 elif dda_field == 'customerName':
556 dda_field_input.append((dda_field, main_name)) 570 dda_field_input.append((dda_field, dda_name))
557 elif dda_field == 'idNum': 571 elif dda_field == 'idNum':
558 dda_field_input.append((dda_field, main_num)) 572 dda_field_input.append((dda_field, dda_num))
559 else: 573 else:
560 dda_field_input.append((dda_field, bank_info_dict[dda_field])) 574 dda_field_input.append((dda_field, bank_info_dict[dda_field]))
561 bank_info[consts.DDA_EN] = dda_field_input 575 bank_info[consts.DDA_EN] = dda_field_input
...@@ -584,14 +598,15 @@ def se_compare_license(license_en, ocr_res_dict, field_list): ...@@ -584,14 +598,15 @@ def se_compare_license(license_en, ocr_res_dict, field_list):
584 else: 598 else:
585 expiry_dates = set() 599 expiry_dates = set()
586 600
587 for ocr_res in ocr_res_list: 601 for res_idx in range(length-1, -1, -1):
588 if is_find: 602 if is_find:
589 break 603 break
590 604
591 for idx, (name, value) in enumerate(field_list): 605 for idx, (name, value) in enumerate(field_list):
592 ocr_str = ocr_res.get(compare_logic[name][0]) 606 ocr_str = ocr_res_list[res_idx].get(compare_logic[name][0])
593 if not isinstance(ocr_str, str): 607 if not isinstance(ocr_str, str):
594 result = consts.RESULT_N 608 result = consts.RESULT_N
609 ocr_str = ''
595 else: 610 else:
596 result = getattr(cp, compare_logic[name][1])(value, ocr_str, **compare_logic[name][2]) 611 result = getattr(cp, compare_logic[name][1])(value, ocr_str, **compare_logic[name][2])
597 612
......
1 import re 1 import re
2 import time
2 from datetime import datetime 3 from datetime import datetime
3 from .rmb_lower import rmb_handler 4 from .rmb_lower import rmb_handler
4 # from .rmb_upper import to_rmb_upper 5 # from .rmb_upper import to_rmb_upper
...@@ -178,6 +179,18 @@ class Comparison: ...@@ -178,6 +179,18 @@ class Comparison:
178 else: 179 else:
179 return self.RESULT_Y 180 return self.RESULT_Y
180 181
182 def se_contain_compare_2(self, input_str, ocr_str, **kwargs):
183 if input_str.find(ocr_str) == -1:
184 return self.RESULT_N
185 else:
186 return self.RESULT_Y
187
188 def se_both_contain_compare(self, input_str, ocr_str, **kwargs):
189 if ocr_str.find(input_str) == -1 and input_str.find(ocr_str) == -1:
190 return self.RESULT_N
191 else:
192 return self.RESULT_Y
193
181 def se_amount_compare(self, input_str, ocr_str, **kwargs): 194 def se_amount_compare(self, input_str, ocr_str, **kwargs):
182 if input_str == ocr_str: 195 if input_str == ocr_str:
183 return self.RESULT_Y 196 return self.RESULT_Y
...@@ -215,6 +228,15 @@ class Comparison: ...@@ -215,6 +228,15 @@ class Comparison:
215 compare_str = self.CSOTH 228 compare_str = self.CSOTH
216 return self.build_res(input_str == compare_str) 229 return self.build_res(input_str == compare_str)
217 230
231 def se_date_compare_2(self, input_str, ocr_str, **kwargs):
232 try:
233 input_date = time.strptime(input_str, "%Y-%m-%d")
234 ocr_date = time.strptime(ocr_str, "%Y-%m-%d")
235 except Exception as e:
236 return self.RESULT_N
237 else:
238 return self.build_res(input_date >= ocr_date)
239
218 240
219 cp = Comparison() 241 cp = Comparison()
220 242
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!