测试处方上传

This commit is contained in:
李琦
2026-10-08 16:24:33 +08:00
parent 60102aead6
commit 3dc410a5fd
3 changed files with 17 additions and 31 deletions

View File

@@ -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
```

View File

@@ -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=...] 兼容旧单次参数

View File

@@ -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=... # 单独测文件上传