a0d6443d by 冯轩

Merge branch 'feature/CHINARPA-4660'

2 parents c811f8ce 62a7558f
......@@ -1248,6 +1248,8 @@ FSM_CONTRACT_WEP_FIELD = 'fsm_wep_ocr'
FSM_CONTRACT_MSI_FIELD = 'fsm_msi_ocr'
FSM_CONTRACT_SC_FIELD = 'fsm_sc_ocr'
FSM_CONTRACT_SC2_FIELD = 'fsm_sc2_ocr'
FS_FIELD = 'fs_ocr'
FSS_FIELD = 'fss_ocr'
BS_CLASSIFY = 10089
......@@ -1304,6 +1306,8 @@ COMPARE_FIELDS = (
HIL_CONTRACT_1_FIELD,
HIL_CONTRACT_2_FIELD,
HIL_CONTRACT_3_FIELD,
FS_FIELD,
FSS_FIELD,
)
PRE_COMPARE_FIELDS = (
......@@ -1505,6 +1509,8 @@ SE_BD_FIELD = ['被保险人姓名', '被保险人证件号码', '车架号', '
JDMPV_VALUE = ['-', '--', '0%', '0.00', '/', '0', '']
JYPZ_TYPE_1 = ['二手车交易凭证']
JYPZ_TYPE_2 = ['BMW官方认证二手车交易凭证', '二手车交易凭证']
SE_FS_FIELD = ['Hash值', '公章', '财年', '资产负债表内容', '利润表内容']
SE_FSS_FIELD = ['公司名称', '公章']
SE_BANK_FIELD = ['accountNo', 'bankName']
SE_DDA_FIELD = ['applicationId(1)', 'applicationId(2)', 'bankName', 'companyName', 'customerName', 'idNum', 'accountHolderName', 'accountNo']
......@@ -1818,8 +1824,11 @@ BS_EN = 'Bank Statement'
HIL_CONTRACT_1_EN = '售后回租合同'
HIL_CONTRACT_2_EN = '车辆租赁抵押合同'
HIL_CONTRACT_3_EN = '车辆处置协议'
FS_EN = 'Financial Statement'
FSS_EN = 'Financial Statement Supplementary'
DDA_NO_FIND = '需人工查看DDA或截图'
FS_NO_FIND = '未提供财报或财报不完整'
SKIP_CARD = {SME_BL_EN}
......@@ -2160,6 +2169,20 @@ HT_COMPARE_LOGIC = {
'无ASP产品': ('无ASP产品', 'se_self_compare_other_asp', {}, GZS_REASON_1),
}
# 格式:'xueao给的excel字段名':('数据库字段名','比对逻辑','特殊处理可以忽略','比对不合格时的返回内容')
FS_COMPARE_LOGIC = {
'Hash值': ('code', 'hash_code_compare', {}, '财报Hash值与系统不一致'),
'公章': ('stamp', 'stamp_dict_compare', {}, '财报无公章'),
'财年': ('财年', 'fiscal_year_compare', {}, '财报所属财年错误'),
'资产负债表内容': ('资产负债表内容', 'input_list_not_zero_compare', {}, '财报资产负债表为空'),
'利润表内容': ('利润表内容', 'input_list_not_zero_compare', {}, '财报利润表为空'),
}
FSS_COMPARE_LOGIC = {
'公司名称': ('title', 'se_company_compare', {}, '财报情况说明公司名称错误'),
'公章': ('stamp', 'stamp_str_compare', {}, '财报情况说明无公章'),
}
AFC_HT_DATE_FIELDS = ['主借人日期', '共借人日期', '保证人日期1', '保证人日期2']
# MVC_OCR_FIELD = 'mvc_ocr'
......@@ -2188,6 +2211,8 @@ SE_COMPARE_FIELD = {
HIL_CONTRACT_1_EN: (HIL_CONTRACT_1_FIELD, HIL_CONTRACT_1_COMPARE_LOGIC, False),
HIL_CONTRACT_2_EN: (HIL_CONTRACT_2_FIELD, HIL_CONTRACT_2_COMPARE_LOGIC, False),
HIL_CONTRACT_3_EN: (HIL_CONTRACT_3_FIELD, HIL_CONTRACT_3_COMPARE_LOGIC, False),
FS_EN: (FS_FIELD, FS_COMPARE_LOGIC, False),
FSS_EN: (FSS_FIELD, FSS_COMPARE_LOGIC, False),
}
SE_COMPARE_FIELD_AUTO = {
......
......@@ -336,6 +336,8 @@ class AFCOCRResult(models.Model):
fsm_sc_ocr = models.TextField(null=True, verbose_name="汽车销售合同")
fsm_sc2_ocr = models.TextField(null=True, verbose_name="汽车销售合同补充合同")
fsm_activited = models.IntegerField(null=False, default=0, verbose_name="fsm激活状态 1:激活")
fs_ocr = models.TextField(null=True, verbose_name="财务报表")
fss_ocr = models.TextField(null=True, verbose_name="财务情况说明书")
update_time = models.DateTimeField(auto_now=True, verbose_name='修改时间')
......@@ -379,6 +381,8 @@ class HILOCRResult(models.Model):
fsm_sc_ocr = models.TextField(null=True, verbose_name="汽车销售合同")
fsm_sc2_ocr = models.TextField(null=True, verbose_name="汽车销售合同补充合同")
fsm_activited = models.IntegerField(null=False, default=0, verbose_name="fsm激活状态 1:激活")
fs_ocr = models.TextField(null=True, verbose_name="财务报表")
fss_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='创建时间')
......@@ -420,6 +424,8 @@ class AFCSEOCRResult(models.Model):
fsm_sc_ocr = models.TextField(null=True, verbose_name="汽车销售合同")
fsm_sc2_ocr = models.TextField(null=True, verbose_name="汽车销售合同补充合同")
fsm_activited = models.IntegerField(null=False, default=0, verbose_name="fsm激活状态 1:激活")
fs_ocr = models.TextField(null=True, verbose_name="财务报表")
fss_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='创建时间')
......@@ -461,6 +467,8 @@ class HILSEOCRResult(models.Model):
fsm_sc_ocr = models.TextField(null=True, verbose_name="汽车销售合同")
fsm_sc2_ocr = models.TextField(null=True, verbose_name="汽车销售合同补充合同")
fsm_activited = models.IntegerField(null=False, default=0, verbose_name="fsm激活状态 1:激活")
fs_ocr = models.TextField(null=True, verbose_name="财务报表")
fss_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='创建时间')
......
......@@ -704,5 +704,58 @@ class Comparison:
except Exception as e:
return self.RESULT_N
def hash_code_compare(self, input_str, ocr_dict, **kwargs):
try:
balance_sheet_hash = ocr_dict.get('balance_sheet','')
income_statement_hash = ocr_dict.get('income_statement','')
cash_flow_statement_hash = ocr_dict.get('cash_flow_statement','')
if balance_sheet_hash != input_str or income_statement_hash != input_str or cash_flow_statement_hash != input_str:
return self.RESULT_N
else:
return self.RESULT_Y
except Exception as e:
return self.RESULT_N
def stamp_dict_compare(self, input_str, ocr_dict, **kwargs):
try:
balance_sheet_stamp = ocr_dict.get('balance_sheet','')
income_statement_stamp = ocr_dict.get('income_statement','')
cash_flow_statement_stamp = ocr_dict.get('cash_flow_statement','')
if balance_sheet_stamp != 1 or income_statement_stamp != 1 or cash_flow_statement_stamp != 1:
return self.RESULT_N
else:
return self.RESULT_Y
except Exception as e:
return self.RESULT_N
def stamp_str_compare(self, input_str, ocr_str, **kwargs):
try:
if ocr_str != 1:
return self.RESULT_N
else:
return self.RESULT_Y
except Exception as e:
return self.RESULT_N
def fiscal_year_compare(self, input_str, ocr_list, **kwargs):
try:
this_year_str = datetime.now().strftime('%Y')
this_year = int(this_year_str)
last_year = this_year - 1
if str(input_str) != str(this_year) and str(input_str) != str(last_year):
return self.RESULT_N
return self.RESULT_Y
except Exception as e:
return self.RESULT_N
def input_list_not_zero_compare(self, input_list, ocr_list, **kwargs):
try:
for item in input_list:
if float(item) == 0:
return self.RESULT_N
return self.RESULT_Y
except Exception as e:
return self.RESULT_N
cp = Comparison()
......
import pyodbc
hil_sql = """
ALTER TABLE hil_ocr_result ADD fs_ocr nvarchar(max);
ALTER TABLE hil_se_ocr_result ADD fs_ocr nvarchar(max);
ALTER TABLE hil_ocr_result ADD fss_ocr nvarchar(max);
ALTER TABLE hil_se_ocr_result ADD fss_ocr nvarchar(max);
"""
afc_sql = """
ALTER TABLE afc_ocr_result ADD fs_ocr nvarchar(max);
ALTER TABLE afc_se_ocr_result ADD fs_ocr nvarchar(max);
ALTER TABLE afc_ocr_result ADD fss_ocr nvarchar(max);
ALTER TABLE afc_se_ocr_result ADD fss_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!