1b812e1f by 周伟奇

add se bs jypz

1 parent 055e3ca9
...@@ -1439,6 +1439,8 @@ SE_BS_FIELD = ['户名', '打印日期', '流水日期', '(担保人1)户名', ' ...@@ -1439,6 +1439,8 @@ SE_BS_FIELD = ['户名', '打印日期', '流水日期', '(担保人1)户名', '
1439 SE_HMH_FIELD = ['借款人/承租人姓名', '借款人/承租人证件号', '申请号', '渠道', '签字'] 1439 SE_HMH_FIELD = ['借款人/承租人姓名', '借款人/承租人证件号', '申请号', '渠道', '签字']
1440 SE_BD_FIELD = ['被保险人姓名', '被保险人证件号码', '车架号', '机动车损失保险金额', '第三者责任保险金额', '绝对免赔率', '保险起始日期', '保险截止日期', '保单章', '第一受益人', '保险费合计'] 1440 SE_BD_FIELD = ['被保险人姓名', '被保险人证件号码', '车架号', '机动车损失保险金额', '第三者责任保险金额', '绝对免赔率', '保险起始日期', '保险截止日期', '保单章', '第一受益人', '保险费合计']
1441 JDMPV_VALUE = ['-', '--', '0%', '0.00', '/', '0', ''] 1441 JDMPV_VALUE = ['-', '--', '0%', '0.00', '/', '0', '']
1442 JYPZ_TYPE_1 = ['二手车交易凭证']
1443 JYPZ_TYPE_2 = ['BMW官方认证二手车交易凭证', '二手车交易凭证']
1442 1444
1443 SE_BANK_FIELD = ['accountNo', 'bankName'] 1445 SE_BANK_FIELD = ['accountNo', 'bankName']
1444 SE_DDA_FIELD = ['applicationId(1)', 'applicationId(2)', 'bankName', 'companyName', 'customerName', 'idNum', 'accountHolderName', 'accountNo'] 1446 SE_DDA_FIELD = ['applicationId(1)', 'applicationId(2)', 'bankName', 'companyName', 'customerName', 'idNum', 'accountHolderName', 'accountNo']
...@@ -1811,6 +1813,7 @@ DDA_COMPARE_LOGIC = { ...@@ -1811,6 +1813,7 @@ DDA_COMPARE_LOGIC = {
1811 } 1813 }
1812 1814
1813 JYPZ_COMPARE_LOGIC = { 1815 JYPZ_COMPARE_LOGIC = {
1816 'type': ('type', 'super_list_compare', {}, '二手车凭证类型与产品不符'),
1814 'vinNo': ('vin', 'se_common_compare', {}, '二手车凭证车辆识别代号与系统车架号不一致'), 1817 'vinNo': ('vin', 'se_common_compare', {}, '二手车凭证车辆识别代号与系统车架号不一致'),
1815 'dealerName': ('authorized_dealer', 'se_common_compare', {}, '二手车凭证经销商与系统经销商不一致'), 1818 'dealerName': ('authorized_dealer', 'se_common_compare', {}, '二手车凭证经销商与系统经销商不一致'),
1816 'vehicleTransactionAmount': ('price', 'se_amount_compare', {}, '二手车凭证购买方交易价格与系统车辆价格不一致'), 1819 'vehicleTransactionAmount': ('price', 'se_amount_compare', {}, '二手车凭证购买方交易价格与系统车辆价格不一致'),
......
...@@ -919,6 +919,7 @@ class Command(BaseCommand, LoggerMixin): ...@@ -919,6 +919,7 @@ class Command(BaseCommand, LoggerMixin):
919 'role': bs_info.get('role', ''), 919 'role': bs_info.get('role', ''),
920 'print_time': print_date, 920 'print_time': print_date,
921 'timedelta': bs_info.get('timedelta', ''), 921 'timedelta': bs_info.get('timedelta', ''),
922 'verify': bs_info.get('verify', True)
922 } 923 }
923 ) 924 )
924 return res 925 return res
......
...@@ -392,7 +392,9 @@ class BSWorkbook(Workbook): ...@@ -392,7 +392,9 @@ class BSWorkbook(Workbook):
392 cell.fill = self.amount_fill 392 cell.fill = self.amount_fill
393 for cell in ms[4]: 393 for cell in ms[4]:
394 cell.fill = self.amount_fill 394 cell.fill = self.amount_fill
395 return ms, timedelta 395
396 verify_res = False if len(metadata_highlight_row) > 0 or len(verify_highlight_row) > 0 else True
397 return ms, timedelta, verify_res
396 398
397 @staticmethod 399 @staticmethod
398 def amount_format(amount_str): 400 def amount_format(amount_str):
...@@ -723,20 +725,21 @@ class BSWorkbook(Workbook): ...@@ -723,20 +725,21 @@ class BSWorkbook(Workbook):
723 # 2.元信息提取表 725 # 2.元信息提取表
724 confidence = self.get_confidence(max_find_count, classify) 726 confidence = self.get_confidence(max_find_count, classify)
725 is_verify_classify = classify in consts.BS_VERIFY_CLASSIFY 727 is_verify_classify = classify in consts.BS_VERIFY_CLASSIFY
726 ms, timedelta = self.build_meta_sheet(role_name, 728 ms, timedelta, verify_res = self.build_meta_sheet(role_name,
727 new_card, 729 new_card,
728 confidence, 730 confidence,
729 summary.get('code'), 731 summary.get('code'),
730 summary.get('verify'), 732 summary.get('verify'),
731 summary.get('print_time'), 733 summary.get('print_time'),
732 start_date, 734 start_date,
733 end_date, 735 end_date,
734 res_count_tuple, 736 res_count_tuple,
735 is_verify_classify, 737 is_verify_classify,
736 metadata) 738 metadata)
737 739
738 summary['timedelta'] = timedelta 740 summary['timedelta'] = timedelta
739 summary['end_date'] = end_date 741 summary['end_date'] = end_date
742 summary['verify'] = verify_res
740 743
741 # 3.创建月份表、提取/高亮关键行 744 # 3.创建月份表、提取/高亮关键行
742 # 倒序处理 745 # 倒序处理
......
...@@ -1062,7 +1062,7 @@ def get_se_cms_compare_info_auto(last_obj, application_entity, auto=True): ...@@ -1062,7 +1062,7 @@ def get_se_cms_compare_info_auto(last_obj, application_entity, auto=True):
1062 # jypz_field_input.append(('dealerName', dealer_name)) 1062 # jypz_field_input.append(('dealerName', dealer_name))
1063 # jypz_field_input.append(('vinNo', vin_no)) 1063 # jypz_field_input.append(('vinNo', vin_no))
1064 # jypz_field_input.append(('vehicleTransactionAmount', amount)) 1064 # jypz_field_input.append(('vehicleTransactionAmount', amount))
1065 # jypz_field_input.append((consts.SE_GB_USED_FIELD[-1], first_submission_date)) 1065 # jypz_field_input.append((consts.SE_GB_USED_FIELD[2], first_submission_date))
1066 # 1066 #
1067 # vehicle_info[consts.MVC_EN] = gb_field_input 1067 # vehicle_info[consts.MVC_EN] = gb_field_input
1068 # vehicle_info[consts.MVC34_EN] = gb34_field_input 1068 # vehicle_info[consts.MVC34_EN] = gb34_field_input
...@@ -1531,6 +1531,7 @@ def get_se_cms_compare_info(last_obj, application_entity, detect_list, auto=Fals ...@@ -1531,6 +1531,7 @@ def get_se_cms_compare_info(last_obj, application_entity, detect_list, auto=Fals
1531 # dda_num = '、'.join(dda_num_list) 1531 # dda_num = '、'.join(dda_num_list)
1532 # del main_role_info 1532 # del main_role_info
1533 1533
1534 fp_group = cms_info.get('fpGroup', '')
1534 vehicle_info = {} 1535 vehicle_info = {}
1535 vehicle_field_input = [] 1536 vehicle_field_input = []
1536 vehicle_status = cms_info.get('vehicleStatus', '') 1537 vehicle_status = cms_info.get('vehicleStatus', '')
...@@ -1592,7 +1593,11 @@ def get_se_cms_compare_info(last_obj, application_entity, detect_list, auto=Fals ...@@ -1592,7 +1593,11 @@ def get_se_cms_compare_info(last_obj, application_entity, detect_list, auto=Fals
1592 jypz_field_input.append(('dealerName', dealer_name)) 1593 jypz_field_input.append(('dealerName', dealer_name))
1593 jypz_field_input.append(('vinNo', vin_no)) 1594 jypz_field_input.append(('vinNo', vin_no))
1594 jypz_field_input.append(('vehicleTransactionAmount', amount)) 1595 jypz_field_input.append(('vehicleTransactionAmount', amount))
1595 jypz_field_input.append((consts.SE_GB_USED_FIELD[-1], first_submission_date)) 1596 jypz_field_input.append((consts.SE_GB_USED_FIELD[2], first_submission_date))
1597 if fp_group.find('Non-OCU Product Group') != -1:
1598 jypz_field_input.append(('type', consts.JYPZ_TYPE_1))
1599 elif fp_group.find('OCU Product Group') != -1:
1600 jypz_field_input.append(('type', consts.JYPZ_TYPE_2))
1596 1601
1597 vehicle_info[consts.MVC_EN] = gb_field_input 1602 vehicle_info[consts.MVC_EN] = gb_field_input
1598 vehicle_info[consts.MVC34_EN] = gb34_field_input 1603 vehicle_info[consts.MVC34_EN] = gb34_field_input
...@@ -1739,7 +1744,6 @@ def get_se_cms_compare_info(last_obj, application_entity, detect_list, auto=Fals ...@@ -1739,7 +1744,6 @@ def get_se_cms_compare_info(last_obj, application_entity, detect_list, auto=Fals
1739 # 保单 ----------------------------------------------------------------------------------------------------------- 1744 # 保单 -----------------------------------------------------------------------------------------------------------
1740 is_insurance = 0 1745 is_insurance = 0
1741 fp_campaign = cms_info.get('fpCampaign', '') 1746 fp_campaign = cms_info.get('fpCampaign', '')
1742 fp_group = cms_info.get('fpGroup', '')
1743 insurance_type = cms_info.get('insuranceDetails', {}).get('insuranceType', '') 1747 insurance_type = cms_info.get('insuranceDetails', {}).get('insuranceType', '')
1744 if isinstance(insurance_price, str): 1748 if isinstance(insurance_price, str):
1745 is_insurance = 1 1749 is_insurance = 1
...@@ -1961,9 +1965,16 @@ def se_bs_compare(license_en, ocr_res_dict, strip_list, is_auto): ...@@ -1961,9 +1965,16 @@ def se_bs_compare(license_en, ocr_res_dict, strip_list, is_auto):
1961 # 主共借人 1965 # 主共借人
1962 pre_best_res = {} 1966 pre_best_res = {}
1963 max_correct_count = 0 1967 max_correct_count = 0
1964 for ocr_res in ocr_res_list: 1968 verify_list = []
1969 verify_false_idx_list = []
1970
1971 for tmp_idx, ocr_res in enumerate(ocr_res_list):
1965 correct_count = 0 1972 correct_count = 0
1966 pre_tmp_res_part = {} 1973 pre_tmp_res_part = {}
1974 verify_bool = ocr_res.get('verify', True)
1975 verify_list.append(verify_bool)
1976 if not verify_bool:
1977 verify_false_idx_list.append(str(tmp_idx+1))
1967 for idx, (name, value) in enumerate(pre_field_list): 1978 for idx, (name, value) in enumerate(pre_field_list):
1968 ocr_str_or_list = ocr_res.get(compare_logic[name][0]) 1979 ocr_str_or_list = ocr_res.get(compare_logic[name][0])
1969 if isinstance(ocr_str_or_list, str) or isinstance(ocr_str_or_list, list) \ 1980 if isinstance(ocr_str_or_list, str) or isinstance(ocr_str_or_list, list) \
...@@ -1990,6 +2001,13 @@ def se_bs_compare(license_en, ocr_res_dict, strip_list, is_auto): ...@@ -1990,6 +2001,13 @@ def se_bs_compare(license_en, ocr_res_dict, strip_list, is_auto):
1990 max_correct_count = correct_count 2001 max_correct_count = correct_count
1991 pre_best_res = pre_tmp_res_part 2002 pre_best_res = pre_tmp_res_part
1992 2003
2004 # 真伪
2005 if not is_auto:
2006 name = '真伪'
2007 result = consts.RESULT_Y if all(verify_list) else consts.RESULT_N
2008 reason = '第{0}份银行流水疑似造假,需人工核查'.format('、'.join(verify_false_idx_list))
2009 result_field_list.append((name, empty_str, result, json.dumps(verify_list, ensure_ascii=False), empty_str, empty_error_type, reason))
2010
1993 # 担保人1 2011 # 担保人1
1994 dbr1_best_res = {} 2012 dbr1_best_res = {}
1995 if len(dbr1_field_list) > 0: 2013 if len(dbr1_field_list) > 0:
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!