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