人力资源管理HR系统的需求设计和实现

该作者的原创文章目录:

生产制造执行MES系统的需求设计和实现

企业后勤管理系统的需求设计和实现

行政办公管理系统的需求设计和实现

人力资源管理HR系统的需求设计和实现

企业财务管理系统的需求设计和实现

董事会办公管理系统的需求设计和实现

公司组织架构图设计工具

库存管理系统的需求设计和实现

批量执行SQL脚本导出Excel文件

数据库巡检工具Python源码分享

E-Learning在线学习平台的需求设计和实现

AI知识库在线问答系统的需求设计和实现

蛇年特别版贪吃蛇H5小游戏

获取微信access_token的Python源码

便利店补货系统Python源码

图片大小修改工具Python源码

Python烟花秀

股票分析工具Python源码

时钟同步工具Python源码

图片转Turtle代码生成器Python源码

一个有趣的每日心情追踪器

一个有趣的豆瓣电影TOP爬虫

一个有趣的春节祝福生成器

Hex文件配置工具Python编码

年会抽奖系统Python源码

音乐歌曲爬虫Python源码

前言:借助HR人力资源管理系统,帮助企业把HR管理人员从传统的组织、人事、薪资、考勤、绩效、招聘、培训等基础业务操作过程中解放出来,深度思考公司人力资源发展与建设规划、员工职业发展体系建设等。

系统首页展示:

人事部门职能:

(一)规划管理
1.负责编制公司人力资源发展与建设规划,并组织实施。
2.负责建立完善公司职位评价、任职资格、招聘配置、培养开发、薪酬与激励、绩效管理和职业发展等管理体系,建立完善业务流程,并组织实施。
3.组织制订并完善公司经营层职能部门职责,协同用人部门确定岗位设置和岗位职责。
4.负责对事业总部、分子公司人力资源建设与管理工作予以支持和指导。
5.做好公司干部人才队伍建设,建立干部管理和培养体系;做好管辖范围内干部的培养、选拔、任用、薪酬及绩效考核管理等工作。

(二)招聘配置
1.定期分析公司人力资源状况,科学预测公司人力资源需求,组织制定年度人力资源需求计划;负责开展人力资源招聘与配置工作。
2.负责“招聘”微信公众号等招聘宣传平台的运行管理,提升企业影响力。
3.负责建立并拓展招聘渠道,负责建立校企合作,多渠道引进和培养人才。

(三)培养发展
1.组织开展公司人才库管理,做好管辖范围内人才梯队建设。
2.负责组织制定公司年度培训计划,组织开展公司员工的培训工作。
3.负责分层分类建立培训课程体系,开展员工培养与发展工作。
4.负责组织开发公司内部课程,做好在线学习平台的运行管理。
5.负责组织公司各类职称(技能)等级的评定工作。

(四)薪酬管理
1.负责工资总额管理,组织制定薪酬预算,并对预算执行进行监控与管理。
2.负责研究制定公司薪酬策略与激励方案,并组织实施。
3.负责公司职能部门员工的薪酬管理工作。

(五)绩效管理
1.牵头组织制定公司年度绩效考核指标,负责组织实施年度绩效考核。
2.负责公司职能部门员工的绩效考核与激励、奖励与责任追究管理。

(六)劳动关系
1.负责公司劳动关系管理政策的制订与实施。
2.负责协调处置公司及事业总部、分子公司各类投诉及劳动争议案件,并对公司各部门用工合法性进行监督和检查。
3.负责公司职能部门员工的劳动关系管理,包括入职、转正、调动、离职、劳动合同、档案管理等。

设计文档主要内容:

1. 系统概述

1.1 系统目标

本系统旨在提供一个现代化的人力资源管理平台,实现人力资源各个环节的信息化管理,提高人力资源管理效率。

1.2 系统功能范围

系统包含以下主要功能模块:


• 规划管理
• 招聘配置
• 培养发展
• 薪酬管理
• 绩效管理
• 劳动关系

2. 系统架构

2.1 技术架构


• 后端框架:Flask 2.0.1
• 数据库:SQLAlchemy 1.4.23
• 前端框架:Bootstrap 4.5.2
• 图表库:ECharts 5.2.2
• 认证系统:Flask-Login 0.5.0

2.2 系统结构

hrms/
├── app/                    # 应用主目录
│   ├── models/            # 数据模型
│   ├── routes/            # 路由控制
│   ├── templates/         # 页面模板
│   └── static/            # 静态资源
├── config.py              # 配置文件
└── run.py                 # 启动文件

3. 功能模块设计

3.1 用户认证模块

  • • 用户登录
  • • 会话管理
  • • 权限控制

3.2 规划管理模块

  • • 人力资源发展规划
  • • 职位评价体系
  • • 任职资格管理
  • • 干部管理体系

3.3 招聘配置模块

  • • 招聘需求管理
  • • 应聘者信息管理
  • • 面试流程管理
  • • 录用管理

3.4 培养发展模块

  • • 培训计划管理
  • • 培训实施管理
  • • 培训评估
  • • 职业发展规划

3.5 薪酬管理模块

  • • 薪酬标准管理
  • • 薪酬核算
  • • 福利管理
  • • 薪酬统计分析

3.6 绩效管理模块

  • • 绩效指标管理
  • • 绩效考核
  • • 绩效分析
  • • 绩效反馈

3.7 劳动关系模块

  • • 劳动合同管理
  • • 员工关系管理
  • • 档案管理
  • • 离职管理

4. 数据库设计

4.1 用户表(User)

字段名

类型

说明

id

Integer

主键

username

String

用户名

email

String

邮箱

password_hash

String

密码哈希

role

String

角色

4.2 部门表(Department)

字段名

类型

说明

id

Integer

主键

name

String

部门名称

description

Text

部门描述

manager_id

Integer

部门主管

4.3 员工表(Employee)

字段名

类型

说明

id

Integer

主键

name

String

姓名

department_id

Integer

所属部门

position_id

Integer

职位

status

String

在职状态

entry_date

Date

入职日期

5. 界面设计

5.1 登录界面

  • • 简洁的登录表单
  • • 用户名和密码输入
  • • 错误提示功能

5.2 仪表盘

  • • 员工总数统计
  • • 部门人员分布
  • • 人员流动趋势
  • • 待办事项提醒

5.3 功能模块界面

  • • 统一的导航栏
  • • 响应式布局
  • • 数据表格展示
  • • 表单交互设计

 设计文档下载地址:https://download.csdn.net/download/mosquito_lover1/90311504

项目结构:

hrms/
├── app/
│   ├── __init__.py
│   ├── models/
│   │   ├── __init__.py
│   │   ├── user.py
│   │   ├── department.py
│   │   ├── position.py
│   │   ├── employee.py
│   │   ├── salary.py
│   │   ├── performance.py
│   │   └── contract.py
│   ├── routes/
│   │   ├── __init__.py
│   │   ├── auth.py
│   │   ├── planning.py
│   │   ├── recruitment.py
│   │   ├── development.py
│   │   ├── salary.py
│   │   ├── performance.py
│   │   └── labor.py
│   ├── templates/
│   │   ├── base.html
│   │   ├── auth/
│   │   │   ├── login.html
│   │   │   └── register.html
│   │   └── admin/
│   └── static/
├── config.py
├── requirements.txt
└── run.py

配置文件:

import os

class Config:
    SECRET_KEY = os.environ.get('SECRET_KEY') or 'your-secret-key-here'
    SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \
        'sqlite:///hrms.db'
    SQLALCHEMY_TRACK_MODIFICATIONS = False

应用程序入口文件:

from app import create_app

app = create_app()

if __name__ == '__main__':
    app.run(debug=True)

应用程序工厂:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_login import LoginManager
from config import Config

db = SQLAlchemy()
login_manager = LoginManager()
login_manager.login_view = 'auth.login'

def create_app():
    app = Flask(__name__)
    app.config.from_object(Config)

    db.init_app(app)
    login_manager.init_app(app)

    from app.routes import auth, planning, recruitment, development, salary, performance, labor
    
    app.register_blueprint(auth.bp)
    app.register_blueprint(planning.bp)
    app.register_blueprint(recruitment.bp)
    app.register_blueprint(development.bp)
    app.register_blueprint(salary.bp)
    app.register_blueprint(performance.bp)
    app.register_blueprint(labor.bp)

    return app

用户模型:

from app import db, login_manager
from werkzeug.security import generate_password_hash, check_password_hash
from flask_login import UserMixin

class User(UserMixin, db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), unique=True, nullable=False)
    email = db.Column(db.String(120), unique=True, nullable=False)
    password_hash = db.Column(db.String(128))
    role = db.Column(db.String(20), nullable=False, default='user')

    def set_password(self, password):
        self.password_hash = generate_password_hash(password)

    def check_password(self, password):
        return check_password_hash(self.password_hash, password)

@login_manager.user_loader
def load_user(id):
    return User.query.get(int(id))

认证路由:

from flask import Blueprint, render_template, redirect, url_for, flash, request
from flask_login import login_user, logout_user, login_required
from app.models.user import User
from app import db

bp = Blueprint('auth', __name__)

@bp.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        user = User.query.filter_by(username=username).first()
        
        if user and user.check_password(password):
            login_user(user)
            return redirect(url_for('planning.index'))
        flash('Invalid username or password')
    return render_template('auth/login.html')

@bp.route('/logout')
@login_required
def logout():
    logout_user()
    return redirect(url_for('auth.login'))

基础模板:

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>人力资源管理系统</title>
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
</head>
<body>
    <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
        <a class="navbar-brand" href="#">HRMS</a>
        <div class="collapse navbar-collapse">
            <ul class="navbar-nav mr-auto">
                <li class="nav-item">
                    <a class="nav-link" href="{ { url_for('planning.index') }}">规划管理</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="{ { url_for('recruitment.index') }}">招聘配置</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="{ { url_for('development.index') }}">培养发展</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="{ { url_for('salary.index') }}">薪酬管理</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="{ { url_for('performance.index') }}">绩效管理</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="{ { url_for('labor.index') }}">劳动关系</a>
                </li>
            </ul>
            <ul class="navbar-nav ml-auto">
                {% if current_user.is_authenticated %}
                <li class="nav-item">
                    <a class="nav-link" href="{ { url_for('auth.logout') }}">退出</a>
                </li>
                {% endif %}
            </ul>
        </div>
    </nav>

    <div class="container mt-4">
        {% with messages = get_flashed_messages() %}
            {% if messages %}
                {% for message in messages %}
                    <div class="alert alert-info">{ { message }}</div>
                {% endfor %}
            {% endif %}
        {% endwith %}
        
        {% block content %}{% endblock %}
    </div>

    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.4/dist/umd/popper.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
</body>
</html>

登陆模板:

{% extends "base.html" %}

{% block content %}
<div class="row justify-content-center">
    <div class="col-md-6">
        <div class="card">
            <div class="card-header">登录</div>
            <div class="card-body">
                <form method="POST">
                    <div class="form-group">
                        <label for="username">用户名</label>
                        <input type="text" class="form-control" id="username" name="username" required>
                    </div>
                    <div class="form-group">
                        <label for="password">密码</label>
                        <input type="password" class="form-control" id="password" name="password" required>
                    </div>
                    <button type="submit" class="btn btn-primary">登录</button>
                </form>
            </div>
        </div>
    </div>
</div>
{% endblock %}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mosquito_lover1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值