修正页码排序
This commit is contained in:
@@ -421,8 +421,10 @@ def cost_task(pk_phhd, cost_list_ie_result):
|
||||
cost_data["medical_expenses"] = handle_decimal(cost_data["medical_expenses_str"])
|
||||
if cost_list_ie_result.get(IE_KEY['page']):
|
||||
page_nums, page_count = parse_page_num(cost_list_ie_result[IE_KEY['page']])
|
||||
cost_data['page_nums'] = handle_original_data(','.join(page_nums))
|
||||
cost_data['page_count'] = handle_tiny_int(page_count)
|
||||
if page_nums:
|
||||
page_nums_str = [str(num) for num in page_nums]
|
||||
cost_data['page_nums'] = handle_original_data(','.join(page_nums_str))
|
||||
cost_data['page_count'] = handle_tiny_int(page_count)
|
||||
save_or_update_ie(ZxIeCost, pk_phhd, cost_data)
|
||||
return cost_data
|
||||
|
||||
@@ -583,11 +585,12 @@ def photo_review(pk_phhd, name):
|
||||
cost_missing_page = {}
|
||||
if cost_data.get('page_nums'):
|
||||
page_nums = cost_data['page_nums'].split(',')
|
||||
required_set = set(str(i) for i in range(1, cost_data['page_count'] + 1))
|
||||
page_set = set(page_nums)
|
||||
required_set = set(range(1, cost_data['page_count'] + 1))
|
||||
page_set = set([int(num) for num in page_nums])
|
||||
cost_missing_page = required_set - page_set
|
||||
if cost_missing_page:
|
||||
cost_missing_page = sorted(cost_missing_page)
|
||||
cost_missing_page = [str(num) for num in cost_missing_page]
|
||||
page_description.append(f"《住院费用清单》,缺第{','.join(cost_missing_page)}页")
|
||||
|
||||
if page_description:
|
||||
|
||||
@@ -194,14 +194,16 @@ def parse_page_num(page_list):
|
||||
for page in page_list:
|
||||
page_texts = [p.get('text', '') for p in page]
|
||||
join = ''.join(page_texts)
|
||||
numbers = re.findall(r'\d+', join)
|
||||
numbers_str = re.findall(r'\d+', join)
|
||||
# 过滤异常值
|
||||
numbers = [num for num in numbers if int(num) <= 30]
|
||||
numbers = [int(num) for num in numbers_str if int(num) <= 30]
|
||||
if not numbers:
|
||||
continue
|
||||
pages.append(min(numbers))
|
||||
total.append(max(numbers))
|
||||
return pages, int(max(total if total else ['1']))
|
||||
if not pages:
|
||||
return None, None
|
||||
return pages, max(total)
|
||||
|
||||
|
||||
def handle_tiny_int(num):
|
||||
|
||||
Reference in New Issue
Block a user