Merge branch 'feature/se_compare3' into feature/0611
Showing
3 changed files
with
54 additions
and
17 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])) |
558 | vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[0], main_name)) | 570 | if isinstance(company_info, tuple): |
559 | vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[1], main_num)) | 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: | ||
574 | vehicle_field_input.append((consts.SE_NEW_ADD_FIELD[0], main_name)) | ||
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