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
174d2005
authored
2021-06-08 17:58:47 +0800
by
周伟奇
Browse Files
Options
Browse Files
Tag
Download
Plain Diff
Merge branch 'feature/ca_compare' into feature/0611
2 parents
f0fd60ab
21cab0c8
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
29 additions
and
13 deletions
src/apps/doc/consts.py
src/celery_compare/tasks.py
src/common/tools/comparison.py
src/apps/doc/consts.py
View file @
174d200
...
...
@@ -1057,6 +1057,7 @@ IC_RES_MAPPING = {
# ----------------- compare ---------------------
ENTITY
=
[
'HIL'
,
'AFC'
]
CUSTOMER_TYPE
=
[
'TCCOR'
,
'TCDAS'
,
'TCFRE'
,
'TCIAS'
,
'TCIND'
,
'TCSEP'
,
'TCURE'
]
NO_COMPARE_CUSTOMER_TYPE
=
[
'TCFRE'
,
'TCIND'
]
VEHICLE_STATUS
=
[
'PCUSD'
,
'PCNEW'
]
APPLICANT_TYPE
=
[
'COAPP'
,
'CUSTR'
,
'GAUTR1'
,
'GAUTR2'
]
...
...
src/celery_compare/tasks.py
View file @
174d200
...
...
@@ -17,10 +17,10 @@ log_base = '[CA Compare]'
def
get_order_dict
(
src_dict
,
order_tuple
):
if
consts
.
SECOND_ID_TYPE_FIELD
in
src_dict
:
if
src_dict
.
get
(
consts
.
SECOND_ID_TYPE_FIELD
)
not
in
consts
.
SECOND_ID_TYPE_COMPARE
:
src_dict
.
pop
(
consts
.
SECOND_ID_TYPE_FIELD
,
None
)
src_dict
.
pop
(
consts
.
SECOND_ID_FIELD
,
None
)
#
if consts.SECOND_ID_TYPE_FIELD in src_dict:
#
if src_dict.get(consts.SECOND_ID_TYPE_FIELD) not in consts.SECOND_ID_TYPE_COMPARE:
#
src_dict.pop(consts.SECOND_ID_TYPE_FIELD, None)
#
src_dict.pop(consts.SECOND_ID_FIELD, None)
order_dict
=
OrderedDict
({})
for
field
in
order_tuple
:
...
...
@@ -29,7 +29,15 @@ def get_order_dict(src_dict, order_tuple):
return
order_dict
def
field_compare
(
info_dict
,
ocr_res_dict
,
ocr_field
,
compare_list
,
res_set
,
has_expiry_date
=
False
,
sep_name
=
None
):
def
do_not_compare
(
info_dict
,
compare_list
):
for
compare_tuple
in
compare_list
:
info_dict
[
compare_tuple
[
4
]]
=
consts
.
RESULT_NA
if
compare_tuple
[
0
]
in
info_dict
:
del
info_dict
[
compare_tuple
[
0
]]
def
field_compare
(
info_dict
,
ocr_res_dict
,
ocr_field
,
compare_list
,
res_set
,
has_expiry_date
=
False
,
sep_name
=
None
,
capital_ignore
=
False
):
is_find
=
False
ocr_res_str
=
ocr_res_dict
.
get
(
ocr_field
)
if
ocr_res_str
is
not
None
:
...
...
@@ -91,6 +99,7 @@ def field_compare(info_dict, ocr_res_dict, ocr_field, compare_list, res_set, has
del
info_dict
[
compare_tuple
[
0
]]
else
:
info_dict
[
compare_tuple
[
0
]]
=
ocr_output
if
not
capital_ignore
or
idx
!=
1
:
res_set
.
add
(
compare_res
)
if
not
is_find
:
res_set
.
add
(
consts
.
RESULT_N
)
...
...
@@ -208,8 +217,10 @@ def compare(application_id, application_entity, uniq_seq, ocr_res_id):
for
individual_cus_info
in
individual_cus_info_list
:
order_individual_cus_info
=
get_order_dict
(
individual_cus_info
,
consts
.
IN_ORDER
)
cus_type
=
order_individual_cus_info
.
get
(
'customerType'
)
# 获取sep下营业执照法人代表
if
order_individual_cus_info
.
get
(
'customerType'
)
==
consts
.
CUSTOMER_TYPE
[
5
]:
if
cus_type
==
consts
.
CUSTOMER_TYPE
[
5
]:
sep_name
=
order_individual_cus_info
.
get
(
'customerChineseName'
)
if
isinstance
(
sep_name
,
str
):
sep_name
=
sep_name
.
strip
()
...
...
@@ -220,8 +231,9 @@ def compare(application_id, application_entity, uniq_seq, ocr_res_id):
# 个人信息证件
id_type
=
order_individual_cus_info
.
get
(
'idType'
)
if
id_type
not
in
consts
.
ID_TYPE_COMPARE
:
continue
if
cus_type
in
consts
.
NO_COMPARE_CUSTOMER_TYPE
or
id_type
not
in
consts
.
ID_TYPE_COMPARE
:
do_not_compare
(
order_individual_cus_info
,
consts
.
ITPRC
)
else
:
ocr_field
,
compare_list
,
has_expiry_date
=
consts
.
ID_TYPE_COMPARE
.
get
(
id_type
)
field_compare
(
order_individual_cus_info
,
ocr_res_dict
,
ocr_field
,
compare_list
,
res_set
,
has_expiry_date
=
has_expiry_date
)
...
...
@@ -229,8 +241,12 @@ def compare(application_id, application_entity, uniq_seq, ocr_res_id):
# 第二证件
second_id_type
=
order_individual_cus_info
.
get
(
'secondIdType'
)
if
second_id_type
is
not
None
:
if
cus_type
in
consts
.
NO_COMPARE_CUSTOMER_TYPE
or
second_id_type
not
in
consts
.
SECOND_ID_TYPE_COMPARE
:
do_not_compare
(
order_individual_cus_info
,
consts
.
SECOND_ITPRC
)
else
:
second_ocr_field
,
second_compare_list
=
consts
.
SECOND_ID_TYPE_COMPARE
.
get
(
second_id_type
)
field_compare
(
order_individual_cus_info
,
ocr_res_dict
,
second_ocr_field
,
second_compare_list
,
res_set
)
field_compare
(
order_individual_cus_info
,
ocr_res_dict
,
second_ocr_field
,
second_compare_list
,
res_set
)
# 重新排列
new_dict
=
OrderedDict
({})
second_id_res
=
order_individual_cus_info
.
pop
(
consts
.
SECOND_ID_RES
,
consts
.
RESULT_NA
)
...
...
@@ -241,10 +257,9 @@ def compare(application_id, application_entity, uniq_seq, ocr_res_id):
order_individual_cus_info
=
new_dict
# sep营业执照
if
order_individual_cus_info
.
get
(
'customerType'
)
==
consts
.
CUSTOMER_TYPE
[
5
]:
if
cus_type
==
consts
.
CUSTOMER_TYPE
[
5
]:
field_compare
(
order_individual_cus_info
,
ocr_res_dict
,
consts
.
BL_OCR_FIELD
,
consts
.
TCSEP
,
res_set
,
sep_name
=
sep_name
)
# field_compare(order_individual_cus_info, ocr_res_dict, consts.BL_OCR_FIELD, consts.TCSEP, res_set)
sep_name
=
sep_name
,
capital_ignore
=
True
)
order_individual_cus_info_list
.
append
(
order_individual_cus_info
)
...
...
src/common/tools/comparison.py
View file @
174d200
...
...
@@ -109,7 +109,7 @@ class Comparison:
if
ocr_str
==
''
or
ocr_str
.
strip
()
==
''
:
return
self
.
RESULT_NA
,
None
try
:
ocr_lower
=
rmb_handler
.
to_rmb_lower
()
ocr_lower
=
rmb_handler
.
to_rmb_lower
(
ocr_str
)
res
=
self
.
build_res
(
float
(
input_str
)
==
ocr_lower
)
# input_rmb_upper = to_rmb_upper(float(input_str))
# res = self.build_res(input_rmb_upper == ocr_str)
...
...
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