Files
hospital-front/pac/conf-example
lianlonggangandClaude 535162e63a feat: Kotlin+Solon 重构医院前置机(业务+被控端+Agent+升级流程)
主程序(com.hospital.front):
- Kotlin 2.0.21 + Solon 3.10.7 + MyBatis-Plus + HikariCP + Logback
- HospitalAdapter 策略模式:5 家医院(xinglongyuan/qingyang/ningxia/yanan/jinghe)+ dev Mock
- 三方言 Mapper:bsm(Oracle)/ nx / ya(SqlServer),存储过程参数原样迁移
- 20 个业务接口(/order/*)+ 11 个被控端接口(/api/admin/*,Token 鉴权+脱敏+防穿越)
- 全局异常处理、Result 统一响应、业务开关热更新

Agent(com.hospital.agent,独立进程,单 jar 双 main):
- WebSocket 主动出站连 B 端(指数退避重连),心跳转发主程序健康
- ProcessGuard 看门狗:3 次探测失败自动拉起主程序
- UpgradeCommand:下载→SHA256 校验→备份→替换→拉起→健康检查→失败自动回滚
- 命令分发:PING/日志/配置/重启等 10 类命令

部署(pac/):
- Windows Server 脚本(start.bat/agent.bat/WinSW 服务),纯 ASCII 注释防 GBK 错乱
- 5 家医院配置模板 + agent.properties

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-21 12:35:05 +08:00
..

外置配置示例(部署时拷贝到 conf\)

使用流程

  1. 首次部署:把整个 conf-example\ 目录拷贝为 conf\
    xcopy /E /I conf-example conf
    
  2. 编辑 conf\app-{编码}.yml,把 CHANGE_ME 替换为真实密码(或通过环境变量注入)
  3. 根据实际部署环境修改 hospital.id、数据库 URL 等

本目录不入 Git(已在 .gitignore 中声明 pac/conf/*.yml)。

5 家医院配置清单

医院 文件 数据库 默认端口 hm.type
兴隆园医院 app-xinglongyuan.yml Oracle 8082 bsm
庆阳医院 app-qingyang.yml Oracle 8082 bsm
宁夏宝石花医院 app-ningxia.yml SqlServer 8082 nx
延安医院 app-yanan.yml SqlServer 8082 ya
泾河医院 app-jinghe.yml Oracle 8082 bsm

切换医院

# 启动泾河(默认)
bin\start.bat start

# 启动其他医院
set HOSPITAL=xinglongyuan
bin\start.bat start

环境变量占位

配置文件中使用 ${ENV_VAR:DEFAULT} 占位语法,例如:

password: ${DB_PWD_JINGHE:CHANGE_ME}

启动前设置环境变量(推荐,避免明文写密码):

set DB_PWD_JINGHE=ActualPassword
bin\start.bat start

安全提示

  1. 部署后 chmod 600 整个 conf\ 目录(Linux)或 Set-AclWindows PowerShell
  2. 不要把包含真实密码的 yml 提交到 Git