9033711e by 冯轩

Merge branch 'feature/CHINARPA-4357' into feature/uat-tmp

2 parents 16eb116a 5218f898
...@@ -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(
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!