更新财务报表的三个报表的处理,dict为空,则excel中sheet不创建
Showing
3 changed files
with
37 additions
and
2 deletions
| ... | @@ -98,6 +98,7 @@ RES_SHEET_HEADER = ('页码', '图片序号', '检测图片序号', '结果') | ... | @@ -98,6 +98,7 @@ RES_SHEET_HEADER = ('页码', '图片序号', '检测图片序号', '结果') |
| 98 | RES_SUCCESS = '识别成功' | 98 | RES_SUCCESS = '识别成功' |
| 99 | RES_SUCCESS_OTHER = '识别成功(其他类)' | 99 | RES_SUCCESS_OTHER = '识别成功(其他类)' |
| 100 | RES_SUCCESS_EMPTY = '识别成功(空数据)' | 100 | RES_SUCCESS_EMPTY = '识别成功(空数据)' |
| 101 | RES_SUCCESS_FINANCIAL_STATEMENT = '识别成功(财务报表类)' | ||
| 101 | RES_FAILED = '识别失败' | 102 | RES_FAILED = '识别失败' |
| 102 | RES_FAILED_1 = '识别失败(阶段1)' | 103 | RES_FAILED_1 = '识别失败(阶段1)' |
| 103 | RES_FAILED_2 = '识别失败(阶段2)' | 104 | RES_FAILED_2 = '识别失败(阶段2)' | ... | ... |
| ... | @@ -1725,7 +1725,7 @@ class Command(BaseCommand, LoggerMixin): | ... | @@ -1725,7 +1725,7 @@ class Command(BaseCommand, LoggerMixin): |
| 1725 | contract_result = {} | 1725 | contract_result = {} |
| 1726 | contract_result_compare = {} | 1726 | contract_result_compare = {} |
| 1727 | # 添加财报三个报表的处理 | 1727 | # 添加财报三个报表的处理 |
| 1728 | financial_statement_dict = {"code": {}, "stamp": {}} | 1728 | financial_statement_dict = {} |
| 1729 | res_list = [] | 1729 | res_list = [] |
| 1730 | interest_keyword = Keywords.objects.filter( | 1730 | interest_keyword = Keywords.objects.filter( |
| 1731 | type=KeywordsType.INTEREST.value, on_off=True).values_list('keyword', flat=True) | 1731 | type=KeywordsType.INTEREST.value, on_off=True).values_list('keyword', flat=True) |
| ... | @@ -1756,6 +1756,14 @@ class Command(BaseCommand, LoggerMixin): | ... | @@ -1756,6 +1756,14 @@ class Command(BaseCommand, LoggerMixin): |
| 1756 | self.log_base, img_path)) | 1756 | self.log_base, img_path)) |
| 1757 | continue | 1757 | continue |
| 1758 | elif classify in consts.FINANCIAL_STATEMENT_CLASSIFY_LIST: | 1758 | elif classify in consts.FINANCIAL_STATEMENT_CLASSIFY_LIST: |
| 1759 | # 添加到 res_list 中 | ||
| 1760 | res_list.append((pno, ino, part_idx, consts.RES_SUCCESS_FINANCIAL_STATEMENT)) | ||
| 1761 | # 只要分类为财报三个报表的,就在 financial_statement_dict 中添加对应的 code 和 stamp 两个dict | ||
| 1762 | if "code" not in financial_statement_dict: | ||
| 1763 | financial_statement_dict["code"] = {} | ||
| 1764 | if "stamp" not in financial_statement_dict: | ||
| 1765 | financial_statement_dict["stamp"] = {} | ||
| 1766 | |||
| 1759 | financial_statement_table_name = None | 1767 | financial_statement_table_name = None |
| 1760 | if classify == 97: | 1768 | if classify == 97: |
| 1761 | financial_statement_table_name = "balance_sheet" | 1769 | financial_statement_table_name = "balance_sheet" |
| ... | @@ -2057,7 +2065,9 @@ class Command(BaseCommand, LoggerMixin): | ... | @@ -2057,7 +2065,9 @@ class Command(BaseCommand, LoggerMixin): |
| 2057 | license_summary[consts.BS_CLASSIFY] = bs_rebuild | 2065 | license_summary[consts.BS_CLASSIFY] = bs_rebuild |
| 2058 | 2066 | ||
| 2059 | # 比对 | 2067 | # 比对 |
| 2060 | if len(license_summary) > 0 and doc.document_scheme != consts.DOC_SCHEME_LIST[2]: | 2068 | if len(license_summary) > 0: |
| 2069 | if doc.document_scheme != consts.DOC_SCHEME_LIST[2]: | ||
| 2070 | # if len(license_summary) > 0 and doc.document_scheme != consts.DOC_SCHEME_LIST[2]: | ||
| 2061 | try: | 2071 | try: |
| 2062 | is_ca = True if doc.document_scheme == consts.DOC_SCHEME_LIST[0] else False | 2072 | is_ca = True if doc.document_scheme == consts.DOC_SCHEME_LIST[0] else False |
| 2063 | # 更新OCR累计识别结果表 | 2073 | # 更新OCR累计识别结果表 |
| ... | @@ -2097,6 +2107,22 @@ class Command(BaseCommand, LoggerMixin): | ... | @@ -2097,6 +2107,22 @@ class Command(BaseCommand, LoggerMixin): |
| 2097 | else: | 2107 | else: |
| 2098 | self.online_log.info('{0} [comparison info send success] [task={1}] ' | 2108 | self.online_log.info('{0} [comparison info send success] [task={1}] ' |
| 2099 | '[res_id={2}]'.format(self.log_base, task_str, res_obj.id)) | 2109 | '[res_id={2}]'.format(self.log_base, task_str, res_obj.id)) |
| 2110 | else: | ||
| 2111 | # license_summary 为空 | ||
| 2112 | self.online_log.info('{0} [task={1}] [no license_summary]'.format(self.log_base, task_str)) | ||
| 2113 | try: | ||
| 2114 | is_ca = True if doc.document_scheme == consts.DOC_SCHEME_LIST[0] else False | ||
| 2115 | # 更新OCR累计识别结果表 | ||
| 2116 | if business_type == consts.HIL_PREFIX: | ||
| 2117 | result_class = HILOCRResult if is_ca else HILSEOCRResult | ||
| 2118 | res_obj = atomicSaveDBHIL(self,result_class,doc,license_summary,ic_merge,rp_merge, task_str, financial_statement_dict) | ||
| 2119 | else: | ||
| 2120 | result_class = AFCOCRResult if is_ca else AFCSEOCRResult | ||
| 2121 | res_obj = atomicSaveDBAFC(self,result_class,doc,license_summary,ic_merge,rp_merge, task_str, financial_statement_dict) | ||
| 2122 | except Exception as e: | ||
| 2123 | self.online_log.error( | ||
| 2124 | '{0} [process error (ocr result save)] [task={1}] [error={2}]'.format( | ||
| 2125 | self.log_base, task_str, traceback.format_exc())) | ||
| 2100 | 2126 | ||
| 2101 | # DDA处理 | 2127 | # DDA处理 |
| 2102 | if do_dda: | 2128 | if do_dda: |
| ... | @@ -2451,6 +2477,8 @@ def atomicSaveDBAFC(self,result_class,doc,license_summary,ic_merge,rp_merge,task | ... | @@ -2451,6 +2477,8 @@ def atomicSaveDBAFC(self,result_class,doc,license_summary,ic_merge,rp_merge,task |
| 2451 | res_obj = result_class() | 2477 | res_obj = result_class() |
| 2452 | res_obj.application_id = doc.application_id | 2478 | res_obj.application_id = doc.application_id |
| 2453 | self.online_log.info('{0} [res_obj is None application_id={1} doc_id={2}]'.format(self.log_base, doc.application_id,doc.id)) | 2479 | self.online_log.info('{0} [res_obj is None application_id={1} doc_id={2}]'.format(self.log_base, doc.application_id,doc.id)) |
| 2480 | if res_obj is not None: | ||
| 2481 | if financial_statement_dict: | ||
| 2454 | res_obj.fs_ocr = json.dumps([financial_statement_dict]) | 2482 | res_obj.fs_ocr = json.dumps([financial_statement_dict]) |
| 2455 | for classify, field in consts.RESULT_MAPPING.items(): | 2483 | for classify, field in consts.RESULT_MAPPING.items(): |
| 2456 | if not hasattr(res_obj, field): | 2484 | if not hasattr(res_obj, field): |
| ... | @@ -2485,6 +2513,8 @@ def atomicSaveDBHIL(self,result_class,doc,license_summary,ic_merge,rp_merge, tas | ... | @@ -2485,6 +2513,8 @@ def atomicSaveDBHIL(self,result_class,doc,license_summary,ic_merge,rp_merge, tas |
| 2485 | res_obj = result_class() | 2513 | res_obj = result_class() |
| 2486 | res_obj.application_id = doc.application_id | 2514 | res_obj.application_id = doc.application_id |
| 2487 | self.online_log.info('{0} [res_obj is None application_id={1} doc_id={2}]'.format(self.log_base, doc.application_id,doc.id)) | 2515 | self.online_log.info('{0} [res_obj is None application_id={1} doc_id={2}]'.format(self.log_base, doc.application_id,doc.id)) |
| 2516 | if res_obj is not None: | ||
| 2517 | if financial_statement_dict: | ||
| 2488 | res_obj.fs_ocr = json.dumps([financial_statement_dict]) | 2518 | res_obj.fs_ocr = json.dumps([financial_statement_dict]) |
| 2489 | for classify, field in consts.RESULT_MAPPING.items(): | 2519 | for classify, field in consts.RESULT_MAPPING.items(): |
| 2490 | if not hasattr(res_obj, field): | 2520 | if not hasattr(res_obj, field): | ... | ... |
| ... | @@ -829,6 +829,10 @@ class BSWorkbook(Workbook): | ... | @@ -829,6 +829,10 @@ class BSWorkbook(Workbook): |
| 829 | 829 | ||
| 830 | 830 | ||
| 831 | def financial_rebuild(self, financial_statement_dict): | 831 | def financial_rebuild(self, financial_statement_dict): |
| 832 | # 如果 financial_statement_dict 为空,则不创建表 | ||
| 833 | if not financial_statement_dict: | ||
| 834 | return | ||
| 835 | # 如果 financial_statement_dict 不为空,则创建表 | ||
| 832 | ws = self.create_sheet(consts.FINANCIAL_SHEET_NAME) | 836 | ws = self.create_sheet(consts.FINANCIAL_SHEET_NAME) |
| 833 | for fin_key, fin_value in financial_statement_dict.items(): | 837 | for fin_key, fin_value in financial_statement_dict.items(): |
| 834 | table_str = "识别码" | 838 | table_str = "识别码" | ... | ... |
-
Please register or sign in to post a comment