44e363a2 by 周伟奇

add bd compare

1 parent 361ef3c5
......@@ -1178,6 +1178,7 @@ DDA_OCR_FIELD = 'bs_ocr'
HMH_OCR_FIELD = 'hmh_ocr'
JYPZ_OCR_FIELD = 'jypz_ocr'
HT_FIELD = 'ht_ocr'
BD_FIELD = 'bd_ocr'
RESULT_MAPPING = {
MVI_CLASSIFY: MVI_OCR_FIELD,
......@@ -1195,6 +1196,7 @@ RESULT_MAPPING = {
HMH_CLASSIFY: HMH_OCR_FIELD,
JYPZ_CLASSIFY: JYPZ_OCR_FIELD,
CONTRACT_CLASSIFY: HT_FIELD,
INSURANCE_CLASSIFY: BD_FIELD,
}
CA_ADD_COMPARE_FIELDS = (IC_OCR_FIELD, BL_OCR_FIELD)
......@@ -1213,6 +1215,7 @@ COMPARE_FIELDS = (MVI_OCR_FIELD,
HMH_OCR_FIELD,
JYPZ_OCR_FIELD,
HT_FIELD,
BD_FIELD,
)
# 身份证
......@@ -1394,6 +1397,8 @@ SE_LAYOUT_VALUE = '旧版-旧打印、新版-新打印'
SE_GB_NEW_FIELD = ['vinNo']
SE_GB_USED_FIELD = ['customerName', 'idNum', 'date']
SE_HMH_FIELD = ['借款人/承租人姓名', '借款人/承租人证件号', '申请号', '渠道', '签字']
SE_BD_FIELD = ['被保险人姓名', '被保险人证件号码', '车架号', '机动车损失保险金额', '第三者责任保险金额', '绝对免赔率', '保险起始日期', '保险截止日期', '保单章', '第一受益人', '保险费合计']
JDMPV_VALUE = ['-', '--', '0%', '0.00', '/', '0']
SE_BANK_FIELD = ['accountNo', 'bankName']
SE_DDA_FIELD = ['applicationId(1)', 'applicationId(2)', 'bankName', 'companyName', 'customerName', 'idNum', 'accountHolderName', 'accountNo']
......@@ -1502,6 +1507,7 @@ DDA_EN = 'DDA'
HMH_EN = 'Mortgage Waiver Letter'
JYPZ_EN = 'Used Car Document'
AFC_CONTRACT_EN = 'AFC Contract'
BD_EN = 'Insurance'
SKIP_CARD = {SME_BL_EN}
......@@ -1643,6 +1649,20 @@ HMH_COMPARE_LOGIC = {
'签字': ('借款人签字/盖章', 'se_common_compare', {}, '抵押登记豁免函签字需人工核查'),
}
BD_COMPARE_LOGIC = {
'被保险人姓名': ('被保险人姓名', 'se_name_compare', {}, '保单被保险人姓名与系统不一致'),
'被保险人证件号码': ('被保险人证件号码', 'se_common_compare', {}, '保单被保险人证件号码与系统不一致'),
'车架号': ('车架号', 'se_common_compare', {}, '保单车架号与系统不一致'),
'机动车损失保险金额': ('机动车损失保险金额', 'se_amount_lte_compare', {}, '保单车损险异常'),
'第三者责任保险金额': ('机动车第三者责任保险金额', 'se_amount_lte_compare', {}, '保单三者险异常'),
'绝对免赔率': ('机动车损失保险绝对免赔率/绝对免赔额', 'se_one_compare', {}, '保单无绝对免赔项'),
'保险起始日期': ('保险起始日期', 'se_bd_date_compare', {'start': True}, '保单起始时间有误'),
'保险截止日期': ('保险截止日期', 'se_bd_date_compare', {}, '保单截止时间有误'),
'保单章': ('保单章', 'se_common_compare', {}, '保单无保单章'),
'第一受益人': ('特别约定第一受益人', 'se_common_compare', {}, '保单第一受益人有误,需人工核查'),
'保险费合计': ('保险费合计', 'se_amount_compare', {}, '保单保费疑似无法覆盖ASP保险融资'),
}
HT_COMPARE_LOGIC = {
'合同编号-每页': ('合同编号-每页', 'se_list_compare', {}, '合同编号与系统不一致'),
'所购车辆价格-小写-重要条款': ('所购车辆价格-小写-重要条款', 'se_amount_str_compare', {}, '合同首页中车辆价格与系统不一致'),
......@@ -1710,7 +1730,8 @@ SE_COMPARE_FIELD = {
DDA_EN: (DDA_OCR_FIELD, DDA_COMPARE_LOGIC, False),
HMH_EN: (HMH_OCR_FIELD, HMH_COMPARE_LOGIC, False),
JYPZ_EN: (JYPZ_OCR_FIELD, JYPZ_COMPARE_LOGIC, False),
AFC_CONTRACT_EN: (HT_FIELD, HT_COMPARE_LOGIC, False)
AFC_CONTRACT_EN: (HT_FIELD, HT_COMPARE_LOGIC, False),
BD_EN: (BD_FIELD, BD_COMPARE_LOGIC, False),
}
......
......@@ -314,6 +314,7 @@ class AFCOCRResult(models.Model):
hmh_ocr = models.TextField(null=True, verbose_name="豁免函")
jypz_ocr = models.TextField(null=True, verbose_name="二手车交易凭证")
ht_ocr = models.TextField(null=True, verbose_name="AFC合同")
bd_ocr = models.TextField(null=True, verbose_name="保单")
update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
......@@ -344,6 +345,7 @@ class HILOCRResult(models.Model):
hmh_ocr = models.TextField(null=True, verbose_name="豁免函")
jypz_ocr = models.TextField(null=True, verbose_name="二手车交易凭证")
ht_ocr = models.TextField(null=True, verbose_name="AFC合同")
bd_ocr = models.TextField(null=True, verbose_name="保单")
update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
......@@ -373,6 +375,7 @@ class AFCSEOCRResult(models.Model):
hmh_ocr = models.TextField(null=True, verbose_name="豁免函")
jypz_ocr = models.TextField(null=True, verbose_name="二手车交易凭证")
ht_ocr = models.TextField(null=True, verbose_name="AFC合同")
bd_ocr = models.TextField(null=True, verbose_name="保单")
update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
......@@ -403,6 +406,7 @@ class HILSEOCRResult(models.Model):
hmh_ocr = models.TextField(null=True, verbose_name="豁免函")
jypz_ocr = models.TextField(null=True, verbose_name="二手车交易凭证")
ht_ocr = models.TextField(null=True, verbose_name="AFC合同")
bd_ocr = models.TextField(null=True, verbose_name="保单")
update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='创建时间')
......
......@@ -363,6 +363,15 @@ class Comparison:
input_tmp = input_str.replace('元', '').replace(',', '')
return self.build_res(ocr_tmp == input_tmp)
def se_amount_lte_compare(self, input_str, ocr_str, **kwargs):
try:
float_input = float(input_str)
float_ocr = float(ocr_str)
except Exception as e:
return self.RESULT_N
else:
return self.build_res(float_ocr >= float_input)
def se_amount_compare(self, input_str, ocr_str, **kwargs):
if input_str == ocr_str:
return self.RESULT_Y
......@@ -375,6 +384,12 @@ class Comparison:
else:
return self.build_res(float_ocr == float_input)
def se_one_compare(self, input_list, ocr_str, **kwargs):
if isinstance(input_list, list):
if ocr_str in input_list:
return self.RESULT_Y
return self.RESULT_N
def se_company_compare(self, input_str, ocr_str, **kwargs):
input_tmp = re.sub(self.re_obj, '', input_str).strip()
ocr_tmp = re.sub(self.re_obj, '', ocr_str).strip()
......@@ -439,6 +454,24 @@ class Comparison:
else:
return self.build_res(compare_date <= ocr_date)
def se_bd_date_compare(self, input_str, ocr_str, **kwargs):
try:
input_date = datetime.strptime(input_str, "%Y-%m-%d").date()
ocr_date = datetime.strptime(ocr_str, "%Y-%m-%d").date()
if kwargs.get('start', False):
if input_date != ocr_date:
return self.RESULT_N
six_month_date = (datetime.today() - relativedelta(months=6)).date()
today_date = datetime.today().date()
return self.build_res(six_month_date <= ocr_date <= today_date)
else:
if input_date == ocr_date or ocr_date == input_date + relativedelta(days=1):
return self.RESULT_Y
return self.RESULT_N
except Exception as e:
return self.RESULT_N
cp = Comparison()
......
import pyodbc
hil_sql = """
ALTER TABLE hil_ocr_result ADD bd_ocr nvarchar(max);
ALTER TABLE hil_se_ocr_result ADD bd_ocr nvarchar(max);
"""
afc_sql = """
ALTER TABLE afc_ocr_result ADD bd_ocr nvarchar(max);
ALTER TABLE afc_se_ocr_result ADD bd_ocr nvarchar(max);
"""
hil_cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};', autocommit=True)
hil_cursor = hil_cnxn.cursor()
hil_cursor.execute(hil_sql)
hil_cursor.close()
hil_cnxn.close()
afc_cnxn = pyodbc.connect('DRIVER={ODBC Driver 17 for SQL Server};', autocommit=True)
afc_cursor = afc_cnxn.cursor()
afc_cursor.execute(afc_sql)
afc_cursor.close()
afc_cnxn.close()
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!