diff --git a/src/apps/doc/consts.py b/src/apps/doc/consts.py index 551ee2a..6800bba 100644 --- a/src/apps/doc/consts.py +++ b/src/apps/doc/consts.py @@ -1104,34 +1104,35 @@ ITRES = [ ] ID_TYPE_COMPARE = { - 'ITPRC': [IC_OCR_FIELD, ITPRC], - 'ITPSP': [PP_OCR_FIELD, ITPSP], - 'ITHKM': [EEP_OCR_FIELD, ITHKM_ITTID], - 'ITTID': [EEP_OCR_FIELD, ITHKM_ITTID], - 'ITRES': [RP_OCR_FIELD, ITRES], + 'ITPRC': [IC_OCR_FIELD, ITPRC, True], + 'ITPSP': [PP_OCR_FIELD, ITPSP, False], + 'ITHKM': [EEP_OCR_FIELD, ITHKM_ITTID, False], + 'ITTID': [EEP_OCR_FIELD, ITHKM_ITTID, False], + 'ITRES': [RP_OCR_FIELD, ITRES, True], } ID_RES = 'idNumResult' +SECOND_ID_TYPE_FIELD = 'secondIdType' SECOND_ID_FIELD = 'secondIdNum' SECOND_ID_RES = 'secondIdNumResult' SECOND_ITPRC = [ - ('secondIdNum', '公民身份号码', 'common_compare', {}, SECOND_ID_RES), + (SECOND_ID_FIELD, '公民身份号码', 'common_compare', {}, SECOND_ID_RES), ] # 护照 SECOND_ITPSP = [ - ('secondIdNum', '护照号码', 'common_compare', {}, SECOND_ID_RES), + (SECOND_ID_FIELD, '护照号码', 'common_compare', {}, SECOND_ID_RES), ] # 港澳台通行证 SECOND_ITHKM_ITTID = [ - ('secondIdNum', '证件号码', 'common_compare', {}, SECOND_ID_RES), + (SECOND_ID_FIELD, '证件号码', 'common_compare', {}, SECOND_ID_RES), ] # 居住证 SECOND_ITRES = [ - ('secondIdNum', '公民身份号码', 'common_compare', {}, SECOND_ID_RES), + (SECOND_ID_FIELD, '公民身份号码', 'common_compare', {}, SECOND_ID_RES), ] SECOND_ID_TYPE_COMPARE = { @@ -1187,8 +1188,8 @@ RESULT_Y = 'Y' RESULT_N = 'N' RESULT_NA = 'NA' -IN_ORDER = ('applicantType', 'idType', 'secondIdType', 'customerType', 'customerChineseName', 'idNum', 'secondIdNum', - "idExpiryDate", "dateOfBirth", 'companyName', "registeredCapital", 'selfEmployedSubType',) +IN_ORDER = ('applicantType', 'idType', SECOND_ID_TYPE_FIELD, 'customerType', 'customerChineseName', 'idNum', + SECOND_ID_FIELD, "idExpiryDate", "dateOfBirth", 'companyName', "registeredCapital", 'selfEmployedSubType',) UC_ORDER = ('vinNo', 'manufactureDate', 'firstRegistrationDate') CO_ORDER = ('customerType', 'customerChineseName', 'legalRepName', 'idNum', 'businessLicenseNo', 'taxRegistrationCode', 'incorporationDate', 'businessLicenseDueDate', 'capitalRegAmount') diff --git a/src/celery_compare/tasks.py b/src/celery_compare/tasks.py index ce1aa35..ee9c150 100644 --- a/src/celery_compare/tasks.py +++ b/src/celery_compare/tasks.py @@ -17,11 +17,15 @@ log_base = '[CA Compare]' def get_order_dict(src_dict, order_tuple): + if consts.SECOND_ID_TYPE_FIELD in src_dict: + if src_dict.get(consts.SECOND_ID_TYPE_FIELD) not in consts.SECOND_ID_TYPE_COMPARE: + src_dict.pop(consts.SECOND_ID_TYPE_FIELD, None) + src_dict.pop(consts.SECOND_ID_FIELD, None) + order_dict = OrderedDict({}) for field in order_tuple: - value = src_dict.get(field) - if value is not None: - order_dict[field] = value + if field in src_dict: + order_dict[field] = src_dict[field] return order_dict @@ -216,17 +220,17 @@ def compare(application_id, application_entity, uniq_seq, ocr_res_id): # 个人信息证件 id_type = order_individual_cus_info.get('idType') - compare_info_list = consts.ID_TYPE_COMPARE.get(id_type) - if compare_info_list is not None: - field_compare(order_individual_cus_info, ocr_res_dict, compare_info_list[0], compare_info_list[1], - res_set, has_expiry_date=True) + if id_type not in consts.ID_TYPE_COMPARE: + continue + ocr_field, compare_list, has_expiry_date = consts.ID_TYPE_COMPARE.get(id_type) + field_compare(order_individual_cus_info, ocr_res_dict, ocr_field, compare_list, res_set, + has_expiry_date=has_expiry_date) # 第二证件 second_id_type = order_individual_cus_info.get('secondIdType') - second_compare_info_list = consts.SECOND_ID_TYPE_COMPARE.get(second_id_type) - if second_compare_info_list is not None: - field_compare(order_individual_cus_info, ocr_res_dict, second_compare_info_list[0], - second_compare_info_list[1], res_set) + if second_id_type is not None: + second_ocr_field, second_compare_list = consts.SECOND_ID_TYPE_COMPARE.get(second_id_type) + field_compare(order_individual_cus_info, ocr_res_dict, second_ocr_field, second_compare_list, res_set) # 重新排列 new_dict = OrderedDict({}) second_id_res = order_individual_cus_info.pop(consts.SECOND_ID_RES, consts.RESULT_NA)