e17f3ffb by 周伟奇

Merge branch 'feature/se_compare3' into feature/0611

2 parents 79d67a1d e68a5453
...@@ -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
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!