feat(yunda): support date arg (date takes precedence over offset)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Misaka_Company
2026-07-29 13:08:06 +08:00
parent e240d92ad9
commit bacccc43ab

View File

@@ -169,18 +169,18 @@ def yunda_smart_menu_click(page, menu_path):
page.wait_for_timeout(1000) page.wait_for_timeout(1000)
def yunda_expected_download(page, force=False): def yunda_expected_download(page, force=False, date=None):
"""韵达:应到货物数据下载(内部含异常兜底重试,路由层无感)。""" """韵达:应到货物数据下载(内部含异常兜底重试,路由层无感)。"""
return with_retry( 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), lambda: yunda_reset(page),
) )
def yunda_expected_download_impl(page, force=False): def yunda_expected_download_impl(page, force=False, date=None):
"""韵达:应到货物数据下载(单次执行,无重试;供自动化测试探测原始结果用)。""" """韵达:应到货物数据下载(单次执行,无重试;供自动化测试探测原始结果用)。"""
print("\n▶ 开始执行【韵达 - 应到货物数据下载】任务...") print("\n▶ 开始执行【韵达 - 应到货物数据下载】任务...")
@@ -211,11 +211,15 @@ def yunda_expected_download_impl(page, force=False):
# 2. 读取服务端日期偏移0=今天1=昨天…),单日范围:起止同日 # 2. 读取服务端日期偏移0=今天1=昨天…),单日范围:起止同日
offset = state_store.get_offset("韵达") offset = state_store.get_offset("韵达")
today = datetime.now() 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}" target_ymd = f"{target.year}-{target.month}-{target.day}"
start_date_ymd = target_ymd start_date_ymd = target_ymd
today_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(" >> 设置起始时间...") print(" >> 设置起始时间...")
@@ -422,18 +426,18 @@ def yunda_expected_download_impl(page, force=False):
return False return False
def yunda_actual_download(page, force=False): def yunda_actual_download(page, force=False, date=None):
"""韵达:实到货物数据下载(内部含异常兜底重试,路由层无感)。""" """韵达:实到货物数据下载(内部含异常兜底重试,路由层无感)。"""
return with_retry( return with_retry(
"韵达", "韵达",
"实到", "实到",
lambda: yunda_actual_download_impl(page), lambda: yunda_actual_download_impl(page, date=date),
lambda: yunda_reset(page), lambda: yunda_reset(page),
) )
def yunda_actual_download_impl(page): def yunda_actual_download_impl(page, date=None):
"""韵达:实到货物数据下载(单次执行,无重试;供自动化测试探测原始结果用)。""" """韵达:实到货物数据下载(单次执行,无重试;供自动化测试探测原始结果用)。"""
print("\n▶ 开始执行【韵达 - 实到货物数据下载】任务...") print("\n▶ 开始执行【韵达 - 实到货物数据下载】任务...")
@@ -464,12 +468,15 @@ def yunda_actual_download_impl(page):
offset = state_store.get_offset("韵达", "actual") offset = state_store.get_offset("韵达", "actual")
today = datetime.now() 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 # 单日范围:起止同日 start_date = target # 单日范围:起止同日
today = target # 让下方"截止时间"选择器也指向 target today = target # 让下方"截止时间"选择器也指向 target
src = f"指定 {date}" if date else f"偏移 {offset}0=今天"
print( print(
f">> 设置实到查询日期: [{target.year}-{target.month}-{target.day}]" f">> 设置实到查询日期: [{target.year}-{target.month}-{target.day}]{src}"
f"(偏移 {offset}0=今天)"
) )
print(" >> 正在设定起始时间...") print(" >> 正在设定起始时间...")