# sea-hr **Repository Path**: creative-space_2/sea-hr ## Basic Information - **Project Name**: sea-hr - **Description**: No description available - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-06 - **Last Updated**: 2026-04-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Sea HR 微服务套件 一体化人力资源(HR)领域微服务工程:身份认证、组织与员工、考勤、薪酬、通知及扩展域(福利、培训、零工、报表、工作流等),经 **Spring Cloud Gateway** 统一对外入口。 ## 环境要求 - **JDK 21**、**Maven 3.8+** - **MySQL 8**(推荐用仓库根目录 `docker compose` 启动) - 前端:**Node.js 18+**(`sea-hr-web`、`sea-hr-portal`) - 小程序:**微信开发者工具** ## 数据库(全局) ```bash docker compose up -d mysql ``` - 库名:`sea_hr` - 默认 root 密码:**`Root123456`**(与 `docker-compose.yml` 及各服务 `application.yml` 中 `SEA_HR_DB_PASSWORD` 默认值一致) - 可通过环境变量覆盖:`SEA_HR_DB_HOST`、`SEA_HR_DB_PORT`、`SEA_HR_DB_NAME`、`SEA_HR_DB_USER`、`SEA_HR_DB_PASSWORD` **数据库初始化**:在启动各服务前,请在 MySQL 中执行根目录 **`sql/sea_hr_schema.sql`**(全量建表,已移除 Flyway 自动迁移)。 ## JWT 与网关鉴权 - 签发:`iam-service`(配置项 `sea.hr.security.jwt.secret`) - 校验:`gateway-service` 需与 IAM **同一密钥**(默认已对齐) - 白名单路径默认含:`/iam/login`、`/actuator/**` - 本地可关闭网关 JWT:`SEA_HR_GATEWAY_AUTH_ENABLED=false` ## 模块与端口一览 | 模块 | 直连端口 | 网关路径前缀(示例) | |------|----------|----------------------| | gateway-service | **8080** | — | | iam-service | 8090 | `/iam/**`、`/api/iam/**` | | org-service | 8081 | `/org/**`、`/api/org/**` | | employee-service | 8082 | `/employees/**`、`/api/employee/**` | | integration-service | 8092 | `/integration/**` | | report-service | 8093 | `/report/**` | | attendance-service | 8094 | `/attendance/**` | | payroll-service | 8095 | `/payroll/**` | | benefit-service | 8096 | `/benefits/**` | | gig-service | 8097 | `/gigs/**` | | training-service | 8098 | `/trainings/**` | | dashboard-service | 8099 | `/dashboard/**` | | notification-service | 8091 | `/notifications/**` | | workflow-service | 8100 | `/workflow/**` | | file-service | 8101 | `/files/**` | | scheduler-service | 8102 | `/scheduler/**` | | search-service | 8103 | `/search/**` | | audit-service | 8104 | `/audit/**` | | mdm-service | 8105 | `/mdm/**` | 对外调用建议统一走 **http://127.0.0.1:8080**(网关),由网关转发到上表端口。 ## 启动示例(后端) 在仓库根目录编译: ```bash mvn -q -DskipTests compile ``` 单模块运行(示例): ```bash cd iam-service mvn spring-boot:run ``` 需按依赖关系启动:**MySQL → 各业务服务 → gateway**(或至少先起 IAM 与网关所需业务)。 ### 一键本地启动(Windows) 若重复执行启动脚本或上次 CMD 未关闭,常见报错为 **`Web server failed to start. Port xxxx was already in use`**。可在仓库根目录执行: ```powershell powershell -ExecutionPolicy Bypass -File .\scripts\stop-sea-hr.ps1 powershell -ExecutionPolicy Bypass -File .\scripts\start-all.ps1 ``` `start-all.ps1` 默认会先调用 `stop-sea-hr.ps1` 释放网关与各服务、Vite 约定端口;若需保留已有进程可加 `-NoStop`。**注意**:`stop-sea-hr.ps1` 会结束占用上述端口的任意进程,请勿在与其他应用共用端口的机器上随意执行。 首次克隆后,请在 `sea-hr-web`、`sea-hr-portal` 各执行一次 `npm install`,否则脚本里 `npm run dev` 会失败。 ## 前端 | 项目 | 说明 | 开发命令 | |------|------|----------| | [sea-hr-web](./sea-hr-web/README.md) | 后台管理(Vue3 + Element Plus),默认代理网关 8080 | `npm install && npm run dev` → :5173 | | [sea-hr-portal](./sea-hr-portal/README.md) | 员工自助 Web | `npm install && npm run dev` → :5174 | | [sea-hr-miniprogram](./sea-hr-miniprogram/README.md) | 微信小程序 | 用微信开发者工具打开目录 | ## 各服务详细说明 各子目录下均有 **README.md**,包含该服务的启动方式、业务说明与主要 REST 接口列表。 ## 目录结构(Java 模块) - `gateway-service`:API 网关 - `iam-service` / `org-service` / `employee-service`:核心主数据与认证 - `attendance-service` / `payroll-service` / `notification-service`:考勤、薪酬、消息 - 其余为扩展域占位与业务能力实现,详见对应 README --- *更多设计说明见 `docs/` 目录(若有)。*