add GB
Showing
2 changed files
with
86 additions
and
7 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,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: | ... | ... |
-
Please register or sign in to post a comment