# EMS **Repository Path**: rejimi/ems ## Basic Information - **Project Name**: EMS - **Description**: 员工管理系统智能化管理 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-11-08 - **Last Updated**: 2026-03-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 员工管理系统 (EMS) 这是一个基于Django的员工管理系统,支持员工信息管理、招聘管理、权限控制等功能。 ## 功能特性 - 多角色权限控制(未登录用户、员工、管理员) - 招聘信息展示与简历投递 - 员工个人信息查看与申请提交 - 管理员面板(员工管理、求职者管理、数据统计等) - 面试时间安排 - RESTful API接口 - 数据可视化(饼状图展示部门分布等) - 支持上传PDF和图像格式的简历文件 ## 技术栈 - Django 5.2.7 - Django REST Framework - Chart.js (数据可视化) - Pillow (图像处理) - drf-spectacular (API文档) - djangorestframework-simplejwt (JWT认证) ## 安装步骤 1. 克隆项目: ``` git clone <项目地址> cd EMS ``` 2. 创建虚拟环境: ``` python -m venv venv source venv/bin/activate # Linux/Mac # 或 venv\Scripts\activate # Windows ``` 3. 安装依赖: ``` pip install -r requirements.txt ``` 4. 数据库迁移: ``` python manage.py makemigrations python manage.py migrate ``` 5. 创建超级用户: ``` python manage.py createsuperuser ``` 6. 收集静态文件: ``` python manage.py collectstatic ``` 7. 运行开发服务器: ``` python manage.py runserver ``` ## 使用说明 ### 用户角色与权限 系统包含三种用户角色,每种角色具有不同的权限和功能: #### 1. 未登录用户 - 访问首页浏览招聘信息 - 投递简历申请职位 - 无法访问员工和管理功能 #### 2. 员工用户 - 登录后访问员工仪表板 - 查看个人信息(薪资、状态、合同到期时间等) - 提交各类申请(离职、转正、续约) - 查看申请状态 #### 3. 管理员用户 - 登录后访问管理员仪表板 - 管理求职者信息和简历 - 安排面试时间 - 管理员工信息 - 处理员工提交的申请 - 查看数据统计图表(部门分布等) - 管理职位和部门信息 - 创建普通用户和管理员用户 ### 访问地址 - 招聘信息页面: `http://127.0.0.1:8000/` - 登录页面: `http://127.0.0.1:8000/managesystem/login/` - 简历上传页面: `http://127.0.0.1:8000/managesystem/upload-resume/` - 面试时间安排页面: `http://127.0.0.1:8000/managesystem/interview-schedule/` - 员工仪表板: `http://127.0.0.1:8000/managesystem/employee-dashboard/` - 管理员仪表板: `http://127.0.0.1:8000/managesystem/admin-dashboard/` - 管理后台: `http://127.0.0.1:8000/admin/` ### API接口 #### 招聘职位相关 - GET `/managesystem/api/jobs/` - 获取职位列表 - POST `/managesystem/api/jobs/` - 创建新职位 - GET `/managesystem/api/jobs/{id}/` - 获取特定职位详情 - PUT `/managesystem/api/jobs/{id}/` - 更新特定职位 - DELETE `/managesystem/api/jobs/{id}/` - 删除特定职位 #### 求职者相关 - GET `/managesystem/api/jobseekers/` - 获取求职者列表 - POST `/managesystem/api/jobseekers/` - 创建求职者信息 - GET `/managesystem/api/jobseekers/{id}/` - 获取特定求职者详情 - PUT `/managesystem/api/jobseekers/{id}/` - 更新特定求职者信息 - DELETE `/managesystem/api/jobseekers/{id}/` - 删除特定求职者 #### 面试安排相关 - GET `/managesystem/api/interviews/` - 获取面试安排列表 - POST `/managesystem/api/interviews/` - 创建面试安排 - GET `/managesystem/api/interviews/{id}/` - 获取特定面试安排详情 - PUT `/managesystem/api/interviews/{id}/` - 更新特定面试安排 - DELETE `/managesystem/api/interviews/{id}/` - 删除特定面试安排 #### 部门相关 - GET `/managesystem/api/departments/` - 获取部门列表 - POST `/managesystem/api/departments/` - 创建新部门 - GET `/managesystem/api/departments/{id}/` - 获取特定部门详情 - PUT `/managesystem/api/departments/{id}/` - 更新特定部门 - DELETE `/managesystem/api/departments/{id}/` - 删除特定部门 #### 员工相关 - GET `/managesystem/api/employees/` - 获取员工列表 - POST `/managesystem/api/employees/` - 创建员工信息 - GET `/managesystem/api/employees/{id}/` - 获取特定员工详情 - PUT `/managesystem/api/employees/{id}/` - 更新特定员工信息 - DELETE `/managesystem/api/employees/{id}/` - 删除特定员工 - GET `/managesystem/api/employees/profile/` - 获取当前登录员工个人信息 - POST `/managesystem/api/employees/{id}/submit_resignation/` - 提交离职申请 - POST `/managesystem/api/employees/{id}/submit_regularization/` - 提交转正申请 - POST `/managesystem/api/employees/{id}/submit_renewal/` - 提交续约申请 #### 申请相关 - GET `/managesystem/api/applications/` - 获取申请列表 - POST `/managesystem/api/applications/` - 创建申请 - GET `/managesystem/api/applications/{id}/` - 获取特定申请详情 - PUT `/managesystem/api/applications/{id}/` - 更新特定申请 - DELETE `/managesystem/api/applications/{id}/` - 删除特定申请 - POST `/managesystem/api/applications/{id}/approve/` - 批准申请 - POST `/managesystem/api/applications/{id}/reject/` - 拒绝申请 #### 仪表板统计 - GET `/managesystem/api/dashboard/employee_statistics/` - 获取员工统计数据 - GET `/managesystem/api/dashboard/recruitment_statistics/` - 获取招聘统计数据 ### 支持的文件格式 - PDF文件 (.pdf) - 图像文件 (.jpg, .jpeg, .png) ## 项目结构 ``` EMS/ ├── EMS/ # 项目配置 ├── ManageSystem/ # 员工管理应用 │ ├── models.py # 数据模型 │ ├── views.py # 视图逻辑 │ ├── viewsets.py # API视图集 │ ├── serializers.py # 序列化器 │ ├── permissions.py # 权限控制 │ ├── admin.py # 管理界面配置 │ ├── urls.py # URL路由 │ └── utils.py # 工具函数 ├── templates/ # HTML模板 │ ├── index.html # 招聘信息页面 │ ├── login.html # 登录页面 │ ├── upload_resume.html # 简历上传页面 │ ├── employee_dashboard.html # 员工仪表板 │ ├── admin_custom_dashboard.html # 自定义管理员仪表板 │ └── interview_schedule.html # 面试安排页面 ├── media/ # 媒体文件存储目录 ├── static/ # 静态文件目录 ├── manage.py # Django管理脚本 ├── requirements.txt # 项目依赖 └── README.md # 项目说明 ```