7f868e1c by 周伟奇

contract cdfl

1 parent 4d0b881c
...@@ -774,6 +774,9 @@ class Finder: ...@@ -774,6 +774,9 @@ class Finder:
774 # 这是为了同时兼容 8.1 版本 774 # 这是为了同时兼容 8.1 版本
775 if borrower_name['words'] == None: 775 if borrower_name['words'] == None:
776 borrower_name, borrower_id = self.get_somebody(top='借款人及抵押人:', bottom='共同借款人及共同抵押人:') 776 borrower_name, borrower_id = self.get_somebody(top='借款人及抵押人:', bottom='共同借款人及共同抵押人:')
777 # 这是为了兼容车贷分离版本
778 if borrower_name['words'] == None:
779 borrower_name, borrower_id = self.get_somebody(top='借款人:', bottom='共同借款人及抵押人:')
777 self.init_result['page_2']['借款人及抵押人']['name'] = borrower_name 780 self.init_result['page_2']['借款人及抵押人']['name'] = borrower_name
778 self.init_result['page_2']['借款人及抵押人']['id'] = borrower_id 781 self.init_result['page_2']['借款人及抵押人']['id'] = borrower_id
779 # 找共同借款人及共同抵押人 782 # 找共同借款人及共同抵押人
...@@ -852,10 +855,16 @@ class Finder: ...@@ -852,10 +855,16 @@ class Finder:
852 self.init_result['page_7']['合同编号'] = contract_no 855 self.init_result['page_7']['合同编号'] = contract_no
853 signature_name, signature_date = self.get_last_page_signature(page_num='6', 856 signature_name, signature_date = self.get_last_page_signature(page_num='6',
854 top='合同编号', bottom='共同借款人') 857 top='合同编号', bottom='共同借款人')
858 if signature_name['words'] == None:
859 signature_name, signature_date = self.get_last_page_signature(page_num='6',
860 top='合同编号', bottom='共同借款人(抵押人)')
855 self.init_result['page_7']['主借人签字']['签字'] = signature_name 861 self.init_result['page_7']['主借人签字']['签字'] = signature_name
856 self.init_result['page_7']['主借人签字']['日期'] = signature_date 862 self.init_result['page_7']['主借人签字']['日期'] = signature_date
857 signature_name, signature_date = self.get_last_page_signature(page_num='6', 863 signature_name, signature_date = self.get_last_page_signature(page_num='6',
858 top='共同借款人', bottom='保证人1') 864 top='共同借款人', bottom='保证人1')
865 if signature_name['words'] == None:
866 signature_name, signature_date = self.get_last_page_signature(page_num='6',
867 top='共同借款人(抵押人)', bottom='保证人1')
859 self.init_result['page_7']['共借人签字']['签字'] = signature_name 868 self.init_result['page_7']['共借人签字']['签字'] = signature_name
860 self.init_result['page_7']['共借人签字']['日期'] = signature_date 869 self.init_result['page_7']['共借人签字']['日期'] = signature_date
861 signature_name, signature_date = self.get_last_page_signature(page_num='6', 870 signature_name, signature_date = self.get_last_page_signature(page_num='6',
...@@ -881,10 +890,16 @@ class Finder: ...@@ -881,10 +890,16 @@ class Finder:
881 self.init_result['page_8']['合同编号'] = contract_no 890 self.init_result['page_8']['合同编号'] = contract_no
882 signature_name, signature_date = self.get_last_page_signature(page_num='7', 891 signature_name, signature_date = self.get_last_page_signature(page_num='7',
883 top='合同编号', bottom='共同借款人') 892 top='合同编号', bottom='共同借款人')
893 if signature_name['words'] == None:
894 signature_name, signature_date = self.get_last_page_signature(page_num='7',
895 top='合同编号', bottom='共同借款人(抵押人)')
884 self.init_result['page_8']['主借人签字']['签字'] = signature_name 896 self.init_result['page_8']['主借人签字']['签字'] = signature_name
885 self.init_result['page_8']['主借人签字']['日期'] = signature_date 897 self.init_result['page_8']['主借人签字']['日期'] = signature_date
886 signature_name, signature_date = self.get_last_page_signature(page_num='7', 898 signature_name, signature_date = self.get_last_page_signature(page_num='7',
887 top='共同借款人', bottom='保证人1') 899 top='共同借款人', bottom='保证人1')
900 if signature_name['words'] == None:
901 signature_name, signature_date = self.get_last_page_signature(page_num='7',
902 top='共同借款人(抵押人)', bottom='保证人1')
888 self.init_result['page_8']['共借人签字']['签字'] = signature_name 903 self.init_result['page_8']['共借人签字']['签字'] = signature_name
889 self.init_result['page_8']['共借人签字']['日期'] = signature_date 904 self.init_result['page_8']['共借人签字']['日期'] = signature_date
890 signature_name, signature_date = self.get_last_page_signature(page_num='7', 905 signature_name, signature_date = self.get_last_page_signature(page_num='7',
......
...@@ -847,7 +847,7 @@ class Finder: ...@@ -847,7 +847,7 @@ class Finder:
847 for i in range(5): 847 for i in range(5):
848 for span in ocr_results: 848 for span in ocr_results:
849 iou = caculate_iou(anchor, span[0]) 849 iou = caculate_iou(anchor, span[0])
850 if iou > 0 and span[1].strip() != '所购': 850 if iou > 0.01 and span[1].strip() != '所购':
851 x = get_table_info(span[0], ocr_results[key_gmjg][0], ocr_results) 851 x = get_table_info(span[0], ocr_results[key_gmjg][0], ocr_results)
852 y = get_table_info(span[0], ocr_results[key_sjrzje][0], ocr_results) 852 y = get_table_info(span[0], ocr_results[key_sjrzje][0], ocr_results)
853 line = [span[1].replace('\u3000', ' '), x, y] 853 line = [span[1].replace('\u3000', ' '), x, y]
...@@ -1088,6 +1088,17 @@ class Finder: ...@@ -1088,6 +1088,17 @@ class Finder:
1088 # 取 Page 1 上的合同编号 1088 # 取 Page 1 上的合同编号
1089 contract_no = self.get_contract_no(page_num='0') 1089 contract_no = self.get_contract_no(page_num='0')
1090 self.init_result['合同编号'] = contract_no 1090 self.init_result['合同编号'] = contract_no
1091 # 粗略判断是否是 ‘车贷分离版本’ 的合同
1092 is_cdfl = False
1093 for block in self.pdf_info['0']['blocks']:
1094 if block['type'] != 0:
1095 continue
1096 for line in block['lines']:
1097 for span in line['spans']:
1098 bbox, text = span['bbox'], span['text']
1099 if '共同承租人:' in text:
1100 is_cdfl = True
1101 if is_cdfl == False:
1091 # 从第一页上取四个角色的姓名和证件号码 1102 # 从第一页上取四个角色的姓名和证件号码
1092 name, id_num, representative = self.get_role_info(role_key='承租人:', page_num='0') 1103 name, id_num, representative = self.get_role_info(role_key='承租人:', page_num='0')
1093 if name["words"] == None: 1104 if name["words"] == None:
...@@ -1124,6 +1135,23 @@ class Finder: ...@@ -1124,6 +1135,23 @@ class Finder:
1124 self.init_result['保证人3-姓名'] = name 1135 self.init_result['保证人3-姓名'] = name
1125 self.init_result['保证人3-证件号码'] = id_num 1136 self.init_result['保证人3-证件号码'] = id_num
1126 self.init_result['保证人3-法定代表人或授权代表'] = representative 1137 self.init_result['保证人3-法定代表人或授权代表'] = representative
1138 else:
1139 name, id_num, representative = self.get_role_info_3_3(role_key='承租人一:', page_num='0')
1140 self.init_result['承租人-姓名'] = name
1141 self.init_result['承租人-证件号码'] = id_num
1142 self.init_result['承租人-法定代表人或授权代表'] = representative
1143 name, id_num, representative = self.get_role_info_3_3(role_key='共同承租人:', page_num='0')
1144 self.init_result['共同承租人-姓名'] = name
1145 self.init_result['共同承租人-证件号码'] = id_num
1146 self.init_result['共同承租人-法定代表人或授权代表'] = representative
1147 name, id_num, representative = self.get_role_info_3_3(role_key='保证人1:', page_num='0')
1148 self.init_result['保证人1-姓名'] = name
1149 self.init_result['保证人1-证件号码'] = id_num
1150 self.init_result['保证人1-法定代表人或授权代表'] = representative
1151 name, id_num, representative = self.get_role_info_3_3(role_key='保证人2:', page_num='0')
1152 self.init_result['保证人2-姓名'] = name
1153 self.init_result['保证人2-证件号码'] = id_num
1154 self.init_result['保证人2-法定代表人或授权代表'] = representative
1127 # 在所有页面中找正文中(第二部分 融资租赁主要条款及付款计划)的那个编号,因为存在换行的情况所以暂时不带位置输出 1155 # 在所有页面中找正文中(第二部分 融资租赁主要条款及付款计划)的那个编号,因为存在换行的情况所以暂时不带位置输出
1128 contract_no = self.get_contract_no_one() 1156 contract_no = self.get_contract_no_one()
1129 self.init_result['合同编号(正文)'] = contract_no 1157 self.init_result['合同编号(正文)'] = contract_no
...@@ -1157,6 +1185,7 @@ class Finder: ...@@ -1157,6 +1185,7 @@ class Finder:
1157 self.init_result['银行账户-开户行'] = bank 1185 self.init_result['银行账户-开户行'] = bank
1158 # 找签字页上的系列信息 1186 # 找签字页上的系列信息
1159 # 承租人姓名、签章 1187 # 承租人姓名、签章
1188 if is_cdfl == False:
1160 name = self.get_key_value(key='承租人姓名:') 1189 name = self.get_key_value(key='承租人姓名:')
1161 electronic_signature = self.get_electronic_signature(top='承租人姓名:', bottom='保证人1姓名:') 1190 electronic_signature = self.get_electronic_signature(top='承租人姓名:', bottom='保证人1姓名:')
1162 if name["words"] == None: 1191 if name["words"] == None:
...@@ -1197,11 +1226,24 @@ class Finder: ...@@ -1197,11 +1226,24 @@ class Finder:
1197 electronic_signature = self.get_electronic_signature(top='保证人2姓名:', bottom='日期:') 1226 electronic_signature = self.get_electronic_signature(top='保证人2姓名:', bottom='日期:')
1198 self.init_result['签字页-保证人2姓名'] = name 1227 self.init_result['签字页-保证人2姓名'] = name
1199 self.init_result['签字页-保证人2签章'] = electronic_signature 1228 self.init_result['签字页-保证人2签章'] = electronic_signature
1229 else:
1230 name = self.get_key_value(key='承租人一姓名:')
1231 electronic_signature = self.get_electronic_signature(top='承租人一姓名:', bottom='共同承租人名称:')
1232 self.init_result['签字页-承租人姓名'] = name
1233 self.init_result['签字页-承租人签章'] = electronic_signature
1234 name = self.get_key_value(key='共同承租人名称:')
1235 electronic_signature = self.get_electronic_signature(top='共同承租人名称:', bottom='保证人1姓名:')
1236 self.init_result['签字页-共同承租人姓名'] = name
1237 self.init_result['签字页-共同承租人签章'] = electronic_signature
1238 name = self.get_key_value(key='保证人1姓名:')
1239 electronic_signature = self.get_electronic_signature(top='保证人1姓名:', bottom='保证人2姓名:')
1240 self.init_result['签字页-保证人1姓名'] = name
1241 self.init_result['签字页-保证人1签章'] = electronic_signature
1242 name = self.get_key_value(key='保证人2姓名:')
1243 electronic_signature = self.get_electronic_signature(top='保证人2姓名:', bottom='保证人3姓名:')
1244 self.init_result['签字页-保证人2姓名'] = name
1245 self.init_result['签字页-保证人2签章'] = electronic_signature
1200 return self.init_result 1246 return self.init_result
1201 # results['is_shhz_contract'] = True
1202 # results['pdf_info'] = self.init_result
1203
1204 # return results
1205 1247
1206 def get_info_1(self): 1248 def get_info_1(self):
1207 if len(self.pdf_info) > 0: 1249 if len(self.pdf_info) > 0:
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!