From bacccc43ab66d590ae5efb745fadd9cbf2225234 Mon Sep 17 00:00:00 2001 From: Misaka_Company Date: Wed, 29 Jul 2026 13:08:06 +0800 Subject: [PATCH] feat(yunda): support date arg (date takes precedence over offset) Co-Authored-By: Claude --- inbound_verify/sites/yunda.py | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/inbound_verify/sites/yunda.py b/inbound_verify/sites/yunda.py index 9245e17..d544253 100644 --- a/inbound_verify/sites/yunda.py +++ b/inbound_verify/sites/yunda.py @@ -169,18 +169,18 @@ def yunda_smart_menu_click(page, menu_path): page.wait_for_timeout(1000) -def yunda_expected_download(page, force=False): +def yunda_expected_download(page, force=False, date=None): """韵达:应到货物数据下载(内部含异常兜底重试,路由层无感)。""" return with_retry( "韵达", "应到", - lambda: yunda_expected_download_impl(page, force=force), + lambda: yunda_expected_download_impl(page, force=force, date=date), lambda: yunda_reset(page), ) -def yunda_expected_download_impl(page, force=False): +def yunda_expected_download_impl(page, force=False, date=None): """韵达:应到货物数据下载(单次执行,无重试;供自动化测试探测原始结果用)。""" print("\n▶ 开始执行【韵达 - 应到货物数据下载】任务...") @@ -211,11 +211,15 @@ def yunda_expected_download_impl(page, force=False): # 2. 读取服务端日期偏移(0=今天,1=昨天…),单日范围:起止同日 offset = state_store.get_offset("韵达") today = datetime.now() - target = today - timedelta(days=offset) + if date: + target = datetime.strptime(date, "%Y-%m-%d") + else: + target = today - timedelta(days=offset) target_ymd = f"{target.year}-{target.month}-{target.day}" start_date_ymd = target_ymd today_ymd = target_ymd - print(f">> 设置查询日期: [{target_ymd}](偏移 {offset},0=今天)") + src = f"指定 {date}" if date else f"偏移 {offset},0=今天" + print(f">> 设置查询日期: [{target_ymd}]({src})") # 设定起始时间 print(" >> 设置起始时间...") @@ -422,18 +426,18 @@ def yunda_expected_download_impl(page, force=False): return False -def yunda_actual_download(page, force=False): +def yunda_actual_download(page, force=False, date=None): """韵达:实到货物数据下载(内部含异常兜底重试,路由层无感)。""" return with_retry( "韵达", "实到", - lambda: yunda_actual_download_impl(page), + lambda: yunda_actual_download_impl(page, date=date), lambda: yunda_reset(page), ) -def yunda_actual_download_impl(page): +def yunda_actual_download_impl(page, date=None): """韵达:实到货物数据下载(单次执行,无重试;供自动化测试探测原始结果用)。""" print("\n▶ 开始执行【韵达 - 实到货物数据下载】任务...") @@ -464,12 +468,15 @@ def yunda_actual_download_impl(page): offset = state_store.get_offset("韵达", "actual") today = datetime.now() - target = today - timedelta(days=offset) + if date: + target = datetime.strptime(date, "%Y-%m-%d") + else: + target = today - timedelta(days=offset) start_date = target # 单日范围:起止同日 today = target # 让下方"截止时间"选择器也指向 target + src = f"指定 {date}" if date else f"偏移 {offset},0=今天" print( - f">> 设置实到查询日期: [{target.year}-{target.month}-{target.day}]" - f"(偏移 {offset},0=今天)" + f">> 设置实到查询日期: [{target.year}-{target.month}-{target.day}]({src})" ) print(" >> 正在设定起始时间...")