fix idNum
Showing
3 changed files
with
52 additions
and
15 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])) |
526 | if isinstance(company_info, tuple): | ||
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: | ||
514 | vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[0], main_name)) | 530 | vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[0], main_name)) |
515 | vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[1], main_num)) | 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