聚胜算每日账单导出(头条放心购 / 京东日账单)
把聚胜算「经营中心 → 平台原始账单[新]」的账单定时导出并导入财务系统(浏览器自动化 + 受控导入)。
平台
-Platform |
胜算页签 | 导入命令 | 财务系统落点 |
|---|---|---|---|
toutiao |
头条放心购 → 资金流水 | business-mirror:import-douyin-authoritative |
账单流水数据 › 店铺收款账户账单 › 抖音账户 |
jd |
京东商城 → 京东日账单 | business-mirror:import-jd-daily |
京东账单 + 京喜账单(一次导入按店铺名拆两边,两边合计恒等于导出行数) |
jd-wallet |
京东商城 → 京东钱包 | business-mirror:import-jd-wallet |
京东网银钱包账户 |
用法
# 三个平台都跑:区间「月初 → 昨日」
pwsh -File scripts\erp-daily-bills\run-erp-daily.ps1
# 只跑京东,补历史月份
pwsh -File scripts\erp-daily-bills\run-erp-daily.ps1 -Platform jd -Through 2026-07-31
# 只跑京东钱包,补历史月份
pwsh -File scripts\erp-daily-bills\run-erp-daily.ps1 -Platform jd-wallet -Through 2026-07-31
# 只导出不导入(排查)
pwsh -File scripts\erp-daily-bills\run-erp-daily.ps1 -Platform toutiao -Through 2026-10-05 -SkipImport
- 归期:
--through(默认昨日)所在月份;每月 1 日自动导出上一个整月。 - 无差异跳过:该平台该月已导入且笔数/收入/支出完全一致时跳过导入(
-ForceImport可强制重刷);状态记在runtime/private/erp-exports/imported-state.json。 - 超过胜算同步导出上限(响应
超出同步导出允许最大数据量)时,脚本自动轮询「异步导出下载管理」取回本次任务的全部分片,逐片转 CSV 后合并成一份再导入;仍可用-Start/-Through分段导出。 - 导入前用页面笔数(共 N 条)与导出行数核对,不一致就跳过导入(
-ForceImport可强制),避免只导入一部分。 - 稳定性:导出最多重试 3 次(胜算页面偶发日历面板/授权弹窗异常);上传与"导入+回验"失败自动重试 3 次(含重新上传 CSV),用于吸收服务器 SSH 偶发断连。
- 失败即失败:导出/转 CSV/笔数核对/上传/导入回验任一步失败,都会不写本地状态、不归档,并在结束时以退出码 1 结束(下次运行会重新导入),不会把失败当成功记入
imported-state.json。
覆盖校验
导入后可核对三个数据集在指定区间内是否逐月覆盖到截止日:
docker exec -u www-data caiwu_app php artisan business-mirror:verify-erp-daily-coverage --from=2026-07-01 --to=2026-10-19
命令会逐个月份检查期间起止范围、有效版本行数和登记行数;缺月、只导到月中或行数不一致都会返回失败。
组成
| 文件 | 作用 |
|---|---|
run-erp-daily.ps1 |
统一入口:导出 → 转 CSV → 差异判断 → 上传 → 受控导入 → 页面回验 → 归档 → 日志 |
export-daily.mjs |
浏览器自动化导出(登录、切页签、设日期、查询、导出、取下载直链) |
erp-session.mjs |
胜算登录与会话工具(凭据读 runtime/private/敏感信息.md,可用 ERP_SECRET_FILE 覆盖) |
cdp.mjs |
无依赖的 Edge DevTools Protocol 驱动 |
xlsx-to-csv.py |
导出文件(xlsx)转 UTF-8 CSV,并输出笔数/收入/支出核对数 |
说明
- 导入走财务系统既有受控导入命令(带笔数/收支核对、原子切换、保留旧版本可回滚),不改上游数据。
- 凭据、导出文件、日志都写
runtime/private/(.gitignore忽略),不进仓库。 - 定时:Windows 计划任务每天 09:30 调
run-erp-daily.ps1(京东取昨日;头条取月初→昨日)。