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
e68a5453
authored
2021-07-13 21:33:19 +0800
by
周伟奇
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
fix idNum
1 parent
66de28b0
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
54 additions
and
17 deletions
src/apps/doc/consts.py
src/celery_compare/tasks.py
src/common/tools/comparison.py
src/apps/doc/consts.py
View file @
e68a545
...
...
@@ -1329,15 +1329,15 @@ MVI_COMPARE_LOGIC = {
'dealer'
:
(
'销方名称'
,
'se_common_compare'
,
{}),
'vehicleTransactionAmount'
:
(
'价税合计小写'
,
'se_amount_compare'
,
{}),
'customerName'
:
(
'购方名称'
,
'se_name_compare'
,
{}),
'idNum'
:
(
'购买方身份证号或组织机构代码'
,
'se_co
mmon_compare
'
,
{}),
'dateOfInvoice'
:
(
'开票日期'
,
'se_date_compare'
,
{}),
'idNum'
:
(
'购买方身份证号或组织机构代码'
,
'se_co
ntain_compare_2
'
,
{}),
'dateOfInvoice'
:
(
'开票日期'
,
'se_date_compare
_2
'
,
{}),
}
UCI_COMPARE_LOGIC
=
{
'vinNo'
:
(
'车架号'
,
'se_common_compare'
,
{}),
'vehicleTransactionAmount'
:
(
'价税合计小写'
,
'se_amount_compare'
,
{}),
'customerName'
:
(
'购方名称'
,
'se_name_compare'
,
{}),
'idNum'
:
(
'购方纳税人识别号'
,
'se_co
mmon_compare
'
,
{}),
'idNum'
:
(
'购方纳税人识别号'
,
'se_co
ntain_compare_2
'
,
{}),
}
MVC_COMPARE_LOGIC
=
{
...
...
@@ -1349,7 +1349,7 @@ MVC_COMPARE_LOGIC = {
BC_COMPARE_LOGIC
=
{
'accountNo'
:
(
'CardNum'
,
'se_common_compare'
,
{}),
'bankName'
:
(
'BankName'
,
'se_
commo
n_compare'
,
{}),
'bankName'
:
(
'BankName'
,
'se_
both_contai
n_compare'
,
{}),
}
DDA_COMPARE_LOGIC
=
{
...
...
@@ -1357,8 +1357,8 @@ DDA_COMPARE_LOGIC = {
'applicationId(2)'
:
(
'check_Num'
,
'se_common_compare'
,
{}),
'bankName'
:
(
'to_bank'
,
'se_common_compare'
,
{}),
'companyName'
:
(
'to_company'
,
'se_company_compare'
,
{}),
'customerName'
:
(
DDA_IC_NAME
,
'se_co
mmon_compare
'
,
{}),
'idNum'
:
(
DDA_IC_ID
,
'se_co
mmon_compare
'
,
{}),
'customerName'
:
(
DDA_IC_NAME
,
'se_co
ntain_compare_2
'
,
{}),
'idNum'
:
(
DDA_IC_ID
,
'se_co
ntain_compare_2
'
,
{}),
'accountHolderName'
:
(
DDA_BC_NAME
,
'se_common_compare'
,
{}),
'accountNo'
:
(
DDA_BC_ID
,
'se_common_compare'
,
{}),
}
...
...
src/celery_compare/tasks.py
View file @
e68a545
...
...
@@ -440,8 +440,12 @@ def get_se_compare_info(last_obj, application_entity):
individual_info_dict
=
{}
main_role_info
=
{}
for
individual_info
in
json
.
loads
(
last_obj
.
individual_cus_info
):
if
isinstance
(
individual_info
.
get
(
'secondIdNum'
),
str
):
id_num
=
'{0}、{1}'
.
format
(
individual_info
[
'idNum'
],
individual_info
[
'secondIdNum'
])
else
:
id_num
=
individual_info
[
'idNum'
]
main_role_info
.
setdefault
(
individual_info
[
'applicantType'
],
[])
.
append
(
(
individual_info
[
'customerName'
],
i
ndividual_info
[
'idNum'
]
))
(
individual_info
[
'customerName'
],
i
d_num
))
license_dict
=
{}
...
...
@@ -474,10 +478,19 @@ def get_se_compare_info(last_obj, application_entity):
compare_info
[
'individualCusInfo'
]
=
individual_info_dict
dda_name_list
=
[]
dda_num_list
=
[]
for
applicant_type
in
consts
.
APPLICANT_TYPE
:
if
applicant_type
in
main_role_info
:
main_name
,
main_num
=
main_role_info
[
applicant_type
][
0
]
break
for
applicant_type
in
consts
.
APPLICANT_TYPE
[:
2
]:
if
applicant_type
in
main_role_info
:
for
dda_name_part
,
dda_num_part
in
main_role_info
[
applicant_type
]:
dda_name_list
.
append
(
dda_name_part
)
dda_num_list
.
append
(
dda_num_part
)
dda_name
=
'、'
.
join
(
dda_name_list
)
dda_num
=
'、'
.
join
(
dda_num_list
)
del
main_role_info
company_info
=
None
...
...
@@ -507,18 +520,19 @@ def get_se_compare_info(last_obj, application_entity):
vehicle_info_dict
=
json
.
loads
(
last_obj
.
vehicle_info
)
# TODO 车辆登记证
vehicle_info
=
{}
vehicle_field_input
=
[]
gb_field_input
=
[]
if
vehicle_info_dict
[
'vehicleStatus'
]
==
'New'
:
for
vehicle_field
in
consts
.
SE_NEW_FIELD
:
vehicle_field_input
.
append
((
vehicle_field
,
vehicle_info_dict
[
vehicle_field
]))
vehicle_field_input
.
append
((
consts
.
SE_NEW_ADD_FIELD
[
0
],
main_name
))
vehicle_field_input
.
append
((
consts
.
SE_NEW_ADD_FIELD
[
1
],
main_num
))
if
isinstance
(
company_info
,
tuple
):
vehicle_field_input
.
append
((
consts
.
SE_NEW_ADD_FIELD
[
0
],
company_info
[
0
]))
vehicle_field_input
.
append
((
consts
.
SE_NEW_ADD_FIELD
[
1
],
company_info
[
1
]))
else
:
vehicle_field_input
.
append
((
consts
.
SE_NEW_ADD_FIELD
[
0
],
main_name
))
vehicle_field_input
.
append
((
consts
.
SE_NEW_ADD_FIELD
[
1
],
main_num
))
vehicle_field_input
.
append
((
consts
.
SE_NEW_ADD_FIELD
[
2
],
last_obj
.
first_submmison_date
))
for
gb_field
in
consts
.
SE_GB_NEW_FIELD
:
gb_field_input
.
append
((
gb_field
,
vehicle_info_dict
[
gb_field
]))
vehicle_info
[
consts
.
MVI_EN
]
=
vehicle_field_input
vehicle_info
[
consts
.
MVC_EN
]
=
gb_field_input
else
:
gb_field_input
=
[]
for
vehicle_field
in
consts
.
SE_USED_FIELD
:
vehicle_field_input
.
append
((
vehicle_field
,
vehicle_info_dict
[
vehicle_field
]))
for
gb_field
in
consts
.
SE_GB_NEW_FIELD
:
...
...
@@ -553,9 +567,9 @@ def get_se_compare_info(last_obj, application_entity):
company_name
=
consts
.
HIL_COMPANY_NAME
if
application_entity
in
consts
.
HIL_SET
else
consts
.
AFC_COMPANY_NAME
dda_field_input
.
append
((
dda_field
,
company_name
))
elif
dda_field
==
'customerName'
:
dda_field_input
.
append
((
dda_field
,
main
_name
))
dda_field_input
.
append
((
dda_field
,
dda
_name
))
elif
dda_field
==
'idNum'
:
dda_field_input
.
append
((
dda_field
,
main
_num
))
dda_field_input
.
append
((
dda_field
,
dda
_num
))
else
:
dda_field_input
.
append
((
dda_field
,
bank_info_dict
[
dda_field
]))
bank_info
[
consts
.
DDA_EN
]
=
dda_field_input
...
...
@@ -584,14 +598,15 @@ def se_compare_license(license_en, ocr_res_dict, field_list):
else
:
expiry_dates
=
set
()
for
ocr_res
in
ocr_res_list
:
for
res_idx
in
range
(
length
-
1
,
-
1
,
-
1
)
:
if
is_find
:
break
for
idx
,
(
name
,
value
)
in
enumerate
(
field_list
):
ocr_str
=
ocr_res
.
get
(
compare_logic
[
name
][
0
])
ocr_str
=
ocr_res
_list
[
res_idx
]
.
get
(
compare_logic
[
name
][
0
])
if
not
isinstance
(
ocr_str
,
str
):
result
=
consts
.
RESULT_N
ocr_str
=
''
else
:
result
=
getattr
(
cp
,
compare_logic
[
name
][
1
])(
value
,
ocr_str
,
**
compare_logic
[
name
][
2
])
...
...
src/common/tools/comparison.py
View file @
e68a545
import
re
import
time
from
datetime
import
datetime
from
.rmb_lower
import
rmb_handler
# from .rmb_upper import to_rmb_upper
...
...
@@ -178,6 +179,18 @@ class Comparison:
else
:
return
self
.
RESULT_Y
def
se_contain_compare_2
(
self
,
input_str
,
ocr_str
,
**
kwargs
):
if
input_str
.
find
(
ocr_str
)
==
-
1
:
return
self
.
RESULT_N
else
:
return
self
.
RESULT_Y
def
se_both_contain_compare
(
self
,
input_str
,
ocr_str
,
**
kwargs
):
if
ocr_str
.
find
(
input_str
)
==
-
1
and
input_str
.
find
(
ocr_str
)
==
-
1
:
return
self
.
RESULT_N
else
:
return
self
.
RESULT_Y
def
se_amount_compare
(
self
,
input_str
,
ocr_str
,
**
kwargs
):
if
input_str
==
ocr_str
:
return
self
.
RESULT_Y
...
...
@@ -215,6 +228,15 @@ class Comparison:
compare_str
=
self
.
CSOTH
return
self
.
build_res
(
input_str
==
compare_str
)
def
se_date_compare_2
(
self
,
input_str
,
ocr_str
,
**
kwargs
):
try
:
input_date
=
time
.
strptime
(
input_str
,
"
%
Y-
%
m-
%
d"
)
ocr_date
=
time
.
strptime
(
ocr_str
,
"
%
Y-
%
m-
%
d"
)
except
Exception
as
e
:
return
self
.
RESULT_N
else
:
return
self
.
build_res
(
input_date
>=
ocr_date
)
cp
=
Comparison
()
...
...
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