Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
周伟奇
/
bmw-ocr
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Graphs
Network
Create a new issue
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
44e363a2
authored
2021-12-12 16:38:10 +0800
by
周伟奇
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
add bd compare
1 parent
361ef3c5
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
86 additions
and
1 deletions
src/apps/doc/consts.py
src/apps/doc/models.py
src/celery_compare/tasks.py
src/common/tools/comparison.py
src/common/tools/mssql_script11.py
src/apps/doc/consts.py
View file @
44e363a
...
...
@@ -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
),
}
...
...
src/apps/doc/models.py
View file @
44e363a
...
...
@@ -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
=
'创建时间'
)
...
...
src/celery_compare/tasks.py
View file @
44e363a
This diff is collapsed.
Click to expand it.
src/common/tools/comparison.py
View file @
44e363a
...
...
@@ -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
()
...
...
src/common/tools/mssql_script11.py
0 → 100644
View file @
44e363a
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
()
Write
Preview
Styling with
Markdown
is supported
Attach a file
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to post a comment