14cd91c6 by 周伟奇

Merge branch 'feature/license' into feature/mssql

2 parents c8a54f58 623ca8c8
...@@ -836,7 +836,8 @@ BC_PID = 4 ...@@ -836,7 +836,8 @@ BC_PID = 4
836 # ('Date', '日期')) 836 # ('Date', '日期'))
837 BC_FIELD_ORDER = (('BankName', '发卡行名称'), 837 BC_FIELD_ORDER = (('BankName', '发卡行名称'),
838 ('CardNum', '银行卡号'), 838 ('CardNum', '银行卡号'),
839 ('CardType', '银行卡类型'),) 839 ('CardType', '银行卡类型'),
840 ('Name', '持卡人姓名'),)
840 841
841 SUCCESS_CODE_SET = {'0', 0} 842 SUCCESS_CODE_SET = {'0', 0}
842 843
......
...@@ -34,6 +34,7 @@ class Command(BaseCommand, LoggerMixin): ...@@ -34,6 +34,7 @@ class Command(BaseCommand, LoggerMixin):
34 # ocr相关 34 # ocr相关
35 self.ocr_url_1 = conf.OCR_URL_1 35 self.ocr_url_1 = conf.OCR_URL_1
36 self.ocr_url_2 = conf.OCR_URL_2 36 self.ocr_url_2 = conf.OCR_URL_2
37 self.ocr_url_3 = conf.BC_URL
37 # EDMS web_service_api 38 # EDMS web_service_api
38 self.edms = EDMS(conf.EDMS_USER, conf.EDMS_PWD) 39 self.edms = EDMS(conf.EDMS_USER, conf.EDMS_PWD)
39 # 优雅退出信号:15 40 # 优雅退出信号:15
...@@ -198,6 +199,13 @@ class Command(BaseCommand, LoggerMixin): ...@@ -198,6 +199,13 @@ class Command(BaseCommand, LoggerMixin):
198 if response.status == 200: 199 if response.status == 200:
199 return await response.json() 200 return await response.json()
200 201
202 @staticmethod
203 async def fetch_bc_name_result(url, json_data):
204 async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(ssl=False)) as session:
205 async with session.post(url, json=json_data) as response:
206 if response.status == 200:
207 return await response.json()
208
201 async def img_2_ocr_2_wb(self, wb, img_path, bs_summary, unknown_summary, license_summary, skip_img): 209 async def img_2_ocr_2_wb(self, wb, img_path, bs_summary, unknown_summary, license_summary, skip_img):
202 with open(img_path, 'rb') as f: 210 with open(img_path, 'rb') as f:
203 base64_data = base64.b64encode(f.read()) 211 base64_data = base64.b64encode(f.read())
...@@ -239,6 +247,13 @@ class Command(BaseCommand, LoggerMixin): ...@@ -239,6 +247,13 @@ class Command(BaseCommand, LoggerMixin):
239 # 识别结果 247 # 识别结果
240 self.cronjob_log.info('{0} [ocr_2 result] [img={1}] [res={2}]'.format( 248 self.cronjob_log.info('{0} [ocr_2 result] [img={1}] [res={2}]'.format(
241 self.log_base, img_path, ocr_res_2)) 249 self.log_base, img_path, ocr_res_2))
250 if classify == consts.BC_CLASSIFY:
251 name = '有'
252 json_data_1['card_res'] = ocr_res_2
253 card_name_res = await self.fetch_bc_name_result(self.ocr_url_3, json_data_1)
254 if card_name_res.get('code') == 1 and card_name_res.get('data', {}).get('is_exists_name') == 0:
255 name = '无'
256 ocr_res_2['Name'] = name
242 self.license2_process(ocr_res_2, license_summary, pid, classify, skip_img, img_path) 257 self.license2_process(ocr_res_2, license_summary, pid, classify, skip_img, img_path)
243 else: # 流水处理 258 else: # 流水处理
244 self.bs_process(wb, ocr_data, bs_summary, unknown_summary, img_path, classify, skip_img) 259 self.bs_process(wb, ocr_data, bs_summary, unknown_summary, img_path, classify, skip_img)
......
...@@ -281,10 +281,14 @@ class BSWorkbook(Workbook): ...@@ -281,10 +281,14 @@ class BSWorkbook(Workbook):
281 # 4.逗号与句号处理 281 # 4.逗号与句号处理
282 if len(res_str) >= 4: 282 if len(res_str) >= 4:
283 period_idx = len(res_str) - 3 283 period_idx = len(res_str) - 3
284 if res_str[period_idx] == '.' and res_str[period_idx - 1] == ',': 284 if res_str[period_idx] == '.' and res_str[period_idx - 1] in {',', '.'}: # 364,.92 364..92
285 res_str = '{0}{1}'.format(res_str[:period_idx - 1], res_str[period_idx:]) 285 res_str = '{0}{1}'.format(res_str[:period_idx - 1], res_str[period_idx:])
286 elif res_str[period_idx] == ',': 286 elif res_str[period_idx] == ',':
287 res_str = '{0}.{1}'.format(res_str[:period_idx], res_str[period_idx + 1:]) 287 if res_str[period_idx - 1] in {',', '.'}: # 364.,92 364,,92
288 pre_idx = period_idx - 1
289 else: # 364,92
290 pre_idx = period_idx
291 res_str = '{0}.{1}'.format(res_str[:pre_idx], res_str[period_idx + 1:])
288 return res_str 292 return res_str
289 293
290 def build_month_sheet(self, ms, card, month_mapping, is_reverse, statistics_header_info, max_column): 294 def build_month_sheet(self, ms, card, month_mapping, is_reverse, statistics_header_info, max_column):
...@@ -352,7 +356,9 @@ class BSWorkbook(Workbook): ...@@ -352,7 +356,9 @@ class BSWorkbook(Workbook):
352 tmp_ws.append((summary_cell_value, date_cell_value, amount_cell_value)) 356 tmp_ws.append((summary_cell_value, date_cell_value, amount_cell_value))
353 # 贷款关键词高亮 357 # 贷款关键词高亮
354 elif summary_cell_value in self.loan_keyword: 358 elif summary_cell_value in self.loan_keyword:
355 summary_cell.fill = self.loan_fill 359 summary_cell.fill = self.amount_fill
360 if amount_cell is not None:
361 amount_cell.fill = self.amount_fill
356 362
357 # 3.3.余额转数值 363 # 3.3.余额转数值
358 over_success = False 364 over_success = False
...@@ -413,6 +419,8 @@ class BSWorkbook(Workbook): ...@@ -413,6 +419,8 @@ class BSWorkbook(Workbook):
413 del amount_mapping 419 del amount_mapping
414 for row in amount_fill_row: 420 for row in amount_fill_row:
415 new_ws[row][amount_cell_idx].fill = self.amount_fill 421 new_ws[row][amount_cell_idx].fill = self.amount_fill
422 if summary_cell_idx is not None:
423 new_ws[row][summary_cell_idx].fill = self.amount_fill
416 424
417 # 关键词2信息提取 425 # 关键词2信息提取
418 ms.append(self.blank_row) 426 ms.append(self.blank_row)
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!