From 9174a4cc4088f7fa0c69c8beaed016106b84ce56 Mon Sep 17 00:00:00 2001 From: Niko <1377382065@qq.com> Date: Tue, 5 May 2026 16:06:48 +0800 Subject: [PATCH] Skip download and import directly if file for the date already exists Co-Authored-By: Claude Opus 4.7 --- src/main/java/com/ets/scraper/EtsScraper.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/ets/scraper/EtsScraper.java b/src/main/java/com/ets/scraper/EtsScraper.java index 653c1d1..303005d 100644 --- a/src/main/java/com/ets/scraper/EtsScraper.java +++ b/src/main/java/com/ets/scraper/EtsScraper.java @@ -81,6 +81,16 @@ public class EtsScraper { String dateStrFileName = targetDate.format(DateTimeFormatter.ofPattern("yyyyMMdd")); + Path downloadPath = Path.of("downloads").toAbsolutePath().normalize(); + Path savedFile = downloadPath.resolve("三联单列表_" + dateStrFileName + ".xls"); + + if (java.nio.file.Files.exists(savedFile) && java.nio.file.Files.size(savedFile) > 0) { + System.out.println("[+] File already exists: " + savedFile); + System.out.println("[+] File size: " + java.nio.file.Files.size(savedFile) + " bytes"); + autoImportBill(savedFile, proxyHost, proxyUser, proxyPass); + return; + } + try { createDirectories(SCREENSHOT_DIR); } catch (Exception e) { @@ -195,8 +205,6 @@ public class EtsScraper { if (page.locator("#Export_ThreeBillList_Button").count() > 0) { System.out.println("[*] Clicking export button..."); // 设置下载目录 - Path downloadPath = Path.of("downloads").toAbsolutePath().normalize(); - java.nio.file.Files.createDirectories(downloadPath); // 点击主导出按钮打开对话框,再用 JS click 触发对话框内导出按钮 Download dl = page.waitForDownload( new Page.WaitForDownloadOptions().setTimeout(300000), @@ -207,7 +215,6 @@ public class EtsScraper { page.evaluate("document.querySelectorAll('button').forEach(b => { if (b.textContent.trim() === '导出') b.click(); })"); }); System.out.println("[*] Waiting for download to complete..."); - Path savedFile = downloadPath.resolve("三联单列表_" + dateStrFileName + ".xls"); dl.saveAs(savedFile); System.out.println("[+] Download saved to: " + savedFile); if (java.nio.file.Files.size(savedFile) == 0) {