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
bf81e885
authored
2021-04-15 11:23:54 +0800
by
周伟奇
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
fix bug
1 parent
862a3a8c
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
35 additions
and
20 deletions
src/apps/doc/consts.py
src/celery_compare/tasks.py
src/common/tools/comparison.py
src/apps/doc/consts.py
View file @
bf81e88
...
...
@@ -1083,23 +1083,26 @@ ID_TYPE_COMPARE = {
'ITRES'
:
[
RP_OCR_FIELD
,
ITRES
],
}
ID_RES
=
'idNumResult'
SECOND_ID_RES
=
'secondIdNumResult'
SECOND_ITPRC
=
[
(
'secondIdNum'
,
'公民身份号码'
,
'common_compare'
,
{},
'secondIdNumResult'
),
(
'secondIdNum'
,
'公民身份号码'
,
'common_compare'
,
{},
SECOND_ID_RES
),
]
# 护照
SECOND_ITPSP
=
[
(
'secondIdNum'
,
'护照号码'
,
'common_compare'
,
{},
'secondIdNumResult'
),
(
'secondIdNum'
,
'护照号码'
,
'common_compare'
,
{},
SECOND_ID_RES
),
]
# 港澳台通行证
SECOND_ITHKM_ITTID
=
[
(
'secondIdNum'
,
'证件号码'
,
'common_compare'
,
{},
'secondIdNumResult'
),
(
'secondIdNum'
,
'证件号码'
,
'common_compare'
,
{},
SECOND_ID_RES
),
]
# 居住证
SECOND_ITRES
=
[
(
'secondIdNum'
,
'公民身份号码'
,
'common_compare'
,
{},
'secondIdNumResult'
),
(
'secondIdNum'
,
'公民身份号码'
,
'common_compare'
,
{},
SECOND_ID_RES
),
]
SECOND_ID_TYPE_COMPARE
=
{
...
...
@@ -1128,7 +1131,7 @@ PCUSD_DL = [
# 营业执照
TCCOR
=
[
(
'customerChineseName'
,
'企业名称'
,
'com
mon
_compare'
,
{},
'customerChinessNameResult'
),
(
'customerChineseName'
,
'企业名称'
,
'com
pany
_compare'
,
{},
'customerChinessNameResult'
),
(
'legalRepName'
,
'经营者姓名'
,
'name_compare'
,
{},
'legalRepNameResult'
),
(
'idNum'
,
'注册号'
,
'common_compare'
,
{},
'idNumResult'
),
(
'businessLicenseNo'
,
'注册号'
,
'common_compare'
,
{},
'businessLicenseNoResult'
),
...
...
@@ -1140,7 +1143,7 @@ TCCOR = [
]
TCSEP
=
[
(
'companyName'
,
'企业名称'
,
'com
mon
_compare'
,
{},
'companyNameResult'
),
(
'companyName'
,
'企业名称'
,
'com
pany
_compare'
,
{},
'companyNameResult'
),
(
'registeredCapital'
,
'注册资本'
,
'rmb_compare'
,
{},
'registeredCapitalResult'
),
# 壹拾万元整 将OCR识别结果(人民币大写)转化为数字
(
'selfEmployedSubType'
,
'企业类型'
,
'type_compare'
,
{},
'selfEmployedSubTypeResult'
)
# 有限责任公司
]
...
...
src/celery_compare/tasks.py
View file @
bf81e88
...
...
@@ -150,16 +150,22 @@ def compare(application_id, application_entity, uniq_seq, ocr_res_id):
# 个人信息证件
id_type
=
order_individual_cus_info
.
get
(
'idType'
)
compare_info_list
=
consts
.
ID_TYPE_COMPARE
.
get
(
id_type
)
if
compare_info_list
is
None
:
continue
field_compare
(
order_individual_cus_info
,
ocr_res_dict
,
compare_info_list
[
0
],
compare_info_list
[
1
],
res_set
)
if
compare_info_list
is
not
None
:
field_compare
(
order_individual_cus_info
,
ocr_res_dict
,
compare_info_list
[
0
],
compare_info_list
[
1
],
res_set
)
# 第二证件
second_id_type
=
order_individual_cus_info
.
get
(
'secondIdType'
)
second_compare_info_list
=
consts
.
SECOND_ID_TYPE_COMPARE
.
get
(
second_id_type
)
if
second_compare_info_list
is
None
:
continue
field_compare
(
order_individual_cus_info
,
ocr_res_dict
,
second_compare_info_list
[
0
],
second_compare_info_list
[
1
],
res_set
)
if
second_compare_info_list
is
not
None
:
field_compare
(
order_individual_cus_info
,
ocr_res_dict
,
second_compare_info_list
[
0
],
second_compare_info_list
[
1
],
res_set
)
# 重新排列
new_dict
=
OrderedDict
({})
second_id_res
=
order_individual_cus_info
.
pop
(
consts
.
SECOND_ID_RES
,
consts
.
RESULT_NA
)
for
key
,
value
in
order_individual_cus_info
.
items
():
new_dict
[
key
]
=
value
if
key
==
consts
.
ID_RES
:
new_dict
[
consts
.
SECOND_ID_RES
]
=
second_id_res
order_individual_cus_info
=
new_dict
# sep营业执照
if
order_individual_cus_info
.
get
(
'customerType'
)
==
consts
.
CUSTOMER_TYPE
[
5
]:
...
...
src/common/tools/comparison.py
View file @
bf81e88
...
...
@@ -27,6 +27,7 @@ class Comparison:
'·'
:
''
,
}
self
.
TRANS
=
str
.
maketrans
(
self
.
TRANS_MAP
)
self
.
re_obj
=
r'[(\(].*?[\))]'
def
build_res
(
self
,
result
):
if
result
:
...
...
@@ -41,22 +42,27 @@ class Comparison:
return
self
.
RESULT_NA
,
ocr_str
return
self
.
build_res
(
input_str
==
ocr_str
),
ocr_str
def
company_compare
(
self
,
input_str
,
ocr_str
,
idx
,
**
kwargs
):
if
ocr_str
==
''
:
return
self
.
RESULT_NA
,
None
if
not
isinstance
(
input_str
,
str
)
or
not
isinstance
(
ocr_str
,
str
):
return
self
.
RESULT_NA
,
ocr_str
input_tmp
=
re
.
sub
(
self
.
re_obj
,
''
,
input_str
)
.
strip
()
ocr_tmp
=
re
.
sub
(
self
.
re_obj
,
''
,
ocr_str
)
.
strip
()
return
self
.
build_res
(
input_tmp
==
ocr_tmp
),
ocr_str
def
name_compare
(
self
,
input_str
,
ocr_str
,
idx
,
**
kwargs
):
if
ocr_str
==
''
:
return
self
.
RESULT_NA
,
None
if
not
isinstance
(
input_str
,
str
)
or
not
isinstance
(
ocr_str
,
str
):
return
self
.
RESULT_NA
,
ocr_str
if
kwargs
.
get
(
'is_passport'
):
input_obj
=
re
.
search
(
r'[a-zA-Z]]!'
,
input_str
)
if
input_obj
:
input_s
=
input_obj
.
group
()
ocr_obj
=
re
.
search
(
r'[a-zA-Z]]!'
,
ocr_str
)
if
ocr_obj
:
ocr_s
=
ocr_obj
.
group
()
return
self
.
build_res
(
input_s
==
ocr_s
),
ocr_str
input_tmp
=
input_str
.
upper
()
.
replace
(
' '
,
''
)
ocr_tmp
=
ocr_str
.
upper
()
.
replace
(
' '
,
''
)
if
input_tmp
.
find
(
ocr_tmp
)
==
-
1
:
return
self
.
RESULT_N
,
ocr_str
else
:
return
self
.
build_res
((
input_str
==
ocr_str
))
,
ocr_str
return
self
.
RESULT_Y
,
ocr_str
else
:
if
re
.
search
(
r'[a-zA-Z]]'
,
input_str
):
return
self
.
RESULT_NA
,
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