a619e9ec by 周伟奇

add ht image

1 parent e199bcb2
...@@ -1798,7 +1798,7 @@ HIL_CONTRACT_1_COMPARE_LOGIC = { ...@@ -1798,7 +1798,7 @@ HIL_CONTRACT_1_COMPARE_LOGIC = {
1798 '车辆卖方': ('车辆卖方', 'se_common_compare', {}, '售后回租合同车辆卖方与系统经销商不一致'), 1798 '车辆卖方': ('车辆卖方', 'se_common_compare', {}, '售后回租合同车辆卖方与系统经销商不一致'),
1799 '车辆原始销售价格': ('车辆原始销售价格', 'se_amount_str_compare', {}, '售后回租合同车辆原始销售价格与系统车辆价格不一致'), 1799 '车辆原始销售价格': ('车辆原始销售价格', 'se_amount_str_compare', {}, '售后回租合同车辆原始销售价格与系统车辆价格不一致'),
1800 '融资成本总额': ('融资成本总额', 'se_amount_str_compare', {}, '售后回租合同ASP融资成本总额与系统不一致'), 1800 '融资成本总额': ('融资成本总额', 'se_amount_str_compare', {}, '售后回租合同ASP融资成本总额与系统不一致'),
1801 '租期': ('租期', 'se_contain_compare_2', {}, '售后回租合同首页中贷款期限系统不一致'), 1801 '租期': ('租期', 'se_contain_compare', {}, '售后回租合同首页中贷款期限系统不一致'),
1802 '还款计划表': ('还款计划表', 'se_schedule_compare', {"value_idx": 3}, '售后回租合同还款计划表与系统不一致'), 1802 '还款计划表': ('还款计划表', 'se_schedule_compare', {"value_idx": 3}, '售后回租合同还款计划表与系统不一致'),
1803 'ASP项目详情': ('ASP项目详情', 'se_asp_compare', {}, '售后回租合同ASP名称或者金额与系统不一致'), 1803 'ASP项目详情': ('ASP项目详情', 'se_asp_compare', {}, '售后回租合同ASP名称或者金额与系统不一致'),
1804 '承租人法定代表人或授权代表': ('承租人法定代表人或授权代表', 'se_name_compare', {}, '售后回租合同承租人法定代表人或授权代表与系统不一致'), 1804 '承租人法定代表人或授权代表': ('承租人法定代表人或授权代表', 'se_name_compare', {}, '售后回租合同承租人法定代表人或授权代表与系统不一致'),
......
...@@ -298,62 +298,10 @@ class Command(BaseCommand, LoggerMixin): ...@@ -298,62 +298,10 @@ class Command(BaseCommand, LoggerMixin):
298 elif isinstance(sub_value[text_key], str): 298 elif isinstance(sub_value[text_key], str):
299 page_compare_dict[key][sub_key] = sub_value[text_key] 299 page_compare_dict[key][sub_key] = sub_value[text_key]
300 300
301 page_compare_dict[consts.IMG_PATH_KEY] = img_path
301 contract_result_compare.setdefault(classify, dict())[consts.ASP_KEY] = contract_dict.get(consts.ASP_KEY, False) 302 contract_result_compare.setdefault(classify, dict())[consts.ASP_KEY] = contract_dict.get(consts.ASP_KEY, False)
302 contract_result_compare.setdefault(classify, dict())[page_num_only] = page_compare_dict 303 contract_result_compare.setdefault(classify, dict())[page_num_only] = page_compare_dict
303 304
304
305 # def rebuild_result(self, ocr_data, classify, img_path):
306 # license_data = ocr_data.get('data')
307 # if not license_data:
308 # return
309 # if classify == consts.IC_CLASSIFY:
310 # rebuild_data_dict = {}
311 # card_type = license_data.get('type', '')
312 # is_ic = card_type.startswith('身份证')
313 # is_info_side = card_type.endswith('信息面')
314 # rebuild_data_dict['类别'] = '0' if is_ic else '1'
315 # if is_ic:
316 # field_map = consts.IC_MAP_0 if is_info_side else consts.IC_MAP_1
317 # else:
318 # field_map = consts.RP_MAP_0 if is_info_side else consts.RP_MAP_1
319 # for write_field, search_field in field_map:
320 # rebuild_data_dict[write_field] = license_data.get('words_result', {}).get(search_field, {}).get('words', '')
321 # if not is_info_side:
322 # start_time = license_data.get('words_result', {}).get('签发日期', {}).get('words', '')
323 # end_time = license_data.get('words_result', {}).get('失效日期', {}).get('words', '')
324 # rebuild_data_dict['有效期限'] = '{0}-{1}'.format(start_time, end_time)
325 # return [rebuild_data_dict]
326 # elif classify == consts.MVC_CLASSIFY:
327 # # license_data[consts.IMG_PATH_KEY] = img_path
328 # rebuild_data_dict = {}
329 # mvc_page = license_data.pop('page', 'VehicleRCI')
330 # mvc_res = license_data.pop('results', {})
331 # if mvc_page == 'VehicleRegArea':
332 # rebuild_data_dict['机动车登记证书编号'] = mvc_res.get('机动车登记证书编号', {}).get('words', '')
333 # for register_info in mvc_res.get('登记信息', []):
334 # register_info.pop('register_type', None)
335 # register_info.pop('register_type_name', None)
336 # for cn_key, detail_dict in register_info.items():
337 # rebuild_data_dict.setdefault(cn_key, []).append(
338 # detail_dict.get('words', ''))
339 # else:
340 # for cn_key, detail_dict in mvc_res.items():
341 # rebuild_data_dict[cn_key] = detail_dict.get('words', '')
342 # del mvc_res
343 # return [rebuild_data_dict]
344 # elif classify == consts.MVI_CLASSIFY:
345 # rebuild_data_dict = {}
346 # mvi_res = license_data.pop('result', {})
347 # for en_key, detail_dict in mvi_res.items():
348 # rebuild_data_dict[detail_dict.get('chinese_key', '')] = detail_dict.get('words', '')
349 # return [rebuild_data_dict]
350 # elif classify == consts.UCI_CLASSIFY:
351 # rebuild_data_dict = {}
352 # mvi_res = license_data.pop('result', {})
353 # for en_key, detail_dict in mvi_res.items():
354 # rebuild_data_dict[detail_dict.get('chinese_key', '')] = detail_dict.get('words', '')
355 # return [rebuild_data_dict]
356
357 def license1_process(self, ocr_data, license_summary, classify, res_list, pno, ino, part_idx, img_path, do_dda, 305 def license1_process(self, ocr_data, license_summary, classify, res_list, pno, ino, part_idx, img_path, do_dda,
358 dda_id_bc_mapping): 306 dda_id_bc_mapping):
359 # 类别:'0'身份证, '1'居住证 307 # 类别:'0'身份证, '1'居住证
...@@ -924,8 +872,12 @@ class Command(BaseCommand, LoggerMixin): ...@@ -924,8 +872,12 @@ class Command(BaseCommand, LoggerMixin):
924 res.setdefault(key, list()).append(page_info_dict.get(str(i), {}).get(key1, '')) 872 res.setdefault(key, list()).append(page_info_dict.get(str(i), {}).get(key1, ''))
925 elif key2 is None: 873 elif key2 is None:
926 res[key] = page_info_dict.get(str(pno), {}).get(key1, '') 874 res[key] = page_info_dict.get(str(pno), {}).get(key1, '')
875 res.setdefault(consts.IMG_PATH_KEY, dict())[key] = page_info_dict.get(str(pno), {}).get(
876 consts.IMG_PATH_KEY, '')
927 else: 877 else:
928 res[key] = page_info_dict.get(str(pno), {}).get(key1, {}).get(key2, '') 878 res[key] = page_info_dict.get(str(pno), {}).get(key1, {}).get(key2, '')
879 res.setdefault(consts.IMG_PATH_KEY, dict())[key] = page_info_dict.get(str(pno), {}).get(
880 consts.IMG_PATH_KEY, '')
929 881
930 license_summary[classify] = [res] 882 license_summary[classify] = [res]
931 else: 883 else:
...@@ -936,14 +888,22 @@ class Command(BaseCommand, LoggerMixin): ...@@ -936,14 +888,22 @@ class Command(BaseCommand, LoggerMixin):
936 res.setdefault(key, list()).append(page_info_dict.get(str(i), {}).get(key1, '')) 888 res.setdefault(key, list()).append(page_info_dict.get(str(i), {}).get(key1, ''))
937 elif key2 is None: 889 elif key2 is None:
938 tmp_res = page_info_dict.get(str(pno1), {}).get(key1) 890 tmp_res = page_info_dict.get(str(pno1), {}).get(key1)
891 img_pno = pno1
939 if tmp_res is None and isinstance(pno2, int): 892 if tmp_res is None and isinstance(pno2, int):
940 tmp_res = page_info_dict.get(str(pno2), {}).get(key1, '') 893 tmp_res = page_info_dict.get(str(pno2), {}).get(key1, '')
894 img_pno = pno1
941 res[key] = tmp_res 895 res[key] = tmp_res
896 res.setdefault(consts.IMG_PATH_KEY, dict())[key] = page_info_dict.get(str(img_pno), {}).get(
897 consts.IMG_PATH_KEY, '')
942 else: 898 else:
943 tmp_res = page_info_dict.get(str(pno1), {}).get(key1, {}).get(key2) 899 tmp_res = page_info_dict.get(str(pno1), {}).get(key1, {}).get(key2)
900 img_pno = pno1
944 if tmp_res is None and isinstance(pno2, int): 901 if tmp_res is None and isinstance(pno2, int):
945 tmp_res = page_info_dict.get(str(pno2), {}).get(key1, {}).get(key2, '') 902 tmp_res = page_info_dict.get(str(pno2), {}).get(key1, {}).get(key2, '')
903 img_pno = pno1
946 res[key] = tmp_res 904 res[key] = tmp_res
905 res.setdefault(consts.IMG_PATH_KEY, dict())[key] = page_info_dict.get(str(img_pno), {}).get(
906 consts.IMG_PATH_KEY, '')
947 907
948 license_summary[classify] = [res] 908 license_summary[classify] = [res]
949 909
...@@ -1648,7 +1608,6 @@ class Command(BaseCommand, LoggerMixin): ...@@ -1648,7 +1608,6 @@ class Command(BaseCommand, LoggerMixin):
1648 else: 1608 else:
1649 raise EDMSException(edms_exc) 1609 raise EDMSException(edms_exc)
1650 except Exception as e: 1610 except Exception as e:
1651
1652 report_list[0] = FailureReason.EDMS.value 1611 report_list[0] = FailureReason.EDMS.value
1653 doc.status = DocStatus.UPLOAD_FAILED.value 1612 doc.status = DocStatus.UPLOAD_FAILED.value
1654 self.online_log.warn('{0} [process failed (edms upload)] [task={1}] [error={2}]'.format( 1613 self.online_log.warn('{0} [process failed (edms upload)] [task={1}] [error={2}]'.format(
......
...@@ -1212,10 +1212,12 @@ def get_se_cms_compare_info(last_obj, application_entity, detect_list): ...@@ -1212,10 +1212,12 @@ def get_se_cms_compare_info(last_obj, application_entity, detect_list):
1212 (consts.SE_HIL_CON_1_FIELD[5], str(cms_info.get('financialInformation', {}).get('originationPrincipal', '0.0'))), 1212 (consts.SE_HIL_CON_1_FIELD[5], str(cms_info.get('financialInformation', {}).get('originationPrincipal', '0.0'))),
1213 (consts.SE_HIL_CON_1_FIELD[6], str(cms_info.get('terms', '0'))), 1213 (consts.SE_HIL_CON_1_FIELD[6], str(cms_info.get('terms', '0'))),
1214 (consts.SE_HIL_CON_1_FIELD[7], schedule_list_str), 1214 (consts.SE_HIL_CON_1_FIELD[7], schedule_list_str),
1215 (consts.SE_HIL_CON_1_FIELD[8], asp_list),
1216 (consts.SE_HIL_CON_1_FIELD[9], gzs_list),
1217 ] 1215 ]
1218 1216
1217 if is_asp:
1218 hil_contract_1_input.append((consts.SE_HIL_CON_1_FIELD[8], asp_list))
1219 hil_contract_1_input.append((consts.SE_HIL_CON_1_FIELD[9], gzs_list))
1220
1219 if isinstance(company_info, tuple): 1221 if isinstance(company_info, tuple):
1220 hil_contract_1_input.append((consts.SE_HIL_CON_1_FIELD[10], company_info[2])) 1222 hil_contract_1_input.append((consts.SE_HIL_CON_1_FIELD[10], company_info[2]))
1221 1223
...@@ -1844,7 +1846,8 @@ def se_contract_compare(license_en, ocr_res_dict, strip_list): ...@@ -1844,7 +1846,8 @@ def se_contract_compare(license_en, ocr_res_dict, strip_list):
1844 ocr_str = empty_str 1846 ocr_str = empty_str
1845 reason = compare_logic[name][3] 1847 reason = compare_logic[name][3]
1846 1848
1847 img_path = empty_str 1849 # img_path = empty_str
1850 img_path = ocr_res.get(consts.IMG_PATH_KEY, {}).get(compare_logic[name][0], empty_str) if result == consts.RESULT_N else empty_str
1848 error_type = empty_error_type if result == consts.RESULT_Y else ErrorType.OCR.value 1851 error_type = empty_error_type if result == consts.RESULT_Y else ErrorType.OCR.value
1849 if isinstance(value, list): 1852 if isinstance(value, list):
1850 value = json.dumps(value, ensure_ascii=False) 1853 value = json.dumps(value, ensure_ascii=False)
......
...@@ -183,7 +183,9 @@ class Comparison: ...@@ -183,7 +183,9 @@ class Comparison:
183 schedule_list = [] 183 schedule_list = []
184 for row_list in ocr_str_or_list: 184 for row_list in ocr_str_or_list:
185 tmp_str = "{1}{0}{2}".format( 185 tmp_str = "{1}{0}{2}".format(
186 self.SPLIT_STR, row_list[0], row_list[kwargs.get('value_idx', 1)].replace(',', '')) 186 self.SPLIT_STR,
187 row_list[0].replace('.', ''),
188 row_list[kwargs.get('value_idx', 1)].replace(',', ''))
187 schedule_list.append(tmp_str) 189 schedule_list.append(tmp_str)
188 return self.build_res(self.SCHEDULE_SPLIT_STR.join(schedule_list) == input_str) 190 return self.build_res(self.SCHEDULE_SPLIT_STR.join(schedule_list) == input_str)
189 else: 191 else:
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!