4c67581e by 周伟奇

fix HIL clzlht

1 parent ca883d6b
......@@ -51,6 +51,7 @@ class Finder:
"合同编号(正文)": self.item,
"车辆识别代码": self.item,
"车辆卖方(经销商)": self.item,
"车辆代理商": self.item,
"车辆原始销售价格(《机动车销售统一发票》所列金额)": self.item,
"车辆附加产品明细表": self.item,
"融资成本总额": self.item,
......@@ -696,11 +697,13 @@ class Finder:
signature_name['position'] = bbox
return signature_name, signature_date
def get_electronic_signature(self, top, bottom):
def get_electronic_signature(self, top, bottom, t_pno=None):
signature = self.item.copy()
anchor_top = None
anchor_bottom = None
for pno in self.pdf_info:
if t_pno is not None and pno != t_pno:
continue
for block in self.pdf_info[pno]['blocks']:
if block['type'] != 0:
continue
......@@ -709,10 +712,15 @@ class Finder:
bbox, text = span['bbox'], span['text']
if top in text:
anchor_top = bbox[1]
if bottom in text:
elif bottom in text and anchor_top is not None and bbox[3] > anchor_top:
anchor_bottom = bbox[3]
if anchor_top is not None and anchor_bottom is not None:
# print('in')
# print(anchor_top)
# print(anchor_bottom)
for pno in self.pdf_info:
if t_pno is not None and pno != t_pno:
continue
for block in self.pdf_info[pno]['blocks']:
if block['type'] != 0:
continue
......@@ -1005,7 +1013,7 @@ class Finder:
words = text.split(':')[-1]
_id['position'] = bbox
_id['page'] = pno
_id['words'] = words
_id['words'] = words.strip()
return name, _id
def get_key_value_position(self, key):
......@@ -1243,6 +1251,9 @@ class Finder:
if seller['words'] == None:
seller = self.get_key_value(key='车辆卖方:')
self.init_result['车辆卖方(经销商)'] = seller
# 找到车辆代理商
cldls = self.get_key_value(key='车辆代理商', page_num='4')
self.init_result['车辆代理商'] = cldls
# 找到 —— 车辆原始销售价格
vehicle_price = self.get_key_value(key='车辆原始销售价格(《机动车销售统一发票》所列金额):')
self.init_result['车辆原始销售价格(《机动车销售统一发票》所列金额)'] = vehicle_price
......@@ -1264,7 +1275,7 @@ class Finder:
account = self.get_key_value(key='银行账号:', page_num='4')
self.init_result['收款银行账户-银行账号'] = account
bank = self.get_key_value(key='开户银行:', page_num='4')
self.init_result['承租人收款账户-开户行'] = bank
self.init_result['收款银行账户-开户行'] = bank
# 找承租人扣款账户户名、银行账号、银行
name = self.get_key_value(key='户名:', page_num='5')
self.init_result['银行账户-户名'] = name
......@@ -1277,65 +1288,65 @@ class Finder:
# 承租人姓名、签章
if is_cdfl == False:
name = self.get_key_value(key='承租人姓名:')
electronic_signature = self.get_electronic_signature(top='承租人姓名:', bottom='保证人1姓名:')
electronic_signature = self.get_electronic_signature(top='承租人姓名:', bottom='保证人1姓名:', t_pno='5')
if name["words"] == None:
name = self.get_key_value(key='承租人一姓名:')
electronic_signature = self.get_electronic_signature(top='承租人一姓名:', bottom='共同承租人名称:')
electronic_signature = self.get_electronic_signature(top='承租人一姓名:', bottom='共同承租人名称:', t_pno='5')
self.init_result['签字页-承租人姓名'] = name
self.init_result['签字页-承租人签章'] = electronic_signature
# 保证人1姓名、签章
name = self.get_key_value(key='保证人1姓名:')
electronic_signature = self.get_electronic_signature(top='保证人1姓名:', bottom='保证人2姓名:')
electronic_signature = self.get_electronic_signature(top='保证人1姓名:', bottom='保证人2姓名:', t_pno='5')
self.init_result['签字页-保证人1姓名'] = name
self.init_result['签字页-保证人1签章'] = electronic_signature
# 这里用的是 name["words"] == ""
if name["words"] == "":
name = self.get_key_value(key='共同承租人名称:')
electronic_signature = self.get_electronic_signature(top='共同承租人名称:', bottom='保证人1姓名:')
electronic_signature = self.get_electronic_signature(top='共同承租人名称:', bottom='保证人1姓名:', t_pno='5')
self.init_result['签字页-共同承租人姓名'] = name
self.init_result['签字页-共同承租人签章'] = electronic_signature
# 保证人2姓名、签章
name = self.get_key_value(key='保证人2姓名:')
electronic_signature = self.get_electronic_signature(top='保证人2姓名:', bottom='保证人3姓名:')
electronic_signature = self.get_electronic_signature(top='保证人2姓名:', bottom='保证人3姓名:', t_pno='5')
self.init_result['签字页-保证人2姓名'] = name
self.init_result['签字页-保证人2签章'] = electronic_signature
# if判断条件对应3_3版本
if name["words"] == "":
name = self.get_key_value(key='保证人1姓名:')
electronic_signature = self.get_electronic_signature(top='保证人1姓名:', bottom='保证人2姓名:')
electronic_signature = self.get_electronic_signature(top='保证人1姓名:', bottom='保证人2姓名:', t_pno='5')
self.init_result['签字页-保证人1姓名'] = name
self.init_result['签字页-保证人1签章'] = electronic_signature
# 保证人3姓名、签章
name = self.get_key_value(key='保证人3姓名:')
electronic_signature = self.get_electronic_signature(top='保证人3姓名:', bottom='日期:')
electronic_signature = self.get_electronic_signature(top='保证人3姓名:', bottom='日期:', t_pno='5')
self.init_result['签字页-保证人3姓名'] = name
self.init_result['签字页-保证人3签章'] = electronic_signature
# if判断条件对应3_3版本
if name["words"] == None:
name = self.get_key_value(key='保证人2姓名:')
electronic_signature = self.get_electronic_signature(top='保证人2姓名:', bottom='日期:')
electronic_signature = self.get_electronic_signature(top='保证人2姓名:', bottom='日期:', t_pno='5')
self.init_result['签字页-保证人2姓名'] = name
self.init_result['签字页-保证人2签章'] = electronic_signature
else:
name = self.get_key_value(key='承租人一姓名:')
electronic_signature = self.get_electronic_signature(top='承租人一姓名:', bottom='共同承租人名称:')
electronic_signature = self.get_electronic_signature(top='承租人一姓名:', bottom='共同承租人名称:', t_pno='5')
self.init_result['签字页-承租人姓名'] = name
self.init_result['签字页-承租人签章'] = electronic_signature
name = self.get_key_value(key='共同承租人名称:')
electronic_signature = self.get_electronic_signature(top='共同承租人名称:', bottom='保证人1姓名:')
electronic_signature = self.get_electronic_signature(top='共同承租人名称:', bottom='保证人1姓名:', t_pno='5')
self.init_result['签字页-共同承租人姓名'] = name
self.init_result['签字页-共同承租人签章'] = electronic_signature
name = self.get_key_value(key='保证人1姓名:')
electronic_signature = self.get_electronic_signature(top='保证人1姓名:', bottom='保证人2姓名:')
electronic_signature = self.get_electronic_signature(top='保证人1姓名:', bottom='保证人2姓名:', t_pno='5')
self.init_result['签字页-保证人1姓名'] = name
self.init_result['签字页-保证人1签章'] = electronic_signature
name = self.get_key_value(key='保证人2姓名:')
electronic_signature = self.get_electronic_signature(top='保证人2姓名:', bottom='保证人3姓名:')
electronic_signature = self.get_electronic_signature(top='保证人2姓名:', bottom='保证人3姓名:', t_pno='5')
self.init_result['签字页-保证人2姓名'] = name
self.init_result['签字页-保证人2签章'] = electronic_signature
......@@ -1404,12 +1415,12 @@ class Finder:
self.init_result_2['融资租赁期限'] = lease_term
# 签字页抵押人姓名和签章
name = self.get_key_value(key='抵押人姓名:')
electronic_signature = self.get_electronic_signature(top='抵押权人盖章', bottom='抵押人配偶姓名:')
electronic_signature = self.get_electronic_signature(top='抵押权人盖章', bottom='抵押人配偶姓名:', t_pno='1')
self.init_result_2['签字页-抵押人姓名'] = name
self.init_result_2['签字页-抵押人签章'] = electronic_signature
# 签字页抵押人配偶姓名和签章
name = self.get_key_value(key='抵押人配偶姓名:')
electronic_signature = self.get_electronic_signature(top='抵押人配偶姓名:', bottom='日期')
electronic_signature = self.get_electronic_signature(top='抵押人配偶姓名:', bottom='日期', t_pno='1')
self.init_result_2['签字页-抵押人配偶姓名'] = name
self.init_result_2['签字页-抵押人配偶签章'] = electronic_signature
return self.init_result_2
\ No newline at end of file
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!