# staff-mgr 员工管理模块 员工管理模块,提供员工(staff)增删改查 REST 接口。 ## 技术栈 - Java 17 / Spring Boot 3.2 - Spring Data JPA - MySQL 8.0(生产)/ H2(本地开发 & 测试) - Spring Security + JWT(对接 auth-mgr 的 Bearer Token) - SpringDoc OpenAPI ## 快速开始 ```bash # 本地开发(H2 内存库,无需外部依赖) mvn spring-boot:run # 生产(MySQL) mvn spring-boot:run -Dspring-boot.run.profiles=mysql ``` 启动后: - API 文档: http://localhost:8080/swagger-ui.html - H2 控制台(仅 dev): http://localhost:8080/h2-console ## 接口一览 基础路径 `/api/v1/staff`,所有接口需携带 `Authorization: Bearer `。 | 方法 | 路径 | 说明 | 权限 | |------|------|------|------| | POST | `/api/v1/staff` | 创建员工 | Admin, HR | | GET | `/api/v1/staff` | 分页查询员工列表 | Admin, HR, Employee(本部门) | | GET | `/api/v1/staff/{id}` | 查询员工详情 | Admin, HR, Employee(本部门) | | PUT | `/api/v1/staff/{id}` | 更新员工信息 | Admin, HR / Employee(本人部分字段) | | DELETE | `/api/v1/staff/{id}` | 逻辑删除员工 | Admin, HR | | POST | `/api/v1/staff/batch-delete` | 批量删除 | Admin, HR | | GET | `/api/v1/staff/{id}/change-logs` | 变更记录 | Admin, HR | | GET | `/api/v1/staff/audit-logs` | 操作日志 | Admin | | GET | `/api/v1/staff/check/employee-no` | 工号查重 | Admin, HR | | GET | `/api/v1/staff/departments` | 部门缓存列表 | 所有已认证用户 | ## 数据脱敏规则 - 身份证号:所有人统一脱敏,保留前 3 位与后 3 位。 - 手机号:保留前 3 位与后 4 位,Admin/HR 与 Employee(本部门) 脱敏,跨部门不返回。 - 紧急联系人电话:Admin/HR 明文,Employee(本部门) 脱敏,跨部门不返回。 - 技术级别/薪资等级:Admin/HR 明文,Employee 一律 null。 ## 数据库 生产库 DDL 见 `src/main/resources/db/schema.sql`。 ## 端到端验证记录(重试 2026-08-15) - 编译:`mvn -q -DskipTests compile` 通过 - 集成测试:`mvn test` => `Tests run: 8, Failures: 0, Errors: 0, Skipped: 0`,BUILD SUCCESS