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
498bf14e
authored
2024-02-27 17:57:02 +0800
by
冯轩
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
MOD:核查点区分是否添加见证人字段
1 parent
2a03b2a7
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
25 additions
and
16 deletions
src/apps/doc/mixins.py
src/celery_compare/tasks.py
src/prese/compare.py
src/apps/doc/mixins.py
View file @
498bf14
...
...
@@ -158,6 +158,13 @@ class PreSEHandler:
result_class
=
HILSEOCRResult
if
application_entity
in
consts
.
HIL_SET
else
AFCSEOCRResult
ca_result_class
=
HILOCRResult
if
application_entity
in
consts
.
HIL_SET
else
AFCOCRResult
data_source
=
''
if
application_entity
==
consts
.
AFC_PREFIX
:
doc_obj
=
AFCDoc
.
objects
.
filter
(
application_id
=
application_id
,
document_name__icontains
=
'电子签署-车辆抵押贷款合同'
)
.
last
()
data_source
=
doc_obj
.
data_source
LoggerMixin
.
running_log
.
info
(
'[pre get data_source] [id={0}] [data_source={1}]]'
.
format
(
application_id
,
data_source
))
ca_ocr_res_dict
=
ca_result_class
.
objects
.
filter
(
application_id
=
application_id
)
.
values
(
*
consts
.
CA_ADD_COMPARE_FIELDS_PRE
)
.
first
()
ocr_res_dict
=
result_class
.
objects
.
filter
(
application_id
=
application_id
)
.
values
(
...
...
@@ -171,7 +178,7 @@ class PreSEHandler:
id_res_list
.
append
(
ca_ocr_res_dict
.
get
(
field_name
)
if
isinstance
(
ca_ocr_res_dict
,
dict
)
else
None
)
id_res_list
.
append
(
ocr_res_dict
.
get
(
field_name
))
rebuild_compare_result
=
pre_compare
(
pos_content
,
ocr_res_dict
,
id_res_list
)
rebuild_compare_result
=
pre_compare
(
pos_content
,
ocr_res_dict
,
id_res_list
,
data_source
)
return
rebuild_compare_result
...
...
src/celery_compare/tasks.py
View file @
498bf14
...
...
@@ -900,7 +900,7 @@ def ca_compare(application_id, application_entity, ocr_res_id, last_obj, ocr_res
traceback
.
format_exc
()))
def
get_se_cms_compare_info_auto
(
last_obj
,
application_entity
,
auto
=
True
,
ignore_bank
=
False
):
def
get_se_cms_compare_info_auto
(
last_obj
,
application_entity
,
data_source
,
auto
=
True
,
ignore_bank
=
False
):
cms_info
=
json
.
loads
(
last_obj
.
content
)
compare_info
=
{}
...
...
@@ -1440,7 +1440,7 @@ def get_se_cms_compare_info_auto(last_obj, application_entity, auto=True, ignore
if
not
is_find
and
is_force
:
afc_contract_input
.
append
((
key
,
empty_str
))
if
online_sign
:
if
online_sign
and
data_source
==
'ECONTRACT'
:
afc_contract_input
.
append
((
consts
.
SE_AFC_CON_FIELD
[
18
],
consts
.
SE_STAMP_VALUE
))
afc_contract_input
.
append
((
consts
.
SE_AFC_CON_FIELD
[
19
],
empty_str
))
...
...
@@ -1453,7 +1453,7 @@ def get_se_cms_compare_info_auto(last_obj, application_entity, auto=True, ignore
return
compare_info
,
cms_info
.
get
(
'autoApprovedDetails'
,
{})
.
get
(
'aaType'
,
''
),
is_gsyh
def
get_se_cms_compare_info
(
last_obj
,
application_entity
,
detect_list
,
auto
=
False
,
ignore_bank
=
False
):
def
get_se_cms_compare_info
(
last_obj
,
application_entity
,
detect_list
,
data_source
,
auto
=
False
,
ignore_bank
=
False
):
cms_info
=
json
.
loads
(
last_obj
.
content
)
compare_info
=
{}
...
...
@@ -1989,7 +1989,7 @@ def get_se_cms_compare_info(last_obj, application_entity, detect_list, auto=Fals
if
not
is_find
and
is_force
:
afc_contract_input
.
append
((
key
,
empty_str
))
if
online_sign
:
if
online_sign
and
data_source
==
'ECONTRACT'
:
afc_contract_input
.
append
((
consts
.
SE_AFC_CON_FIELD
[
18
],
consts
.
SE_STAMP_VALUE
))
afc_contract_input
.
append
((
consts
.
SE_AFC_CON_FIELD
[
19
],
empty_str
))
...
...
@@ -3120,13 +3120,13 @@ def se_result_detect(ocr_res_dict):
return
detect_list
def
se_compare_auto
(
application_id
,
application_entity
,
ocr_res_id
,
last_obj
,
ocr_res_dict
,
auto_obj
,
ignore_bank
,
id_res_list
):
def
se_compare_auto
(
application_id
,
application_entity
,
ocr_res_id
,
last_obj
,
ocr_res_dict
,
auto_obj
,
ignore_bank
,
id_res_list
,
data_source
):
start_time
=
datetime
.
now
()
try
:
# 比对逻辑
# detect_list = se_result_detect(ocr_res_dict)
compare_info
,
aa_type
,
is_gsyh
=
get_se_cms_compare_info_auto
(
last_obj
,
application_entity
,
ignore_bank
=
ignore_bank
)
last_obj
,
application_entity
,
data_source
,
ignore_bank
=
ignore_bank
)
compare_result
,
total_fields
,
failed_count
,
successful_at_this_level
,
failure_reason_str
,
\
cn_failure_reason_str
,
bs_failure_reason_str
,
_
,
field_result_dict
=
se_compare_process
(
compare_info
,
ocr_res_dict
,
is_gsyh
,
True
,
id_res_list
,
aa_type
)
...
...
@@ -3187,13 +3187,13 @@ def se_compare_auto(application_id, application_entity, ocr_res_id, last_obj, oc
def
se_compare
(
application_id
,
application_entity
,
ocr_res_id
,
last_obj
,
ocr_res_dict
,
is_cms
,
auto_result
,
ignore_bank
,
id_res_list
):
auto_result
,
ignore_bank
,
id_res_list
,
data_source
):
try
:
# 比对逻辑
start_time
=
datetime
.
now
()
detect_list
=
se_result_detect
(
ocr_res_dict
)
compare_info
,
application_version
,
aa_type
,
is_gsyh
=
get_se_cms_compare_info
(
last_obj
,
application_entity
,
detect_list
,
ignore_bank
=
ignore_bank
)
last_obj
,
application_entity
,
detect_list
,
data_source
,
ignore_bank
=
ignore_bank
)
compare_result
,
total_fields
,
failed_count
,
successful_at_this_level
,
failure_reason_str
,
\
cn_failure_reason_str
,
bs_failure_reason_str
,
rpa_failure_reason
,
field_result_dict
=
se_compare_process
(
compare_info
,
ocr_res_dict
,
is_gsyh
,
False
,
id_res_list
,
aa_type
)
...
...
@@ -3429,16 +3429,16 @@ def compare(application_id, application_entity, uniq_seq, ocr_res_id, is_ca=True
ignore_bank
=
bank_class
.
objects
.
filter
(
application_id
=
application_id
,
on_off
=
True
)
.
exists
()
data_source
=
''
if
application_entity
==
consts
.
AFC_PREFIX
:
doc_obj
=
AFCDoc
.
objects
.
filter
(
application_id
=
application_id
,
d
ata_source__icontains
=
'电子签署-车辆抵押贷款合同'
)
.
late
st
()
doc_obj
=
AFCDoc
.
objects
.
filter
(
application_id
=
application_id
,
d
ocument_name__icontains
=
'电子签署-车辆抵押贷款合同'
)
.
la
st
()
data_source
=
doc_obj
.
data_source
compare_log
.
info
(
'{0} [
Auto SE] [
get data_source] [id={1}] [data_source={2}]]'
.
format
(
compare_log
.
info
(
'{0} [get data_source] [id={1}] [data_source={2}]]'
.
format
(
log_base
,
application_id
,
data_source
))
if
auto_obj
is
not
None
:
auto_result
=
se_compare_auto
(
application_id
,
application_entity
,
ocr_res_id
,
last_obj
,
ocr_res_dict
,
auto_obj
,
ignore_bank
,
id_res_list
)
auto_result
=
se_compare_auto
(
application_id
,
application_entity
,
ocr_res_id
,
last_obj
,
ocr_res_dict
,
auto_obj
,
ignore_bank
,
id_res_list
,
data_source
)
else
:
auto_result
=
None
full_result
=
se_compare
(
application_id
,
application_entity
,
ocr_res_id
,
last_obj
,
ocr_res_dict
,
is_cms
,
auto_result
,
ignore_bank
,
id_res_list
)
full_result
=
se_compare
(
application_id
,
application_entity
,
ocr_res_id
,
last_obj
,
ocr_res_dict
,
is_cms
,
auto_result
,
ignore_bank
,
id_res_list
,
data_source
)
if
auto_obj
is
not
None
:
try
:
...
...
src/prese/compare.py
View file @
498bf14
...
...
@@ -6,7 +6,7 @@ from common.tools.comparison import cp
empty_str
=
''
def
get_pos_compare_info
(
pos_info
):
def
get_pos_compare_info
(
pos_info
,
data_source
):
compare_info
=
{}
application_entity
=
pos_info
.
get
(
'applicationEntity'
,
'AFC'
)
...
...
@@ -175,8 +175,10 @@ def get_pos_compare_info(pos_info):
afc_contract_input
.
append
((
consts
.
AFC_CON_FIELDS
[
8
],
asp_list
))
afc_contract_input
.
append
((
consts
.
AFC_CON_FIELDS
[
9
],
asp_list
))
if
data_source
==
'ECONTRACT'
:
afc_contract_input
.
append
((
consts
.
AFC_CON_FIELDS
[
10
],
consts
.
HAVE_CN
))
afc_contract_input
.
append
((
consts
.
AFC_CON_FIELDS
[
11
],
empty_str
))
compare_info
.
setdefault
(
consts
.
AFC_CONTRACT_EN
,
[])
.
append
(
afc_contract_input
)
afc_contract_qrs_input
=
[(
consts
.
AFC_CON_QRS_FIELDS
[
0
],
'{0}{1}{2}'
.
format
(
role_count
,
consts
.
SPLIT_STR
,
application_id_version
))]
...
...
@@ -463,8 +465,8 @@ def rebuild_result(compare_result):
return
rebuild_compare_result
def
pre_compare
(
pos_info
,
ocr_res_dict
,
id_res_list
):
compare_info
=
get_pos_compare_info
(
pos_info
)
def
pre_compare
(
pos_info
,
ocr_res_dict
,
id_res_list
,
data_source
):
compare_info
=
get_pos_compare_info
(
pos_info
,
data_source
)
compare_result
=
pre_compare_process
(
compare_info
,
ocr_res_dict
,
id_res_list
)
rebuild_compare_result
=
rebuild_result
(
compare_result
)
return
rebuild_compare_result
...
...
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