diff --git a/README.md b/README.md index 06feef5..c996085 100644 --- a/README.md +++ b/README.md @@ -20,18 +20,18 @@ cp .env.example .env ## 运行 -**运营推荐**:直接双击或运行 `transit.exe`(无参数)。交互菜单 **10 秒内无操作** 将自动进入「定时执行(常驻)」;也可用菜单手动选「单次执行」或「定时执行」。超时秒数:`MENU_AUTO_SERVE_TIMEOUT_SEC`(默认 10)。 +**运营推荐**:直接双击或运行 `transit.exe`(无参数)即可进入**定时常驻**(Cron + Web 控制台)。单次同步请用 `transit sync`。 **完整命令说明**(单次 / 定时 / 计划任务 / 排错):见 **[docs/COMMANDS.md](docs/COMMANDS.md)**。 ```bash -# 交互菜单(无参数) +# 定时常驻(无参数,默认每天 22:00 或按 .env CRON) go run ./cmd/transit # 单次同步 go run ./cmd/transit sync --step=all --date=2026-05-18 -# 定时常驻(默认每天 22:00) +# 显式 serve(与无参数相同) go run ./cmd/transit serve ``` diff --git a/cmd/transit/main.go b/cmd/transit/main.go index b9164f7..6970edc 100644 --- a/cmd/transit/main.go +++ b/cmd/transit/main.go @@ -1,9 +1,9 @@ // 监管中转 CLI 入口。 // // 三种启动方式: -// 1. 无参数 transit.exe → 交互菜单(运营推荐) +// 1. 无参数 transit.exe → 直接进入定时常驻(Cron + Web 控制台) // 2. transit sync [...] → 单次同步后退出(脚本/计划任务) -// 3. transit serve → 常驻 + Cron 定时(默认每天 22:00) +// 3. transit serve → 与无参数相同,显式启动常驻 // // 单次同步主流程见 internal/sync/sync.go 的 runStep(①建批次→②拉取→③转发→④回调→⑤finish)。 package main @@ -37,12 +37,9 @@ func main() { log.Printf("applog init warning: %v", err) } + // 无参数:默认直接进入定时任务模式(常驻 + Cron),便于开机自启与双击运行。 if len(os.Args) < 2 { - if !isInteractiveTerminal() { - printUsage() - os.Exit(1) - } - runInteractiveMenu() + runServe() return } @@ -173,9 +170,9 @@ func displayDate(date string) string { func printUsage() { fmt.Println(`用法: - transit 无参数进入交互菜单(运营推荐,需控制台) + transit 无参数直接进入定时常驻 + Web 控制台(默认 :8765) transit sync [--step=all] [--date=YYYY-MM-DD] 单次同步 - transit serve 定时常驻 + Web 控制台(默认 :8765) + transit serve 与无参数相同,显式启动常驻 transit pdf-test [--prescription-id=N] 单独测 HTML→PDF 落盘 transit upload-test --pdf=PATH 单独测监管文件上传 transit --step=all [--date=...] 兼容旧单次参数 diff --git a/docs/COMMANDS.md b/docs/COMMANDS.md index e335029..8913bcf 100644 --- a/docs/COMMANDS.md +++ b/docs/COMMANDS.md @@ -9,9 +9,9 @@ --- -## 运营推荐:直接运行(交互菜单) +## 运营推荐:直接运行(定时常驻) -无参数启动程序,按中文提示选择,无需记忆子命令: +无参数启动程序即进入定时任务模式(Cron + Web 控制台),无需再选菜单: ```bat transit.exe @@ -23,23 +23,13 @@ transit.exe go run ./cmd/transit ``` -菜单示例: +等价于 `transit serve`:进程常驻,按 `.env` 中 `CRON_EXPR` / `SCHEDULE_TIME`(默认每天 22:00)自动执行 `step=all`,并启动 Web 控制台(默认 `http://127.0.0.1:8765/`)。 -``` -======== 互联网医院监管中转 ======== - 1) 单次执行(跑一轮后退出) - 2) 定时执行(常驻,按 .env 中 CRON 每天跑) - 3) 查看日志(Web 控制台,不跑定时) - 0) 退出 -10s 内未选择将自动启动「2) 定时执行(常驻)」 -请选择 [0-3]: -``` +单次同步请用: -- **10 秒无输入**:自动选择 **2** 并进入确认步骤;确认步骤同样 **10 秒无输入** 则自动启动常驻(适合双击 `transit.exe` 无人值守)。超时秒数可用环境变量 `MENU_AUTO_SERVE_TIMEOUT_SEC`(正整数,默认 10)调整。 -- 选 **1**:再输入 `step`(默认 all)、`date`(回车=按 ANCHOR_OFFSET_DAYS 推算,默认昨日);该路径仍须手动输入,无自动超时。 -- 选 **2**:显示当前 cron 配置,确认后进程常驻,到点自动 `step=all`,并启动 Web 控制台(默认 `http://127.0.0.1:8765/`)。 -- 选 **3**:仅启动 Web,可浏览文件日志与本机同步流水(测试同步需选 2 用 serve)。 -- 选 **0**:退出。 +```bat +transit.exe sync --step=all +``` ### Web 控制台(serve 自动启动) @@ -204,7 +194,6 @@ xk-hy-transit-go\log\transit\ | `batch_id required` | 云端拉取接口需先 `batch/create`;请用新版 sync 流程 | | `pull consult http 401` | Token 错误或过期 | | 转发超时 | 检查 forward-go 是否启动、`ALLOW_IPS` 是否拦了中转机 IP | -| 交互菜单不出现 | 非 TTY 环境(CI/重定向)会只打印用法;请用 `sync`/`serve` 子命令 | | PDF 未生成 / chromedp 报错 | 安装 Chrome 或设置 `CHROME_PATH`;首次需 `go mod tidy` 拉取 chromedp 依赖 | | 样式与 PC 不一致 | 对比 `GET /api/hy/transit/prescription/detail` 的 `recipe_file_html` 与后台处方打印预览 | | `upload token empty` / `appKey/appSecret/fileBucket 未配置` | xk-api 或 transit `.env` 配置 `HY_APP_KEY` / `HY_APP_SECRET` / `HY_FILE_BUCKET`;`/config` 点「重新拉取」 | @@ -230,7 +219,7 @@ xk-hy-transit-go\log\transit\ ## 子命令速查 ```text -transit # 无参数 → 交互菜单(运营) +transit # 无参数 → 定时常驻(同 serve) transit sync ... # 单次同步 transit serve # 定时常驻 transit upload-test --pdf=... # 单独测文件上传