bef16a86 by 周伟奇

Merge branch 'feature/se_compare3' into feature/0611

2 parents e17f3ffb 9e3f5c24
...@@ -1311,7 +1311,8 @@ RP_EN = 'Resident ID' ...@@ -1311,7 +1311,8 @@ RP_EN = 'Resident ID'
1311 BL_EN = 'Business permit' 1311 BL_EN = 'Business permit'
1312 MVI_EN = 'newCar Invoice' 1312 MVI_EN = 'newCar Invoice'
1313 UCI_EN = 'usedCar Invoice' 1313 UCI_EN = 'usedCar Invoice'
1314 MVC_EN = 'Green Book' 1314 MVC_EN = 'Green Book(1/2)'
1315 MVC34_EN = 'Green Book(3/4)'
1315 BC_EN = 'Bank Card' 1316 BC_EN = 'Bank Card'
1316 DDA_EN = 'DDA' 1317 DDA_EN = 'DDA'
1317 1318
...@@ -1383,6 +1384,16 @@ MVC_COMPARE_LOGIC = { ...@@ -1383,6 +1384,16 @@ MVC_COMPARE_LOGIC = {
1383 # 'date': ('转移登记日期', ), 1384 # 'date': ('转移登记日期', ),
1384 } 1385 }
1385 1386
1387 TRANSFER_NAME = '姓名/名称'
1388 TRANSFER_NUM = '身份证明名称/号码'
1389 TRANSFER_DATE = '转移登记日期'
1390
1391 MVC34_COMPARE_LOGIC = {
1392 'customerName': (TRANSFER_NAME, 'se_company_compare', {}),
1393 'idNum': (TRANSFER_NUM, 'se_contain_compare_2', {}),
1394 'date': (TRANSFER_DATE, 'se_date_compare_2', {}),
1395 }
1396
1386 BC_COMPARE_LOGIC = { 1397 BC_COMPARE_LOGIC = {
1387 'accountNo': ('CardNum', 'se_common_compare', {}), 1398 'accountNo': ('CardNum', 'se_common_compare', {}),
1388 'bankName': ('BankName', 'se_both_contain_compare', {}), 1399 'bankName': ('BankName', 'se_both_contain_compare', {}),
...@@ -1411,6 +1422,7 @@ SE_COMPARE_FIELD = { ...@@ -1411,6 +1422,7 @@ SE_COMPARE_FIELD = {
1411 MVI_EN: (MVI_OCR_FIELD, MVI_COMPARE_LOGIC, False), 1422 MVI_EN: (MVI_OCR_FIELD, MVI_COMPARE_LOGIC, False),
1412 UCI_EN: (UCI_OCR_FIELD, UCI_COMPARE_LOGIC, False), 1423 UCI_EN: (UCI_OCR_FIELD, UCI_COMPARE_LOGIC, False),
1413 MVC_EN: (MVC_OCR_FIELD, MVC_COMPARE_LOGIC, False), 1424 MVC_EN: (MVC_OCR_FIELD, MVC_COMPARE_LOGIC, False),
1425 MVC34_EN: (MVC_OCR_FIELD, MVC34_COMPARE_LOGIC, False),
1414 BC_EN: (BC_OCR_FIELD, BC_COMPARE_LOGIC, False), 1426 BC_EN: (BC_OCR_FIELD, BC_COMPARE_LOGIC, False),
1415 DDA_EN: (DDA_OCR_FIELD, DDA_COMPARE_LOGIC, False), 1427 DDA_EN: (DDA_OCR_FIELD, DDA_COMPARE_LOGIC, False),
1416 } 1428 }
......
...@@ -577,6 +577,7 @@ def get_se_compare_info(last_obj, application_entity): ...@@ -577,6 +577,7 @@ def get_se_compare_info(last_obj, application_entity):
577 vehicle_info[consts.MVI_EN] = vehicle_field_input 577 vehicle_info[consts.MVI_EN] = vehicle_field_input
578 else: 578 else:
579 gb_field_input = [] 579 gb_field_input = []
580 gb34_field_input = []
580 for vehicle_field in consts.SE_USED_FIELD: 581 for vehicle_field in consts.SE_USED_FIELD:
581 vehicle_field_input.append((vehicle_field, vehicle_info_dict[vehicle_field])) 582 vehicle_field_input.append((vehicle_field, vehicle_info_dict[vehicle_field]))
582 for gb_field in consts.SE_GB_NEW_FIELD: 583 for gb_field in consts.SE_GB_NEW_FIELD:
...@@ -584,16 +585,17 @@ def get_se_compare_info(last_obj, application_entity): ...@@ -584,16 +585,17 @@ def get_se_compare_info(last_obj, application_entity):
584 if isinstance(company_info, tuple): 585 if isinstance(company_info, tuple):
585 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[0], company_info[0])) 586 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[0], company_info[0]))
586 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[1], company_info[1])) 587 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[1], company_info[1]))
587 # gb_field_input.append((consts.SE_GB_USED_FIELD[0], company_info[0])) 588 gb34_field_input.append((consts.SE_GB_USED_FIELD[0], company_info[0]))
588 # gb_field_input.append((consts.SE_GB_USED_FIELD[1], company_info[1])) 589 gb34_field_input.append((consts.SE_GB_USED_FIELD[1], company_info[1]))
589 else: 590 else:
590 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[0], main_name)) 591 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[0], main_name))
591 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[1], main_num)) 592 vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[1], main_num))
592 # gb_field_input.append((consts.SE_GB_USED_FIELD[0], main_name)) 593 gb34_field_input.append((consts.SE_GB_USED_FIELD[0], main_name))
593 # gb_field_input.append((consts.SE_GB_USED_FIELD[1], main_num)) 594 gb34_field_input.append((consts.SE_GB_USED_FIELD[1], main_num))
594 # gb_field_input.append((consts.SE_GB_USED_FIELD[2], last_obj.first_submmison_date)) 595 gb34_field_input.append((consts.SE_GB_USED_FIELD[2], last_obj.first_submmison_date))
595 vehicle_info[consts.UCI_EN] = vehicle_field_input 596 vehicle_info[consts.UCI_EN] = vehicle_field_input
596 vehicle_info[consts.MVC_EN] = gb_field_input 597 vehicle_info[consts.MVC_EN] = gb_field_input
598 vehicle_info[consts.MVC34_EN] = gb34_field_input
597 compare_info['vehicleInfo'] = vehicle_info 599 compare_info['vehicleInfo'] = vehicle_info
598 600
599 bank_info_dict = json.loads(last_obj.bank_info) 601 bank_info_dict = json.loads(last_obj.bank_info)
...@@ -677,6 +679,68 @@ def se_compare_license(license_en, ocr_res_dict, field_list): ...@@ -677,6 +679,68 @@ def se_compare_license(license_en, ocr_res_dict, field_list):
677 return result_field_list 679 return result_field_list
678 680
679 681
682 def se_mvc34_compare(license_en, ocr_res_dict, field_list):
683 ocr_field, compare_logic, _ = consts.SE_COMPARE_FIELD[license_en]
684 ocr_res_str = ocr_res_dict.get(ocr_field)
685
686 is_find = False
687 result_field_list = []
688
689 if ocr_res_str is not None:
690 ocr_res_list = json.loads(ocr_res_str)
691 length = len(ocr_res_list)
692
693 page34_date_dict = dict()
694 first_res = None
695 for res_idx in range(length-1, -1, -1):
696 if consts.TRANSFER_DATE in ocr_res_list[res_idx]:
697 for idx, transfer_date in enumerate(ocr_res_list[res_idx].get(consts.TRANSFER_DATE, [])):
698 try:
699 transfer_name = ocr_res_list[res_idx].get(consts.TRANSFER_NAME, [])[idx]
700 except Exception as e:
701 transfer_name = ''
702 try:
703 transfer_num = ocr_res_list[res_idx].get(consts.TRANSFER_NUM, [])[idx]
704 except Exception as e:
705 transfer_num = ''
706 core_info = {
707 consts.TRANSFER_NAME: transfer_name,
708 consts.TRANSFER_NUM: transfer_num,
709 consts.TRANSFER_DATE: transfer_date
710 }
711 page34_date_dict.setdefault(transfer_date, []).append(core_info)
712 if first_res is None:
713 first_res = core_info
714
715 max_date = None
716 for date_tmp in page34_date_dict.keys():
717 try:
718 max_date_part = time.strptime(date_tmp, "%Y-%m-%d")
719 except Exception as e:
720 pass
721 else:
722 if max_date is None or max_date_part > max_date:
723 max_date = max_date_part
724
725 if max_date is not None or first_res is not None:
726 is_find = True
727 ocr_res = first_res if max_date is None else page34_date_dict[time.strftime('%Y-%m-%d', max_date)][0]
728 for name, value in enumerate(field_list):
729 ocr_str = ocr_res.get(compare_logic[name][0])
730 if not isinstance(ocr_str, str):
731 result = consts.RESULT_N
732 ocr_str = ''
733 else:
734 result = getattr(cp, compare_logic[name][1])(value, ocr_str, **compare_logic[name][2])
735 result_field_list.append((name, value, result, ocr_str))
736
737 if not is_find:
738 for name, value in field_list:
739 result_field_list.append((name, value, consts.RESULT_N, ''))
740
741 return result_field_list
742
743
680 def se_compare_process(compare_info, ocr_res_dict): 744 def se_compare_process(compare_info, ocr_res_dict):
681 # individualCusInfo 745 # individualCusInfo
682 # corporateCusInfo 746 # corporateCusInfo
...@@ -719,7 +783,10 @@ def se_compare_process(compare_info, ocr_res_dict): ...@@ -719,7 +783,10 @@ def se_compare_process(compare_info, ocr_res_dict):
719 else: 783 else:
720 for license_en, field_list in info_value.items(): 784 for license_en, field_list in info_value.items():
721 failure_field = [] 785 failure_field = []
722 result_field_list = se_compare_license(license_en, ocr_res_dict, field_list) 786 if license_en == consts.MVC34_EN:
787 result_field_list = se_mvc34_compare(license_en, ocr_res_dict, field_list)
788 else:
789 result_field_list = se_compare_license(license_en, ocr_res_dict, field_list)
723 for name, value, result, ocr_str in result_field_list: 790 for name, value, result, ocr_str in result_field_list:
724 total_fields += 1 791 total_fields += 1
725 if result == consts.RESULT_N: 792 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!