# 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 示例)**: - 构建后端(从仓库根执行): ```powershell cd openhis-server-new mvn clean package -DskipTests ``` - 仅运行后端模块(开发时常用): ```powershell cd openhis-server-new/openhis-application mvn spring-boot:run # 或在 IDE 中运行 `com.openhis.OpenHisApplication` 的 main() ``` - 前端启动与构建(需要 Node.js v16.x,仓库 README 建议 v16.15): ```powershell 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 的 `` 中集中维护。 - 模块间以 Maven 模块依赖与 `com.core` / `com.openhis` 包名分层(见 `pom.xml` 的 `` 与 `dependencyManagement`)。 - 前端通过 Vite 插件配置(`openhis-ui-vue3/vite/plugins`)管理 svg、自动导入等。UI 框架为 Element Plus,状态管理为 Pinia。 - **集成点 & 外部依赖**: - 数据库:PostgreSQL(README 建议 v16.2),仓库根含一个大型初始化 SQL:`数据库初始话脚本(请使用navicat16版本导入).sql`,用于初始化表与演示数据。 - 缓存/会话:Redis(需自行配置)。 - 其他:Flowable(工作流),Druid(连接池监控),第三方服务通过特定配置类(例如 `YbServiceConfig` 在 `OpenHisApplication` 中启用)。 - **调试与常见位置**: - 启动类:`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: `/swagger-ui/index.html`(前端视图在 `src/views/tool/swagger/index.vue`)。 - Druid: `/druid/login.html`(见前端相关视图引用)。 - **为 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): ```powershell # 启动后端 cd openhis-server-new/openhis-application mvn spring-boot:run # 启动前端(另开终端) cd openhis-ui-vue3 npm run dev ``` 如需我把这些内容合并为更短或更详细的版本,或把其中某部分(例如后端模块依赖关系图、关键 Java 包说明)展开,请告诉我要增强哪一节。