Merge branch 'feature/se_compare3' into feature/0611
Showing
3 changed files
with
52 additions
and
15 deletions
| ... | @@ -1365,15 +1365,15 @@ MVI_COMPARE_LOGIC = { | ... | @@ -1365,15 +1365,15 @@ MVI_COMPARE_LOGIC = { |
| 1365 | 'dealer': ('销方名称', 'se_common_compare', {}), | 1365 | 'dealer': ('销方名称', 'se_common_compare', {}), |
| 1366 | 'vehicleTransactionAmount': ('价税合计小写', 'se_amount_compare', {}), | 1366 | 'vehicleTransactionAmount': ('价税合计小写', 'se_amount_compare', {}), |
| 1367 | 'customerName': ('购方名称', 'se_name_compare', {}), | 1367 | 'customerName': ('购方名称', 'se_name_compare', {}), |
| 1368 | 'idNum': ('购买方身份证号或组织机构代码', 'se_common_compare', {}), | 1368 | 'idNum': ('购买方身份证号或组织机构代码', 'se_contain_compare_2', {}), |
| 1369 | 'dateOfInvoice': ('开票日期', 'se_date_compare', {}), | 1369 | 'dateOfInvoice': ('开票日期', 'se_date_compare_2', {}), |
| 1370 | } | 1370 | } |
| 1371 | 1371 | ||
| 1372 | UCI_COMPARE_LOGIC = { | 1372 | UCI_COMPARE_LOGIC = { |
| 1373 | 'vinNo': ('车架号', 'se_common_compare', {}), | 1373 | 'vinNo': ('车架号', 'se_common_compare', {}), |
| 1374 | 'vehicleTransactionAmount': ('价税合计小写', 'se_amount_compare', {}), | 1374 | 'vehicleTransactionAmount': ('价税合计小写', 'se_amount_compare', {}), |
| 1375 | 'customerName': ('购方名称', 'se_name_compare', {}), | 1375 | 'customerName': ('购方名称', 'se_name_compare', {}), |
| 1376 | 'idNum': ('购方纳税人识别号', 'se_common_compare', {}), | 1376 | 'idNum': ('购方纳税人识别号', 'se_contain_compare_2', {}), |
| 1377 | } | 1377 | } |
| 1378 | 1378 | ||
| 1379 | MVC_COMPARE_LOGIC = { | 1379 | MVC_COMPARE_LOGIC = { |
| ... | @@ -1385,7 +1385,7 @@ MVC_COMPARE_LOGIC = { | ... | @@ -1385,7 +1385,7 @@ MVC_COMPARE_LOGIC = { |
| 1385 | 1385 | ||
| 1386 | BC_COMPARE_LOGIC = { | 1386 | BC_COMPARE_LOGIC = { |
| 1387 | 'accountNo': ('CardNum', 'se_common_compare', {}), | 1387 | 'accountNo': ('CardNum', 'se_common_compare', {}), |
| 1388 | 'bankName': ('BankName', 'se_common_compare', {}), | 1388 | 'bankName': ('BankName', 'se_both_contain_compare', {}), |
| 1389 | } | 1389 | } |
| 1390 | 1390 | ||
| 1391 | DDA_COMPARE_LOGIC = { | 1391 | DDA_COMPARE_LOGIC = { |
| ... | @@ -1393,8 +1393,8 @@ DDA_COMPARE_LOGIC = { | ... | @@ -1393,8 +1393,8 @@ DDA_COMPARE_LOGIC = { |
| 1393 | 'applicationId(2)': ('check_Num', 'se_common_compare', {}), | 1393 | 'applicationId(2)': ('check_Num', 'se_common_compare', {}), |
| 1394 | 'bankName': ('to_bank', 'se_common_compare', {}), | 1394 | 'bankName': ('to_bank', 'se_common_compare', {}), |
| 1395 | 'companyName': ('to_company', 'se_company_compare', {}), | 1395 | 'companyName': ('to_company', 'se_company_compare', {}), |
| 1396 | 'customerName': (DDA_IC_NAME, 'se_common_compare', {}), | 1396 | 'customerName': (DDA_IC_NAME, 'se_contain_compare_2', {}), |
| 1397 | 'idNum': (DDA_IC_ID, 'se_common_compare', {}), | 1397 | 'idNum': (DDA_IC_ID, 'se_contain_compare_2', {}), |
| 1398 | 'accountHolderName': (DDA_BC_NAME, 'se_common_compare', {}), | 1398 | 'accountHolderName': (DDA_BC_NAME, 'se_common_compare', {}), |
| 1399 | 'accountNo': (DDA_BC_ID, 'se_common_compare', {}), | 1399 | 'accountNo': (DDA_BC_ID, 'se_common_compare', {}), |
| 1400 | } | 1400 | } | ... | ... |
| ... | @@ -484,8 +484,12 @@ def get_se_compare_info(last_obj, application_entity): | ... | @@ -484,8 +484,12 @@ def get_se_compare_info(last_obj, application_entity): |
| 484 | individual_info_dict = {} | 484 | individual_info_dict = {} |
| 485 | main_role_info = {} | 485 | main_role_info = {} |
| 486 | for individual_info in json.loads(last_obj.individual_cus_info): | 486 | for individual_info in json.loads(last_obj.individual_cus_info): |
| 487 | if isinstance(individual_info.get('secondIdNum'), str): | ||
| 488 | id_num = '{0}、{1}'.format(individual_info['idNum'], individual_info['secondIdNum']) | ||
| 489 | else: | ||
| 490 | id_num = individual_info['idNum'] | ||
| 487 | main_role_info.setdefault(individual_info['applicantType'], []).append( | 491 | main_role_info.setdefault(individual_info['applicantType'], []).append( |
| 488 | (individual_info['customerName'], individual_info['idNum'])) | 492 | (individual_info['customerName'], id_num)) |
| 489 | 493 | ||
| 490 | license_dict = {} | 494 | license_dict = {} |
| 491 | 495 | ||
| ... | @@ -518,10 +522,19 @@ def get_se_compare_info(last_obj, application_entity): | ... | @@ -518,10 +522,19 @@ def get_se_compare_info(last_obj, application_entity): |
| 518 | 522 | ||
| 519 | compare_info['individualCusInfo'] = individual_info_dict | 523 | compare_info['individualCusInfo'] = individual_info_dict |
| 520 | 524 | ||
| 525 | dda_name_list = [] | ||
| 526 | dda_num_list = [] | ||
| 521 | for applicant_type in consts.APPLICANT_TYPE: | 527 | for applicant_type in consts.APPLICANT_TYPE: |
| 522 | if applicant_type in main_role_info: | 528 | if applicant_type in main_role_info: |
| 523 | main_name, main_num = main_role_info[applicant_type][0] | 529 | main_name, main_num = main_role_info[applicant_type][0] |
| 524 | break | 530 | break |
| 531 | for applicant_type in consts.APPLICANT_TYPE[:2]: | ||
| 532 | if applicant_type in main_role_info: | ||
| 533 | for dda_name_part, dda_num_part in main_role_info[applicant_type]: | ||
| 534 | dda_name_list.append(dda_name_part) | ||
| 535 | dda_num_list.append(dda_num_part) | ||
| 536 | dda_name = '、'.join(dda_name_list) | ||
| 537 | dda_num = '、'.join(dda_num_list) | ||
| 525 | del main_role_info | 538 | del main_role_info |
| 526 | 539 | ||
| 527 | company_info = None | 540 | company_info = None |
| ... | @@ -551,18 +564,19 @@ def get_se_compare_info(last_obj, application_entity): | ... | @@ -551,18 +564,19 @@ def get_se_compare_info(last_obj, application_entity): |
| 551 | vehicle_info_dict = json.loads(last_obj.vehicle_info) # TODO 车辆登记证 | 564 | vehicle_info_dict = json.loads(last_obj.vehicle_info) # TODO 车辆登记证 |
| 552 | vehicle_info = {} | 565 | vehicle_info = {} |
| 553 | vehicle_field_input = [] | 566 | vehicle_field_input = [] |
| 554 | gb_field_input = [] | ||
| 555 | if vehicle_info_dict['vehicleStatus'] == 'New': | 567 | if vehicle_info_dict['vehicleStatus'] == 'New': |
| 556 | for vehicle_field in consts.SE_NEW_FIELD: | 568 | for vehicle_field in consts.SE_NEW_FIELD: |
| 557 | vehicle_field_input.append((vehicle_field, vehicle_info_dict[vehicle_field])) | 569 | vehicle_field_input.append((vehicle_field, vehicle_info_dict[vehicle_field])) |
| 570 | if isinstance(company_info, tuple): | ||
| 571 | vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[0], company_info[0])) | ||
| 572 | vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[1], company_info[1])) | ||
| 573 | else: | ||
| 558 | vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[0], main_name)) | 574 | vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[0], main_name)) |
| 559 | vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[1], main_num)) | 575 | vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[1], main_num)) |
| 560 | vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[2], last_obj.first_submmison_date)) | 576 | vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[2], last_obj.first_submmison_date)) |
| 561 | for gb_field in consts.SE_GB_NEW_FIELD: | ||
| 562 | gb_field_input.append((gb_field, vehicle_info_dict[gb_field])) | ||
| 563 | vehicle_info[consts.MVI_EN] = vehicle_field_input | 577 | vehicle_info[consts.MVI_EN] = vehicle_field_input |
| 564 | vehicle_info[consts.MVC_EN] = gb_field_input | ||
| 565 | else: | 578 | else: |
| 579 | gb_field_input = [] | ||
| 566 | for vehicle_field in consts.SE_USED_FIELD: | 580 | for vehicle_field in consts.SE_USED_FIELD: |
| 567 | vehicle_field_input.append((vehicle_field, vehicle_info_dict[vehicle_field])) | 581 | vehicle_field_input.append((vehicle_field, vehicle_info_dict[vehicle_field])) |
| 568 | for gb_field in consts.SE_GB_NEW_FIELD: | 582 | for gb_field in consts.SE_GB_NEW_FIELD: |
| ... | @@ -597,9 +611,9 @@ def get_se_compare_info(last_obj, application_entity): | ... | @@ -597,9 +611,9 @@ def get_se_compare_info(last_obj, application_entity): |
| 597 | company_name = consts.HIL_COMPANY_NAME if application_entity in consts.HIL_SET else consts.AFC_COMPANY_NAME | 611 | company_name = consts.HIL_COMPANY_NAME if application_entity in consts.HIL_SET else consts.AFC_COMPANY_NAME |
| 598 | dda_field_input.append((dda_field, company_name)) | 612 | dda_field_input.append((dda_field, company_name)) |
| 599 | elif dda_field == 'customerName': | 613 | elif dda_field == 'customerName': |
| 600 | dda_field_input.append((dda_field, main_name)) | 614 | dda_field_input.append((dda_field, dda_name)) |
| 601 | elif dda_field == 'idNum': | 615 | elif dda_field == 'idNum': |
| 602 | dda_field_input.append((dda_field, main_num)) | 616 | dda_field_input.append((dda_field, dda_num)) |
| 603 | else: | 617 | else: |
| 604 | dda_field_input.append((dda_field, bank_info_dict[dda_field])) | 618 | dda_field_input.append((dda_field, bank_info_dict[dda_field])) |
| 605 | bank_info[consts.DDA_EN] = dda_field_input | 619 | bank_info[consts.DDA_EN] = dda_field_input |
| ... | @@ -628,14 +642,15 @@ def se_compare_license(license_en, ocr_res_dict, field_list): | ... | @@ -628,14 +642,15 @@ def se_compare_license(license_en, ocr_res_dict, field_list): |
| 628 | else: | 642 | else: |
| 629 | expiry_dates = set() | 643 | expiry_dates = set() |
| 630 | 644 | ||
| 631 | for ocr_res in ocr_res_list: | 645 | for res_idx in range(length-1, -1, -1): |
| 632 | if is_find: | 646 | if is_find: |
| 633 | break | 647 | break |
| 634 | 648 | ||
| 635 | for idx, (name, value) in enumerate(field_list): | 649 | for idx, (name, value) in enumerate(field_list): |
| 636 | ocr_str = ocr_res.get(compare_logic[name][0]) | 650 | ocr_str = ocr_res_list[res_idx].get(compare_logic[name][0]) |
| 637 | if not isinstance(ocr_str, str): | 651 | if not isinstance(ocr_str, str): |
| 638 | result = consts.RESULT_N | 652 | result = consts.RESULT_N |
| 653 | ocr_str = '' | ||
| 639 | else: | 654 | else: |
| 640 | result = getattr(cp, compare_logic[name][1])(value, ocr_str, **compare_logic[name][2]) | 655 | result = getattr(cp, compare_logic[name][1])(value, ocr_str, **compare_logic[name][2]) |
| 641 | 656 | ... | ... |
| 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