Merge branch 'feature/license' into feature/mssql
Showing
3 changed files
with
28 additions
and
4 deletions
... | @@ -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) | ... | ... |
-
Please register or sign in to post a comment