lianlonggangandClaude f333c87aa5 perf: 精简 fat jar 体积(34MB→18MB)+ Basic 认证增加 authFlag 总开关
- pom 移除未使用依赖:sqlite-jdbc(Agent 已拆 Python)、h2(dev Mock)、
  sa-token-solon-plugin(鉴权已改手写 Basic),并清理对应版本属性
- OrderApi.checkBasic 增加 order.authFlag 总开关(默认 true,对齐原程序
  sa-token.authFlag 语义,false 时 /order/** 全放行)
- app.yml 增加 order.authFlag 配置项

Co-Authored-By: Claude <noreply@anthropic.com>
2026-08-27 15:52:29 +08:00

Hospital Front — 医院前置机程序

基于 Kotlin + Solon 4.0.6 重构的医院前置机对接系统

重构源:hospitalmiddleSpringBoot 2.7 + MyBatis-Plus + Oracle/SqlServer

完整方案:[E:\data\ob_data\myob\11 健康长庆\医院前置机重构](../ob_data)


1. 项目简介

体检预约系统通过本程序与多家医院 HIS 系统对接,实现:

  • 体检预约的提交、取消
  • 体检项目查询、状态查询
  • 体检结果/结论/建议的获取
  • 单位信息同步

支持 5 家医院(拼音编码):

编码 医院名 数据库
xinglongyuan 兴隆园医院 Oracle
qingyang 庆阳医院 Oracle
ningxia 宁夏宝石花医院 SqlServer
yanan 延安医院 SqlServer
jinghe 泾河医院 Oracle

2. 技术栈

  • 语言Kotlin 2.0.21jvmTarget=17
  • 框架Solon 4.0.6(国产轻量级 Java 框架)
  • JDK17 LTS(推荐)或 21 LTS
  • ORMMyBatis-Plus 3.5.9
  • 数据库Oracle / SqlServer(直连医院库,不可修改)
  • 日志Logback 1.5.12
  • HTTP/WSOkHttp 4.12.0
  • 构建Maven 3.9+

依赖瘦身:不接入 Knife4j / Druid / Lombok / Jasypt(详见 01-技术栈选型.md


3. 项目结构

hospital-front/
├── pom.xml
├── README.md
├── .gitignore
├── src/
│   ├── main/
│   │   ├── kotlin/com/hospital/front/
│   │   │   ├── HospitalFrontApp.kt          # @SolonMain 启动类
│   │   │   ├── adapter/                     # 医院适配器(策略模式)
│   │   │   ├── api/                         # HTTP 接口层(按业务域)
│   │   │   ├── service/                     # 业务服务层
│   │   │   ├── mapper/                      # 数据访问层
│   │   │   ├── vo/                          # 值对象
│   │   │   ├── dto/                         # 数据传输对象
│   │   │   ├── infra/                       # 基础设施
│   │   │   └── task/                        # 定时任务
│   │   └── resources/
│   │       ├── app.yml                      # Solon 主配置
│   │       ├── logback.xml                  # 日志配置
│   │       └── mapper/                      # MyBatis XML
│   └── test/kotlin/                         # 单元测试
└── pac/                                     # 部署包(运行时外置)
    ├── bin/                                 # 启动脚本
    ├── conf/                                # 外置配置
    ├── backup/                              # 历史版本
    ├── log/                                 # 日志
    ├── pid/                                 # PID 文件
    └── tmp/                                 # 临时文件

4. 构建

mvn clean package -DskipTests
# 产出:target/hospital-front-1.0.0.jar

5. 启动(开发环境)

# 拷贝外置配置(首次启动)
cp -r pac/conf-example pac/conf
# 编辑配置
vim pac/conf/app-jinghe.yml

# 启动(默认加载 app.yml + conf/app-{HOSPITAL}.yml
HOSPITAL=jinghe java -jar target/hospital-front-1.0.0.jar

6. 部署

详细部署、升级、回滚 SOP05-部署运维.md

Windows Server 简版

D:
cd D:\hospital-front\bin
call start.bat start

7. 文档

完整设计文档位于:E:\data\ob_data\myob\11 健康长庆\医院前置机重构\

文档 内容
00-总体方案.md 整体方案
01-技术栈选型.md Solon 选型、版本、注解对照
02-医院差异化矩阵.md 5 家医院差异、Adapter 拆分
03-架构设计.md 系统架构、模块、时序
04-数据流与接口契约.md 接口清单、入参出参
05-部署运维.md 部署、升级、回滚 SOP
06-变更记录.md 所有变更登记

8. 任务进度

Step 内容 状态
1 工程骨架
2 5 医院配置中心
3 业务接口 Kotlin 重写
4 5 套 Mapper 适配
5 主程序被控端 API
6 Agent 工程
7 升级流程
8 日志推送
9 B 端管理后台
10 联调 + 文档
S
Description
医院前置机程序
Readme
306 KiB
Languages
Java 100%