9e3f5c24 by 周伟奇

add GB

1 parent e68a5453
...@@ -1275,7 +1275,8 @@ RP_EN = 'Resident ID' ...@@ -1275,7 +1275,8 @@ RP_EN = 'Resident ID'
1275 BL_EN = 'Business permit' 1275 BL_EN = 'Business permit'
1276 MVI_EN = 'newCar Invoice' 1276 MVI_EN = 'newCar Invoice'
1277 UCI_EN = 'usedCar Invoice' 1277 UCI_EN = 'usedCar Invoice'
1278 MVC_EN = 'Green Book' 1278 MVC_EN = 'Green Book(1/2)'
1279 MVC34_EN = 'Green Book(3/4)'
1279 BC_EN = 'Bank Card' 1280 BC_EN = 'Bank Card'
1280 DDA_EN = 'DDA' 1281 DDA_EN = 'DDA'
1281 1282
...@@ -1347,6 +1348,16 @@ MVC_COMPARE_LOGIC = { ...@@ -1347,6 +1348,16 @@ MVC_COMPARE_LOGIC = {
1347 # 'date': ('转移登记日期', ), 1348 # 'date': ('转移登记日期', ),
1348 } 1349 }
1349 1350
1351 TRANSFER_NAME = '姓名/名称'
1352 TRANSFER_NUM = '身份证明名称/号码'
1353 TRANSFER_DATE = '转移登记日期'
1354
1355 MVC34_COMPARE_LOGIC = {
1356 'customerName': (TRANSFER_NAME, 'se_company_compare', {}),
1357 'idNum': (TRANSFER_NUM, 'se_contain_compare_2', {}),
1358 'date': (TRANSFER_DATE, 'se_date_compare_2', {}),
1359 }
1360
1350 BC_COMPARE_LOGIC = { 1361 BC_COMPARE_LOGIC = {
1351 'accountNo': ('CardNum', 'se_common_compare', {}), 1362 'accountNo': ('CardNum', 'se_common_compare', {}),
1352 'bankName': ('BankName', 'se_both_contain_compare', {}), 1363 'bankName': ('BankName', 'se_both_contain_compare', {}),
...@@ -1375,6 +1386,7 @@ SE_COMPARE_FIELD = { ...@@ -1375,6 +1386,7 @@ SE_COMPARE_FIELD = {
1375 MVI_EN: (MVI_OCR_FIELD, MVI_COMPARE_LOGIC, False), 1386 MVI_EN: (MVI_OCR_FIELD, MVI_COMPARE_LOGIC, False),
1376 UCI_EN: (UCI_OCR_FIELD, UCI_COMPARE_LOGIC, False), 1387 UCI_EN: (UCI_OCR_FIELD, UCI_COMPARE_LOGIC, False),
1377 MVC_EN: (MVC_OCR_FIELD, MVC_COMPARE_LOGIC, False), 1388 MVC_EN: (MVC_OCR_FIELD, MVC_COMPARE_LOGIC, False),
1389 MVC34_EN: (MVC_OCR_FIELD, MVC34_COMPARE_LOGIC, False),
1378 BC_EN: (BC_OCR_FIELD, BC_COMPARE_LOGIC, False), 1390 BC_EN: (BC_OCR_FIELD, BC_COMPARE_LOGIC, False),
1379 DDA_EN: (DDA_OCR_FIELD, DDA_COMPARE_LOGIC, False), 1391 DDA_EN: (DDA_OCR_FIELD, DDA_COMPARE_LOGIC, False),
1380 } 1392 }
......
...@@ -533,6 +533,7 @@ def get_se_compare_info(last_obj, application_entity): ...@@ -533,6 +533,7 @@ def get_se_compare_info(last_obj, application_entity):
533 vehicle_info[consts.MVI_EN] = vehicle_field_input 533 vehicle_info[consts.MVI_EN] = vehicle_field_input
534 else: 534 else:
535 gb_field_input = [] 535 gb_field_input = []
536 gb34_field_input = []
536 for vehicle_field in consts.SE_USED_FIELD: 537 for vehicle_field in consts.SE_USED_FIELD:
537 vehicle_field_input.append((vehicle_field, vehicle_info_dict[vehicle_field])) 538 vehicle_field_input.append((vehicle_field, vehicle_info_dict[vehicle_field]))
538 for gb_field in consts.SE_GB_NEW_FIELD: 539 for gb_field in consts.SE_GB_NEW_FIELD:
...@@ -540,16 +541,17 @@ def get_se_compare_info(last_obj, application_entity): ...@@ -540,16 +541,17 @@ def get_se_compare_info(last_obj, application_entity):
540 if isinstance(company_info, tuple): 541 if isinstance(company_info, tuple):
541 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[0], company_info[0])) 542 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[0], company_info[0]))
542 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[1], company_info[1])) 543 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[1], company_info[1]))
543 # gb_field_input.append((consts.SE_GB_USED_FIELD[0], company_info[0])) 544 gb34_field_input.append((consts.SE_GB_USED_FIELD[0], company_info[0]))
544 # gb_field_input.append((consts.SE_GB_USED_FIELD[1], company_info[1])) 545 gb34_field_input.append((consts.SE_GB_USED_FIELD[1], company_info[1]))
545 else: 546 else:
546 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[0], main_name)) 547 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[0], main_name))
547 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[1], main_num)) 548 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[1], main_num))
548 # gb_field_input.append((consts.SE_GB_USED_FIELD[0], main_name)) 549 gb34_field_input.append((consts.SE_GB_USED_FIELD[0], main_name))
549 # gb_field_input.append((consts.SE_GB_USED_FIELD[1], main_num)) 550 gb34_field_input.append((consts.SE_GB_USED_FIELD[1], main_num))
550 # gb_field_input.append((consts.SE_GB_USED_FIELD[2], last_obj.first_submmison_date)) 551 gb34_field_input.append((consts.SE_GB_USED_FIELD[2], last_obj.first_submmison_date))
551 vehicle_info[consts.UCI_EN] = vehicle_field_input 552 vehicle_info[consts.UCI_EN] = vehicle_field_input
552 vehicle_info[consts.MVC_EN] = gb_field_input 553 vehicle_info[consts.MVC_EN] = gb_field_input
554 vehicle_info[consts.MVC34_EN] = gb34_field_input
553 compare_info['vehicleInfo'] = vehicle_info 555 compare_info['vehicleInfo'] = vehicle_info
554 556
555 bank_info_dict = json.loads(last_obj.bank_info) 557 bank_info_dict = json.loads(last_obj.bank_info)
...@@ -633,6 +635,68 @@ def se_compare_license(license_en, ocr_res_dict, field_list): ...@@ -633,6 +635,68 @@ def se_compare_license(license_en, ocr_res_dict, field_list):
633 return result_field_list 635 return result_field_list
634 636
635 637
638 def se_mvc34_compare(license_en, ocr_res_dict, field_list):
639 ocr_field, compare_logic, _ = consts.SE_COMPARE_FIELD[license_en]
640 ocr_res_str = ocr_res_dict.get(ocr_field)
641
642 is_find = False
643 result_field_list = []
644
645 if ocr_res_str is not None:
646 ocr_res_list = json.loads(ocr_res_str)
647 length = len(ocr_res_list)
648
649 page34_date_dict = dict()
650 first_res = None
651 for res_idx in range(length-1, -1, -1):
652 if consts.TRANSFER_DATE in ocr_res_list[res_idx]:
653 for idx, transfer_date in enumerate(ocr_res_list[res_idx].get(consts.TRANSFER_DATE, [])):
654 try:
655 transfer_name = ocr_res_list[res_idx].get(consts.TRANSFER_NAME, [])[idx]
656 except Exception as e:
657 transfer_name = ''
658 try:
659 transfer_num = ocr_res_list[res_idx].get(consts.TRANSFER_NUM, [])[idx]
660 except Exception as e:
661 transfer_num = ''
662 core_info = {
663 consts.TRANSFER_NAME: transfer_name,
664 consts.TRANSFER_NUM: transfer_num,
665 consts.TRANSFER_DATE: transfer_date
666 }
667 page34_date_dict.setdefault(transfer_date, []).append(core_info)
668 if first_res is None:
669 first_res = core_info
670
671 max_date = None
672 for date_tmp in page34_date_dict.keys():
673 try:
674 max_date_part = time.strptime(date_tmp, "%Y-%m-%d")
675 except Exception as e:
676 pass
677 else:
678 if max_date is None or max_date_part > max_date:
679 max_date = max_date_part
680
681 if max_date is not None or first_res is not None:
682 is_find = True
683 ocr_res = first_res if max_date is None else page34_date_dict[time.strftime('%Y-%m-%d', max_date)][0]
684 for name, value in enumerate(field_list):
685 ocr_str = ocr_res.get(compare_logic[name][0])
686 if not isinstance(ocr_str, str):
687 result = consts.RESULT_N
688 ocr_str = ''
689 else:
690 result = getattr(cp, compare_logic[name][1])(value, ocr_str, **compare_logic[name][2])
691 result_field_list.append((name, value, result, ocr_str))
692
693 if not is_find:
694 for name, value in field_list:
695 result_field_list.append((name, value, consts.RESULT_N, ''))
696
697 return result_field_list
698
699
636 def se_compare_process(compare_info, ocr_res_dict): 700 def se_compare_process(compare_info, ocr_res_dict):
637 # individualCusInfo 701 # individualCusInfo
638 # corporateCusInfo 702 # corporateCusInfo
...@@ -675,7 +739,10 @@ def se_compare_process(compare_info, ocr_res_dict): ...@@ -675,7 +739,10 @@ def se_compare_process(compare_info, ocr_res_dict):
675 else: 739 else:
676 for license_en, field_list in info_value.items(): 740 for license_en, field_list in info_value.items():
677 failure_field = [] 741 failure_field = []
678 result_field_list = se_compare_license(license_en, ocr_res_dict, field_list) 742 if license_en == consts.MVC34_EN:
743 result_field_list = se_mvc34_compare(license_en, ocr_res_dict, field_list)
744 else:
745 result_field_list = se_compare_license(license_en, ocr_res_dict, field_list)
679 for name, value, result, ocr_str in result_field_list: 746 for name, value, result, ocr_str in result_field_list:
680 total_fields += 1 747 total_fields += 1
681 if result == consts.RESULT_N: 748 if result == consts.RESULT_N:
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!