Merge branch 'feature/CHINARPA-4357' into feature/uat-tmp
Showing
3 changed files
with
40 additions
and
35 deletions
... | @@ -1412,9 +1412,9 @@ LEGAL_REP_NAME = '经营者姓名' | ... | @@ -1412,9 +1412,9 @@ LEGAL_REP_NAME = '经营者姓名' |
1412 | TCCOR = [ | 1412 | TCCOR = [ |
1413 | ('customerChineseName', '企业名称', 'company_compare', {}, 'customerChinessNameResult'), | 1413 | ('customerChineseName', '企业名称', 'company_compare', {}, 'customerChinessNameResult'), |
1414 | ('legalRepName', '经营者姓名', 'name_compare', {}, 'legalRepNameResult'), | 1414 | ('legalRepName', '经营者姓名', 'name_compare', {}, 'legalRepNameResult'), |
1415 | ('idNum', '注册号', 'common_compare', {}, 'idNumResult'), | 1415 | ('idNum', '统一社会信用代码', 'common_compare', {}, 'idNumResult'), |
1416 | ('businessLicenseNo', '注册号', 'common_compare', {}, 'businessLicenseNoResult'), | 1416 | ('businessLicenseNo', '统一社会信用代码', 'common_compare', {}, 'businessLicenseNoResult'), |
1417 | ('taxRegistrationCode', '注册号', 'common_compare', {}, 'taxRegistrationCodeResult'), | 1417 | ('taxRegistrationCode', '统一社会信用代码', 'common_compare', {}, 'taxRegistrationCodeResult'), |
1418 | ('incorporationDate', '成立日期', 'date_compare', {'ocr_replace': True}, 'incorporationDateResult'), # 2017年07月11日 | 1418 | ('incorporationDate', '成立日期', 'date_compare', {'ocr_replace': True}, 'incorporationDateResult'), # 2017年07月11日 |
1419 | # 2017年07月11日至长期 1. OCR识别为长期,向GCAP发送:2099-12-31 00:00:00.0 | 1419 | # 2017年07月11日至长期 1. OCR识别为长期,向GCAP发送:2099-12-31 00:00:00.0 |
1420 | ('businessLicenseDueDate', '营业期限', 'date_compare', {'ocr_split': True, 'long': True, 'ocr_replace': True}, 'businessLicenseDueDateResult'), | 1420 | ('businessLicenseDueDate', '营业期限', 'date_compare', {'ocr_split': True, 'long': True, 'ocr_replace': True}, 'businessLicenseDueDateResult'), |
... | @@ -1862,10 +1862,10 @@ RP_COMPARE_LOGIC = { | ... | @@ -1862,10 +1862,10 @@ RP_COMPARE_LOGIC = { |
1862 | BL_COMPARE_LOGIC = { | 1862 | BL_COMPARE_LOGIC = { |
1863 | 'companyName': ('企业名称', 'se_company_compare', {}, '营业执照公司名称与系统不一致'), | 1863 | 'companyName': ('企业名称', 'se_company_compare', {}, '营业执照公司名称与系统不一致'), |
1864 | 'legalRepName': ('经营者姓名', 'se_name_compare', {}, '营业执照法定代表人与系统不一致'), | 1864 | 'legalRepName': ('经营者姓名', 'se_name_compare', {}, '营业执照法定代表人与系统不一致'), |
1865 | 'firstIdNo': ('注册号', 'se_common_compare', {}, '营业执照统一社会信用代码与系统不一致'), | 1865 | 'firstIdNo': ('统一社会信用代码', 'se_common_compare', {}, '营业执照统一社会信用代码与系统不一致'), |
1866 | 'businessLicenseNo': ('注册号', 'se_common_compare', {}, '营业执照统一社会信用代码与系统不一致'), | 1866 | 'businessLicenseNo': ('统一社会信用代码', 'se_common_compare', {}, '营业执照统一社会信用代码与系统不一致'), |
1867 | 'organizationCreditCode': ('注册号', 'se_common_compare', {}, '营业执照统一社会信用代码与系统不一致'), | 1867 | 'organizationCreditCode': ('统一社会信用代码', 'se_common_compare', {}, '营业执照统一社会信用代码与系统不一致'), |
1868 | 'taxRegistrationCertificateNo': ('注册号', 'se_common_compare', {}, '营业执照统一社会信用代码与系统不一致'), | 1868 | 'taxRegistrationCertificateNo': ('统一社会信用代码', 'se_common_compare', {}, '营业执照统一社会信用代码与系统不一致'), |
1869 | 'establishmentDate': ('成立日期', 'se_date_compare', {'ocr_replace': True, 'two_year': True}, '营业执照显示公司成立不满足2年'), | 1869 | 'establishmentDate': ('成立日期', 'se_date_compare', {'ocr_replace': True, 'two_year': True}, '营业执照显示公司成立不满足2年'), |
1870 | 'businessLicenseDueDate': ('营业期限', 'se_date_compare', {'ocr_split': True, 'long': True, 'ocr_replace': True, 'today': True}, '公司营业期限疑似过期'), | 1870 | 'businessLicenseDueDate': ('营业期限', 'se_date_compare', {'ocr_split': True, 'long': True, 'ocr_replace': True, 'today': True}, '公司营业期限疑似过期'), |
1871 | 'organizationType': ('企业类型', 'se_type_compare', {}, '营业执照企业类型与系统不一致'), | 1871 | 'organizationType': ('企业类型', 'se_type_compare', {}, '营业执照企业类型与系统不一致'), |
... | @@ -2306,9 +2306,9 @@ CA_RP_COMPARE_LOGIC = { | ... | @@ -2306,9 +2306,9 @@ CA_RP_COMPARE_LOGIC = { |
2306 | CA_BL_COMPARE_LOGIC = { | 2306 | CA_BL_COMPARE_LOGIC = { |
2307 | 'companyName': ('企业名称', 'ca_company_compare', {}), | 2307 | 'companyName': ('企业名称', 'ca_company_compare', {}), |
2308 | 'customerChineseName': ('经营者姓名', 'ca_name_compare', {}), | 2308 | 'customerChineseName': ('经营者姓名', 'ca_name_compare', {}), |
2309 | 'idNum': ('注册号', 'ca_common_compare', {}), | 2309 | 'idNum': ('统一社会信用代码', 'ca_common_compare', {}), |
2310 | 'businessLicenseNo': ('注册号', 'ca_common_compare', {}), | 2310 | 'businessLicenseNo': ('统一社会信用代码', 'ca_common_compare', {}), |
2311 | 'taxRegistrationCode': ('注册号', 'ca_common_compare', {}), | 2311 | 'taxRegistrationCode': ('统一社会信用代码', 'ca_common_compare', {}), |
2312 | 'incorporationDate': ('成立日期', 'ca_date_compare', {'ocr_replace': True}), | 2312 | 'incorporationDate': ('成立日期', 'ca_date_compare', {'ocr_replace': True}), |
2313 | 'businessLicenseDueDate': ('营业期限', 'ca_date_compare', {'ocr_split': True, 'long': True, 'ocr_replace': True}), | 2313 | 'businessLicenseDueDate': ('营业期限', 'ca_date_compare', {'ocr_split': True, 'long': True, 'ocr_replace': True}), |
2314 | 'registeredCapital': ('注册资本', 'ca_rmb_compare', {}), | 2314 | 'registeredCapital': ('注册资本', 'ca_rmb_compare', {}), | ... | ... |
... | @@ -340,6 +340,7 @@ class Command(BaseCommand, LoggerMixin): | ... | @@ -340,6 +340,7 @@ class Command(BaseCommand, LoggerMixin): |
340 | if len(true_file_set) == 0 and len(os_error_filename_set) > 0: | 340 | if len(true_file_set) == 0 and len(os_error_filename_set) > 0: |
341 | true_file_set.add(os_error_filename_set.pop()) | 341 | true_file_set.add(os_error_filename_set.pop()) |
342 | for name in true_file_set: | 342 | for name in true_file_set: |
343 | time.sleep(8) | ||
343 | is_success = True | 344 | is_success = True |
344 | failure_reason = OfflineFailureReason.OS_ERROR.value | 345 | failure_reason = OfflineFailureReason.OS_ERROR.value |
345 | start_time = time.time() | 346 | start_time = time.time() | ... | ... |
... | @@ -10,6 +10,7 @@ import traceback | ... | @@ -10,6 +10,7 @@ import traceback |
10 | from collections import Counter | 10 | from collections import Counter |
11 | from datetime import datetime, date | 11 | from datetime import datetime, date |
12 | from django import db | 12 | from django import db |
13 | from django.db import transaction | ||
13 | from django.utils import timezone | 14 | from django.utils import timezone |
14 | from django.core.management import BaseCommand | 15 | from django.core.management import BaseCommand |
15 | from multiprocessing import Process, Queue, Manager, Lock | 16 | from multiprocessing import Process, Queue, Manager, Lock |
... | @@ -2034,31 +2035,34 @@ class Command(BaseCommand, LoggerMixin): | ... | @@ -2034,31 +2035,34 @@ class Command(BaseCommand, LoggerMixin): |
2034 | result_class = HILOCRResult if is_ca else HILSEOCRResult | 2035 | result_class = HILOCRResult if is_ca else HILSEOCRResult |
2035 | else: | 2036 | else: |
2036 | result_class = AFCOCRResult if is_ca else AFCSEOCRResult | 2037 | result_class = AFCOCRResult if is_ca else AFCSEOCRResult |
2037 | res_obj = result_class.objects.filter(application_id=doc.application_id).first() | 2038 | res_obj = result_class.objects.select_for_update().filter(application_id=doc.application_id).first() |
2038 | if res_obj is None: | 2039 | with transaction.atomic(): |
2039 | res_obj = result_class() | 2040 | self.online_log.info('{0} [sql lock application_id={1}]'.format(self.log_base, doc.application_id)) |
2040 | res_obj.application_id = doc.application_id | 2041 | if res_obj is None: |
2041 | for classify, field in consts.RESULT_MAPPING.items(): | 2042 | res_obj = result_class() |
2042 | if not hasattr(res_obj, field): | 2043 | res_obj.application_id = doc.application_id |
2043 | continue | 2044 | for classify, field in consts.RESULT_MAPPING.items(): |
2044 | license_list = license_summary.get(classify) | 2045 | if not hasattr(res_obj, field): |
2045 | if not license_list: | 2046 | continue |
2046 | continue | 2047 | license_list = license_summary.get(classify) |
2047 | if classify == consts.IC_CLASSIFY and ic_merge: | 2048 | if not license_list: |
2048 | license_list[0].update(license_list[1]) | 2049 | continue |
2049 | license_list.pop(1) | 2050 | if classify == consts.IC_CLASSIFY and ic_merge: |
2050 | elif classify == consts.RP_CLASSIFY and rp_merge: | 2051 | license_list[0].update(license_list[1]) |
2051 | license_list[0].update(license_list[1]) | 2052 | license_list.pop(1) |
2052 | license_list.pop(1) | 2053 | elif classify == consts.RP_CLASSIFY and rp_merge: |
2053 | old_res_str = getattr(res_obj, field) | 2054 | license_list[0].update(license_list[1]) |
2054 | if old_res_str is None: | 2055 | license_list.pop(1) |
2055 | last_res_str = json.dumps(license_list) | 2056 | old_res_str = getattr(res_obj, field) |
2056 | else: | 2057 | if old_res_str is None: |
2057 | old_res_list = json.loads(old_res_str) | 2058 | last_res_str = json.dumps(license_list) |
2058 | old_res_list.extend(license_list) | 2059 | else: |
2059 | last_res_str = json.dumps(old_res_list) | 2060 | old_res_list = json.loads(old_res_str) |
2060 | setattr(res_obj, field, last_res_str) | 2061 | old_res_list.extend(license_list) |
2061 | res_obj.save() | 2062 | last_res_str = json.dumps(old_res_list) |
2063 | setattr(res_obj, field, last_res_str) | ||
2064 | res_obj.save() | ||
2065 | self.online_log.info('{0} [sql lock release application_id={1}]'.format(self.log_base, doc.application_id)) | ||
2062 | except Exception as e: | 2066 | except Exception as e: |
2063 | self.online_log.error( | 2067 | self.online_log.error( |
2064 | '{0} [process error (ocr result save)] [task={1}] [error={2}]'.format( | 2068 | '{0} [process error (ocr result save)] [task={1}] [error={2}]'.format( | ... | ... |
-
Please register or sign in to post a comment