79e91f0b by 周伟奇

fix hil e-contract

1 parent de9a84b7
...@@ -73,6 +73,8 @@ class Finder: ...@@ -73,6 +73,8 @@ class Finder:
73 "合同编号(正文)": self.item, 73 "合同编号(正文)": self.item,
74 "抵押人姓名/名称": self.item, 74 "抵押人姓名/名称": self.item,
75 "抵押人证件号码": self.item, 75 "抵押人证件号码": self.item,
76 "抵押人配偶姓名/名称": self.item,
77 "抵押人配偶证件号码": self.item,
76 "车辆识别代码": self.item, 78 "车辆识别代码": self.item,
77 "租金总额": self.item, 79 "租金总额": self.item,
78 "融资租赁期限": self.item, 80 "融资租赁期限": self.item,
...@@ -451,12 +453,15 @@ class Finder: ...@@ -451,12 +453,15 @@ class Finder:
451 page = pno 453 page = pno
452 table = True 454 table = True
453 # print("repayment_schedule_text_list = ", repayment_schedule_text_list) 455 # print("repayment_schedule_text_list = ", repayment_schedule_text_list)
454 repayment_schedule_table = [['序号', '融资租赁成本', '融资租赁费用', '租金', '剩余融资租赁成本']] 456 # repayment_schedule_table = [['序号', '融资租赁成本', '融资租赁费用', '租金', '剩余融资租赁成本']]
457 repayment_schedule_table = [['序号', '租金']]
455 for i in range(len(repayment_schedule_text_list) // 4): 458 for i in range(len(repayment_schedule_text_list) // 4):
456 line = [f'{i + 1}.'] 459 line = [f'{i + 1}.']
457 # 4表示4列的意思 460 # 4表示4列的意思
458 for j in range(4): 461 for j in range(4):
459 line.append(repayment_schedule_text_list[i * 4 + j]) 462 line.append(repayment_schedule_text_list[i * 4 + j])
463 # 只保留序号和租金列
464 line = [line[0].replace('.', ''), line[3]]
460 repayment_schedule_table.append(line) 465 repayment_schedule_table.append(line)
461 repayment_schedule['words'] = repayment_schedule_table 466 repayment_schedule['words'] = repayment_schedule_table
462 repayment_schedule['page'] = page 467 repayment_schedule['page'] = page
...@@ -865,6 +870,40 @@ class Finder: ...@@ -865,6 +870,40 @@ class Finder:
865 _id['words'] = words 870 _id['words'] = words
866 return name, _id 871 return name, _id
867 872
873 def get_dyrpo_name_id(self):
874 name = self.item.copy()
875 _id = self.item.copy()
876 key_box = None
877 for pno in self.pdf_info:
878 for block in self.pdf_info[pno]['blocks']:
879 if block['type'] != 0:
880 continue
881 for line in block['lines']:
882 for span in line['spans']:
883 bbox, text = span['bbox'], span['text']
884 if text == '抵押人配偶(如适':
885 key_box = bbox
886 if key_box is not None:
887 rh = abs(key_box[1] - key_box[3])
888 for pno in self.pdf_info:
889 for block in self.pdf_info[pno]['blocks']:
890 if block['type'] != 0:
891 continue
892 for line in block['lines']:
893 for span in line['spans']:
894 bbox, text = span['bbox'], span['text']
895 if key_box[1] < np.mean(bbox[1::2]) < key_box[3] + rh * 3 and '姓名' in text:
896 words = text.split(':')[-1]
897 name['position'] = bbox
898 name['page'] = pno
899 name['words'] = words
900 if key_box[1] < np.mean(bbox[1::2]) < key_box[3] + rh * 3 and '证件号码' in text:
901 words = text.split(':')[-1]
902 _id['position'] = bbox
903 _id['page'] = pno
904 _id['words'] = words
905 return name, _id
906
868 def get_key_value_position(self, key): 907 def get_key_value_position(self, key):
869 value = self.item.copy() 908 value = self.item.copy()
870 key_box = None 909 key_box = None
...@@ -1153,6 +1192,10 @@ class Finder: ...@@ -1153,6 +1192,10 @@ class Finder:
1153 name, _id = self.get_dyr_name_id() 1192 name, _id = self.get_dyr_name_id()
1154 self.init_result_2['抵押人姓名/名称'] = name 1193 self.init_result_2['抵押人姓名/名称'] = name
1155 self.init_result_2['抵押人证件号码'] = _id 1194 self.init_result_2['抵押人证件号码'] = _id
1195 # 抵押人配偶信息
1196 name, _id = self.get_dyrpo_name_id()
1197 self.init_result_2['抵押人配偶姓名/名称'] = name
1198 self.init_result_2['抵押人配偶证件号码'] = _id
1156 # 车辆识别代码 1199 # 车辆识别代码
1157 vin = self.get_key_value(key='车辆识别代码:') 1200 vin = self.get_key_value(key='车辆识别代码:')
1158 self.init_result_2['车辆识别代码'] = vin 1201 self.init_result_2['车辆识别代码'] = vin
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!