fix idNum
Showing
3 changed files
with
54 additions
and
17 deletions
| ... | @@ -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])) |
| 514 | vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[0], main_name)) | 526 | if isinstance(company_info, tuple): |
| 515 | vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[1], main_num)) | 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: | ||
| 530 | vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[0], main_name)) | ||
| 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 | ... | ... |
-
Please register or sign in to post a comment