4.9 KiB
4.9 KiB
OpenHIS — AI 编码助手 指南
目的:帮助自动化/AI 编码代理快速上手本仓库,包含架构要点、关键文件、常用构建/运行命令以及项目约定。请只按照仓库内真实可见的内容提出修改建议或补充说明。
-
代码组织: 本项目是一个 Java 后端(多模块 Maven)+ Vue3 前端(Vite)的大型应用。
- 后端主模块目录:
openhis-server-new/(顶层为pom,包含多个子模块)。关键子模块示例:openhis-application,openhis-domain,openhis-common,core-*系列。 - 前端目录:
openhis-ui-vue3/(Vite + Vue 3,使用 Pinia、Element Plus 等)。
- 后端主模块目录:
-
大局观(Big Picture): 后端以 Spring Boot(Java 17)实现,使用多模块 Maven 管理公共库与业务模块;前端由单独仓库目录通过 Vite 构建并以环境变量(
VITE_APP_BASE_API)与后端交互。后端扫描com.core与com.openhis包(见OpenHisApplication.java),启动类位于:openhis-server-new/openhis-application/src/main/java/com/openhis/OpenHisApplication.java。 -
运行/构建(Windows PowerShell 示例):
- 构建后端(从仓库根执行):
cd openhis-server-new
mvn clean package -DskipTests
- 仅运行后端模块(开发时常用):
cd openhis-server-new/openhis-application
mvn spring-boot:run
# 或在 IDE 中运行 `com.openhis.OpenHisApplication` 的 main()
- 前端启动与构建(需要 Node.js v16.x,仓库 README 建议 v16.15):
cd openhis-ui-vue3
npm install
npm run dev # 本地开发(热重载)
npm run build:prod # 生产构建
-
环境与配置:
- 后端配置:
openhis-server-new/openhis-application/src/main/resources/application.yml(数据库、端口、profile 等)。README 还提及application-druid.yml(若存在请优先查看)。 - 前端配置:多个
.env.*文件(例如.env.development,.env.staging,.env.production),关键变量:VITE_APP_BASE_API(例如/dev-api),前端通过import.meta.env.VITE_APP_BASE_API拼接后端 URL(见src/utils/request.js、多个视图与组件)。
- 后端配置:
-
重要约定 / 模式:
- 后端采用 Java 17、Spring Boot 2.5.x 家族,父 POM在
openhis-server-new/pom.xml定义。常用依赖版本在该 POM 的<properties>中集中维护。 - 模块间以 Maven 模块依赖与
com.core/com.openhis包名分层(见pom.xml的<modules>与dependencyManagement)。 - 前端通过 Vite 插件配置(
openhis-ui-vue3/vite/plugins)管理 svg、自动导入等。UI 框架为 Element Plus,状态管理为 Pinia。
- 后端采用 Java 17、Spring Boot 2.5.x 家族,父 POM在
-
集成点 & 外部依赖:
- 数据库:PostgreSQL(README 建议 v16.2),仓库根含一个大型初始化 SQL:
数据库初始话脚本(请使用navicat16版本导入).sql,用于初始化表与演示数据。 - 缓存/会话:Redis(需自行配置)。
- 其他:Flowable(工作流),Druid(连接池监控),第三方服务通过特定配置类(例如
YbServiceConfig在OpenHisApplication中启用)。
- 数据库:PostgreSQL(README 建议 v16.2),仓库根含一个大型初始化 SQL:
-
调试与常见位置:
- 启动类:
openhis-server-new/openhis-application/src/main/java/com/openhis/OpenHisApplication.java。 - 全局配置:
openhis-server-new/openhis-application/src/main/resources/(application.yml、profile 文件等)。 - 前端入口:
openhis-ui-vue3/src/main.js、路由在openhis-ui-vue3/src/router/index.js。 - API 文档与监控路径(通常由后端暴露并被前端访问):
- Swagger UI:
<VITE_APP_BASE_API>/swagger-ui/index.html(前端视图在src/views/tool/swagger/index.vue)。 - Druid:
<VITE_APP_BASE_API>/druid/login.html(见前端相关视图引用)。
- Swagger UI:
- 启动类:
-
为 AI 代理的具体建议(如何安全、有效地修改代码):
- 修改后端时:优先在子模块(例如
openhis-application)本地运行mvn spring-boot:run验证启动与基础 API;大量改动前先执行mvn -T1C -DskipTests clean package在 CI 环境上验证构建(本地机器也可用)。 - 修改前端时:检查/调整对应
.env.*文件中的VITE_APP_BASE_API,使用npm run dev本地联调后端接口(可通过代理或将VITE_APP_BASE_API指向后端地址)。 - 修改数据库结构或 seed:请参考仓库根的 SQL 初始化脚本,任何 DDL/数据变更需同步该脚本并通知数据库管理员/运维。
- 修改后端时:优先在子模块(例如
-
举例(常见任务示例):
- 本地联调前端 + 后端(PowerShell):
# 启动后端
cd openhis-server-new/openhis-application
mvn spring-boot:run
# 启动前端(另开终端)
cd openhis-ui-vue3
npm run dev
如需我把这些内容合并为更短或更详细的版本,或把其中某部分(例如后端模块依赖关系图、关键 Java 包说明)展开,请告诉我要增强哪一节。