contract cdfl
Showing
2 changed files
with
62 additions
and
5 deletions
| ... | @@ -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: | ... | ... |
-
Please register or sign in to post a comment