add GB
Showing
2 changed files
with
85 additions
and
6 deletions
... | @@ -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,6 +739,9 @@ def se_compare_process(compare_info, ocr_res_dict): | ... | @@ -675,6 +739,9 @@ 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 = [] |
742 | if license_en == consts.MVC34_EN: | ||
743 | result_field_list = se_mvc34_compare(license_en, ocr_res_dict, field_list) | ||
744 | else: | ||
678 | result_field_list = se_compare_license(license_en, ocr_res_dict, field_list) | 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 | ... | ... |
-
Please register or sign in to post a comment