diff --git a/scripts/erp-daily-bills/export-daily.mjs b/scripts/erp-daily-bills/export-daily.mjs index 74b49387..36a42430 100644 --- a/scripts/erp-daily-bills/export-daily.mjs +++ b/scripts/erp-daily-bills/export-daily.mjs @@ -192,7 +192,20 @@ for (let attempt = 1; attempt <= 4 && !countText; attempt++) { log(`查询第${attempt}次:笔数=${countText},新请求=${seen.list.length - before}`); if (!countText) await sleep(2000); } -if (!countText) throw new Error('查询未返回数据'); +if (!countText) { + // 胜算该区间还没有账单(如当月账单尚未拉取)时按“无数据”结束,不算失败。 + const noData = await evaluate(cdp, sid, `((document.body.innerText || '').includes('暂无数据'))`); + if (noData) { + log('该区间胜算暂无数据,跳过导出:' + monthStart + ' ~ ' + through); + fs.writeFileSync(path.join(OUT_DIR, 'last-export.json'), JSON.stringify({ + platform: platformKey, platformLabel: platform.label, empty: true, + monthStart, through, pageCount: 0, + }, null, 2)); + close(); + process.exit(0); + } + throw new Error('查询未返回数据'); +} log('页面笔数:', countText); // 3) 导出——同样带重试 diff --git a/scripts/erp-daily-bills/run-erp-daily.ps1 b/scripts/erp-daily-bills/run-erp-daily.ps1 index 8db4c99a..7264699c 100644 --- a/scripts/erp-daily-bills/run-erp-daily.ps1 +++ b/scripts/erp-daily-bills/run-erp-daily.ps1 @@ -79,6 +79,10 @@ try { if ($LASTEXITCODE -ne 0) { Write-Log ($spec.label + ' 导出失败(exit=' + $LASTEXITCODE + ')'); continue } $summary = Get-Content -LiteralPath (Join-Path $exportDir 'last-export.json') -Raw | ConvertFrom-Json + if ($summary.empty) { + Write-Log ($spec.label + ':该区间胜算暂无数据,跳过(未改动生产)') + continue + } $rawFile = $summary.file $csvFile = [IO.Path]::ChangeExtension($rawFile, '.csv') $conv = (& $python (Join-Path $root 'xlsx-to-csv.py') $rawFile $csvFile 2>&1 | Out-String)