thinkphp人力资源管理系统以招聘→培训→绩效闭环为核心,通过模块解耦、清晰数据关联和rbac权限控制实现。招聘含岗位发布、简历管理、面试安排;培训涵盖课程库、报名、学习记录;绩效支持周期设定、多类指标与多维评分;共性要求权限隔离、操作日志及saas扩展性。

用ThinkPHP搭建人力资源管理系统,核心在于模块解耦、数据关联清晰、权限控制到位。招聘、培训、绩效三个模块不是孤立功能,而是围绕“人”形成闭环:招聘引入人才 → 培训提升能力 → 绩效验证产出。下面从结构设计、关键实现和注意事项三方面详解。
招聘模块:岗位发布 + 简历管理 + 面试流程
招聘不是简单发个表单,要支撑企业实际用工节奏。
- 岗位表(job_post)需包含:岗位名称、所属部门、职级、招聘状态(开放/暂停/已招满)、截止时间、JD文本字段(支持富文本编辑器如UEditor集成)
- 简历表(resume)建议分两部分:基础信息(姓名、电话、邮箱、学历等)+ 附件字段(存储上传路径,不直接存文件),并关联应聘岗位ID和当前处理阶段(待初筛/复试中/已录用/已淘汰)
- 面试安排用独立表(interview_schedule),记录面试官、时间、地点、结果反馈(可选预设选项:通过/待定/不通过/需二面),支持多人协同评审(多对一关系)
- 前端用Tab切换不同状态简历列表,后端用
where('status', 'in', [1,2,3])配合搜索条件组合查询,避免全量加载
培训模块:课程库 + 员工报名 + 学习记录
重点解决“谁该学什么”和“学得怎么样”的问题。
- 课程表(course)含分类(技术/管理/合规)、讲师、时长、是否必修、适用职级范围(如:仅限主管级以上),便于按角色自动推送
- 员工报名表(course_enroll)记录报名时间、审核状态(自动通过/需HR审批)、是否完成(由学习行为触发更新)
- 学习记录表(study_log)每次视频播放、课件下载、测验提交都写入一条日志,用于生成学习时长统计和完成率报表
- 在员工个人中心展示“待学课程”“进行中”“已完成”,用
JOIN关联课程与报名状态,避免N+1查询
绩效考核模块:周期设定 + 考核指标 + 多维评分
避免做成“打分填表工具”,要体现目标对齐与持续反馈。
- 考核周期表(appraisal_period)定义起止时间、类型(季度/半年/年度)、适用部门/岗位,支持复制上期模板
- 考核指标表(appraisal_item)分KPI(量化)、OKR(目标导向)、360度(同事互评)三类,每项支持权重设置(总和为100%)
- 评分记录表(appraisal_score)按人、按指标、按考核期存储,含自评、上级评、HR复核三栏,留评语字段;分数提交后锁定,修改需走审批流
- 用ThinkPHP的
Db::view()或withJoin()关联员工、部门、指标、周期四张表,生成部门绩效TOP榜或个人历史趋势图
共性要点:权限、日志与扩展性
三个模块共享底层能力,不能各自为政。
- 用ThinkPHP的
Auth类或RBAC扩展做权限控制:HR可操作全部,部门负责人只能看本部门招聘进度和下属绩效,员工仅能查看本人培训记录和绩效结果 - 关键操作(如录用新人、发布考核、归档培训证书)必须写操作日志,字段含操作人、IP、时间、影响数据ID、变更前/后值(JSON格式)
- 所有模块主表都加
tenant_id字段(即使单租户也预留),方便未来SaaS化;附件统一走OSS或本地uploads/目录,路径存数据库 - 接口层统一用
api/v1/recruit/、api/v1/training/等前缀,返回标准格式:{code:0, msg:'success', data:{}}
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











