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
a84f1276
authored
2021-09-07 17:52:09 +0800
by
周伟奇
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
fix se compare bug
1 parent
bbb1a4ad
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
29 additions
and
28 deletions
src/apps/doc/consts.py
src/celery_compare/tasks.py
src/apps/doc/consts.py
View file @
a84f127
...
...
@@ -1150,6 +1150,8 @@ COMPARE_FIELDS = (MVI_OCR_FIELD,
PP_OCR_FIELD
,
MVC_OCR_FIELD
,
DDA_OCR_FIELD
,
HMH_OCR_FIELD
,
JYPZ_OCR_FIELD
,
)
# 身份证
...
...
@@ -1466,7 +1468,7 @@ HMH_COMPARE_LOGIC = {
# MVC_OCR_FIELD = 'mvc_ocr'
SE_DETECT_CARD
=
[
UCI_EN
,
JYPZ_EN
,
HMH_EN
]
SE_DETECT_CARD
=
[
UCI_EN
,
JYPZ_EN
,
HMH_EN
,
DDA_EN
]
SE_COMPARE_FIELD
=
{
ID_EN
:
(
IC_OCR_FIELD
,
ID_COMPARE_LOGIC
,
True
),
...
...
src/celery_compare/tasks.py
View file @
a84f127
...
...
@@ -853,23 +853,24 @@ def get_se_compare_info(last_obj, application_entity, detect_list):
is_gsyh
=
False
bank_info
[
consts
.
BC_EN
]
=
bank_field_input
dda_field_input
=
[]
for
dda_field
in
consts
.
SE_DDA_FIELD
:
if
dda_field
.
startswith
(
'applicationId'
):
dda_field_input
.
append
((
dda_field
,
last_obj
.
application_id
))
elif
dda_field
==
'companyName'
:
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
,
dda_name
))
elif
dda_field
==
'idNum'
:
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
if
is_gsyh
or
not
detect_list
[
-
1
]:
dda_field_input
=
[]
for
dda_field
in
consts
.
SE_DDA_FIELD
:
if
dda_field
.
startswith
(
'applicationId'
):
dda_field_input
.
append
((
dda_field
,
last_obj
.
application_id
))
elif
dda_field
==
'companyName'
:
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
,
dda_name
))
elif
dda_field
==
'idNum'
:
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
compare_info
[
'bankInfo'
]
=
bank_info
if
not
detect_list
[
-
1
]:
if
not
detect_list
[
2
]:
other_info
=
{}
hmh_field_input
=
[]
hmh_field_input
.
append
((
consts
.
SE_HMH_FIELD
[
0
],
hmh_name
))
...
...
@@ -878,7 +879,7 @@ def get_se_compare_info(last_obj, application_entity, detect_list):
other_info
[
consts
.
HMH_EN
]
=
hmh_field_input
compare_info
[
'other'
]
=
other_info
return
compare_info
,
is_gsyh
return
compare_info
def
se_compare_license
(
license_en
,
ocr_res_dict
,
field_list
):
...
...
@@ -1007,7 +1008,7 @@ def se_mvc34_compare(license_en, ocr_res_dict, field_list):
return
result_field_list
def
se_compare_process
(
compare_info
,
ocr_res_dict
,
is_gsyh
):
def
se_compare_process
(
compare_info
,
ocr_res_dict
):
# individualCusInfo
# corporateCusInfo
# vehicleInfo
...
...
@@ -1053,16 +1054,14 @@ def se_compare_process(compare_info, ocr_res_dict, is_gsyh):
failure_field
=
[]
if
license_en
==
consts
.
MVC34_EN
:
result_field_list
=
se_mvc34_compare
(
license_en
,
ocr_res_dict
,
field_list
)
no_ocr_result
=
False
else
:
result_field_list
,
no_ocr_result
=
se_compare_license
(
license_en
,
ocr_res_dict
,
field_list
)
result_field_list
,
_
=
se_compare_license
(
license_en
,
ocr_res_dict
,
field_list
)
for
name
,
value
,
result
,
ocr_str
,
img_path
,
error_type
in
result_field_list
:
if
license_en
!=
consts
.
DDA_EN
or
not
no_ocr_result
or
is_gsyh
:
total_fields
+=
1
if
result
==
consts
.
RESULT_N
:
failed_count
+=
1
successful_at_this_level
=
False
failure_field
.
append
(
name
)
total_fields
+=
1
if
result
==
consts
.
RESULT_N
:
failed_count
+=
1
successful_at_this_level
=
False
failure_field
.
append
(
name
)
compare_result
.
append
(
{
consts
.
HEAD_LIST
[
0
]:
info_key
,
...
...
@@ -1099,9 +1098,9 @@ def se_compare(application_id, application_entity, ocr_res_id, last_obj, ocr_res
# 比对逻辑
start_time
=
datetime
.
now
()
detect_list
=
se_result_detect
(
ocr_res_dict
)
compare_info
,
is_gsyh
=
get_se_compare_info
(
last_obj
,
application_entity
,
detect_list
)
compare_info
=
get_se_compare_info
(
last_obj
,
application_entity
,
detect_list
)
compare_result
,
total_fields
,
failed_count
,
successful_at_this_level
,
failure_reason_str
=
se_compare_process
(
compare_info
,
ocr_res_dict
,
is_gsyh
)
compare_info
,
ocr_res_dict
)
compare_log
.
info
(
'{0} [SE] [compare success] [entity={1}] [id={2}] [ocr_res_id={3}] [result={4}]'
.
format
(
log_base
,
application_entity
,
application_id
,
ocr_res_id
,
compare_result
))
except
Exception
as
e
:
...
...
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