53 lines
2.1 KiB
Markdown
53 lines
2.1 KiB
Markdown
# 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 <JWT>`。
|
||
|
||
| 方法 | 路径 | 说明 | 权限 |
|
||
|------|------|------|------|
|
||
| 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
|