# Human ResourceBackend **Repository Path**: console123/human-resource-backend ## Basic Information - **Project Name**: Human ResourceBackend - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-10 - **Last Updated**: 2026-02-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 人事管理系统 - 后端开发指南 ## 项目概述 基于 .NET 8 + 达梦数据库的人事管理系统后端API ## 技术栈 - .NET 8 Web API - 达梦数据库 (DmProvider 2.0.0) - ADO.NET原生SQL操作 - JWT身份认证 - BCrypt密码加密 ## 项目结构 ``` HRManagement.sln ├── HRManagement.API # Web API层 (控制器、中间件) ├── HRManagement.Application # 应用层 (接口、DTO、服务) ├── HRManagement.Core # 核心层 (实体类、枚举) └── HRManagement.Infrastructure # 基础设施层 (数据访问、仓储实现) ``` ### 核心层 (HRManagement.Core) 已完成的文件: - `Common/BaseEntity.cs` - 实体基类 - `Enums/Gender.cs` - 性别枚举 - `Enums/PerformanceGrade.cs` - 绩效等级枚举 - `Enums/CycleType.cs` - 考核周期类型枚举 - `Entities/User.cs` - 用户实体 - `Entities/Department.cs` - 部门实体(树形结构) - `Entities/Employee.cs` - 员工实体 - `Entities/PerformanceReview.cs` - 绩效考核实体 ### 应用层 (HRManagement.Application) 已完成的接口: - `Interfaces/IRepository.cs` - 仓储基接口 - `Interfaces/IUserRepository.cs` - 用户仓储接口 - `Interfaces/IDepartmentRepository.cs` - 部门仓储接口 - `Interfaces/IEmployeeRepository.cs` - 员工仓储接口 - `Interfaces/IPerformanceReviewRepository.cs` - 绩效考核仓储接口 ### 基础设施层 (HRManagement.Infrastructure) 已完成的文件: - `Data/DmDbHelper.cs` - 达梦数据库操作帮助类 - `Data/CreateTables.sql` - 数据库建表SQL脚本 - `Repositories/UserRepository.cs` - 用户仓储实现 - `Repositories/DepartmentRepository.cs` - 部门仓储实现 - `Repositories/EmployeeRepository.cs` - 员工仓储实现 - `Repositories/PerformanceReviewRepository.cs` - 绩效考核仓储实现 ## 数据库设计 ### 表结构 1. **Users** - 用户表 - 字段:Id, Username, PasswordHash, RealName, Role, CreatedAt, UpdatedAt, IsDelete 2. **Departments** - 部门表(树形结构) - 字段:Id, Name, Description, ParentId, ManagerId, CreatedAt, UpdatedAt, IsDelete - 外键:ParentId -> Departments(Id), ManagerId -> Employees(Id) 3. **Employees** - 员工表 - 字段:Id, Name, Gender, PhoneNumber, DepartmentId, Position, HireDate, Email, Remark, CreatedAt, UpdatedAt, IsDelete - 外键:DepartmentId -> Departments(Id) 4. **PerformanceReviews** - 绩效考核表 - 字段:Id, EmployeeId, CycleType, Cycle, Score, Grade, Comments, CreatedAt, UpdatedAt, IsDelete - 外键:EmployeeId -> Employees(Id) - 唯一约束:(EmployeeId, Cycle) ### 绩效等级规则 - 优秀:90分以上 - 良好:80-89分 - 合格:60-79分 - 不合格:60分以下 ## 下一步工作 ### 待完成的后端任务: 1. **配置appsettings.json** - 添加达梦数据库连接字符串 - 配置JWT密钥和参数 2. **创建DTO类** - LoginRequest/LoginResponse - 各模块的Create/Update/Query DTO 3. **实现JWT认证服务** - JwtService 生成和验证Token - 配置认证中间件 4. **创建API控制器** - AuthController - 登录/登出 - DepartmentController - 部门管理 - EmployeeController - 员工管理 - PerformanceController - 绩效考核管理 5. **配置依赖注入** - Program.cs中注册所有服务和仓储 6. **添加通用响应类** - ApiResponse 统一返回格式 - 全局异常处理中间件 7. **实现Excel导入导出** - 使用EPPlus或NPOI库 8. **配置CORS** - 允许前端跨域访问 ## 数据库初始化步骤 1. 安装并启动达梦数据库 2. 创建数据库(假设数据库名为 HRDB) ```sql CREATE DATABASE HRDB; ``` 3. 执行建表脚本 ```bash cd HRManagement.Infrastructure/Data # 在达梦数据库管理工具中执行 CreateTables.sql ``` 4. 更新appsettings.json中的连接字符串 ```json "ConnectionStrings": { "DefaultConnection": "Server=localhost;UserId=SYSDBA;PWD=SYSDBA;Database=HRDB" } ``` ## 运行项目 ```bash cd HRManagement.API dotnet run ``` 访问 Swagger UI: `https://localhost:5001/swagger` ## 注意事项 1. 所有删除操作都是逻辑删除(IsDelete=1),不会物理删除数据 2. 部门删除前会校验是否有员工,有员工则禁止删除 3. 员工删除前会校验是否是部门负责人 4. 同一员工同一周期只能有一条考核记录 5. 绩效等级根据分数自动计算,无需手动设置 ## 已安装的NuGet包 - Microsoft.EntityFrameworkCore (8.0.0) - 虽然最终使用ADO.NET,但保留用于扩展 - Microsoft.EntityFrameworkCore.Tools (8.0.0) - Microsoft.AspNetCore.Authentication.JwtBearer (8.0.0) - Swashbuckle.AspNetCore (6.5.0) - AutoMapper (13.0.1) - BCrypt.Net-Next (4.0.3) - DmProvider