javaweb做的学校工资管理系统

19 阅读8分钟

学校工资管理系统

一、项目简介

学校工资管理系统是一个基于 Java Web 的校内工资业务管理项目,围绕学校工资发放流程进行设计,实现了部门管理、教职工管理、出勤上报、人员变动、工资核算、工资条查询、部门汇总和银行发放管理等功能。


二、系统功能

1. 登录与首页总览

  • 用户登录、退出登录
  • 首页展示业务总览信息
  • 统计部门数量、教职工总数、在职人数、出勤记录数、变动记录数、工资记录数、银行发放数、工资总额、扣款总额
  • 提供工资核算、部门汇总、工资条查询等快捷入口

2. 部门管理

  • 新增部门
  • 编辑部门
  • 删除部门
  • 查看部门列表
  • 删除前自动检查是否还有关联教职工,避免外键冲突

3. 教职工管理

  • 新增教职工
  • 编辑教职工信息
  • 删除教职工
  • 查看教职工列表
  • 管理工号、姓名、性别、所属部门、岗位、基本工资、银行卡号、状态等信息
  • 删除前自动检查是否已有出勤记录或人员变动记录

4. 出勤上报

  • 新增出勤记录
  • 编辑出勤记录
  • 删除出勤记录
  • 查看月度出勤信息
  • 管理应出勤天数、实出勤天数、事假、迟到、旷工、加班、审核状态等数据

5. 人员变动管理

  • 新增人员变动记录
  • 编辑变动记录
  • 删除变动记录
  • 记录调入、调出、校内调动、离退休等情况
  • 支持记录变动前部门、变动后部门、变动日期、备注
  • 保存变动后可自动同步教职工所属部门和状态

6. 工资核算

  • 按月份生成工资表
  • 根据出勤信息自动计算奖金、扣款和实发工资
  • 支持查看工资核算结果

7. 部门汇总表

  • 按部门统计工资信息
  • 汇总人数、基本工资、奖金、扣款、实发工资合计

8. 工资条查询

  • 按姓名关键字查询工资条
  • 查看某位教职工的工资记录

9. 银行发放表

  • 查看银行发放记录
  • 展示姓名、银行卡号、发放金额、发放日期、发放状态
  • 支持切换发放状态为“待发放”或“已发放”

10. 角色权限区分

系统当前内置三类角色:

  • 管理员
  • 人事处
  • 财务处

当前权限划分如下:

  • 管理员:可访问全部功能
  • 人事处:可访问部门管理、教职工管理、出勤上报、人员变动、部门汇总表、工资条查询
  • 财务处:可访问工资核算、银行发放表、部门汇总表、工资条查询

系统已实现:

  • 登录后按角色显示不同菜单
  • 后端按角色校验页面访问权限
  • 无权限访问时自动返回首页并提示

三、使用到的技术

1. 后端技术

  • Java 8
  • Servlet 3.1
  • JSP
  • JSTL
  • JDBC

2. 前端技术

  • HTML
  • CSS
  • JSP 页面模板渲染

3. 数据库

  • MySQL 8

4. 项目管理与构建

  • Maven
  • WAR 打包部署

5. 核心依赖

  • javax.servlet-api:3.1.0
  • javax.servlet.jsp-api:2.3.1
  • jstl:1.2
  • mysql-connector-java:8.0.33

四、项目结构说明

schoolsms
├─ src/main/java/com/schoolsms
│  ├─ controller    控制层
│  ├─ dao           数据访问层
│  ├─ model         实体类
│  └─ util          工具类
├─ src/main/resources
│  └─ db.properties 数据库配置
├─ src/main/webapp
│  ├─ assets/css    页面样式
│  └─ WEB-INF/views JSP 页面
├─ sql
│  └─ schoolsms.sql 数据库初始化脚本
└─ pom.xml          Maven 配置文件

五、数据库表说明

系统主要包含以下数据表:

  • sys_user:系统用户表
  • department:部门表
  • employee:教职工表
  • attendance:出勤表
  • change_record:人员变动表
  • salary_sheet:工资表
  • bank_payment:银行发放表

其中 sys_user 表预置了角色字段 role,用于区分不同登录身份。


六、系统部署与运行步骤

1. 环境准备

请先准备以下运行环境:

  • JDK 1.8
  • Maven 3.x
  • MySQL 8.x
  • Tomcat 8/9
  • IntelliJ IDEA 或 Eclipse

2. 创建数据库

打开 MySQL 客户端或数据库管理工具,执行:

  • sql/schoolsms.sql

执行后会自动:

  • 创建 schoolsms 数据库
  • 创建系统所需全部数据表
  • 初始化登录账号、部门、教职工、出勤、工资、银行发放等测试数据

3. 修改数据库连接配置

打开文件:

  • src/main/resources/db.properties

根据本机数据库环境修改:

  • 数据库地址
  • 数据库用户名
  • 数据库密码

当前项目默认连接示例:

jdbc:mysql://localhost:3307/schoolsms?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai

4. 导入项目

将项目导入 IDEA 或 Eclipse,等待 Maven 自动下载依赖。

5. 配置 Tomcat

将项目部署到 Tomcat,并以 WAR 工程方式运行。

6. 启动项目

启动后在浏览器访问系统首页或登录页。

如果上下文路径为 schoolsms,通常访问地址类似:

http://localhost:8080/schoolsms/

七、默认登录账号

系统初始化后可直接使用以下账号登录:

用户名密码角色
admin123456管理员
renshi123456人事处
caiwu123456财务处

八、角色权限说明

功能模块管理员人事处财务处
首页总览
部门管理×
教职工管理×
出勤上报×
人员变动×
工资核算×
银行发放表×
部门汇总表
工资条查询

说明:

  • 菜单会根据登录角色动态显示
  • 即使手动输入 URL,后端也会继续校验权限
  • 无权限访问时会自动返回首页并显示提示信息

九、系统主要操作流程

1. 登录流程

  1. 打开系统登录页
  2. 输入用户名和密码
  3. 点击登录按钮
  4. 登录成功后进入首页总览页面
  5. 系统根据当前角色显示对应菜单和可访问功能

2. 部门管理流程

  1. 进入“部门管理”页面
  2. 填写部门名称、类型、负责人
  3. 点击“保存部门”完成新增
  4. 如需修改,点击“编辑”后重新保存
  5. 如需删除,点击“删除”
  6. 若该部门下已有教职工,系统会阻止删除并提示原因

3. 教职工管理流程

  1. 进入“教职工管理”页面
  2. 填写工号、姓名、性别、部门、岗位、工资、银行卡号、状态
  3. 点击“保存教职工”完成新增
  4. 需要修改时点击“编辑”进行更新
  5. 删除时若该教职工已有出勤或变动记录,系统会提示不可直接删除

4. 出勤上报流程

  1. 进入“出勤上报”页面
  2. 选择月份和教职工
  3. 填写应出勤天数、实出勤天数、事假、迟到、旷工、加班等数据
  4. 选择状态为“已上报”或“已审核”
  5. 点击“保存出勤”完成提交

5. 人员变动流程

  1. 进入“人员变动”页面
  2. 选择教职工
  3. 选择变动类型,如调入、调出、校内调动、离退休
  4. 填写变动前部门、变动后部门、变动日期和备注
  5. 点击“保存变动”
  6. 保存后系统会根据变动信息自动同步教职工部门和状态

6. 工资核算流程

  1. 进入“工资核算”页面
  2. 选择需要生成工资的月份
  3. 点击“生成工资及银行发放表”
  4. 系统根据教职工基础工资和出勤数据自动生成工资表
  5. 同时生成银行发放记录

7. 部门汇总表查看流程

  1. 进入“部门汇总表”页面
  2. 查看各部门人数、基本工资合计、奖金合计、扣款合计、实发工资合计

8. 工资条查询流程

  1. 进入“工资条查询”页面
  2. 输入姓名关键字
  3. 点击“查询工资条”
  4. 查看该教职工相关工资记录

9. 银行发放流程

  1. 进入“银行发放表”页面
  2. 查看发放金额、银行卡号、发放日期和状态
  3. 财务人员可根据实际发放情况点击“标记已发放”或“改为待发放”

十、工资计算说明

系统当前工资计算逻辑主要包括以下规则:

  • 全勤奖:200 元
  • 加班补贴:50 元/天
  • 事假扣款:80 元/天
  • 旷工扣款:200 元/天
  • 迟到扣款:20 元/次

实发工资计算思路:

实发工资 = 基本工资 + 奖金 - 扣款

十一、项目特点

  • 功能完整,适合课程设计演示
  • 界面简洁,操作清晰
  • 支持基础业务闭环:人员、出勤、变动、工资、发放
  • 具备删除保护,减少外键冲突问题
  • 已处理常见中文乱码问题,支持中文新增、编辑、提示信息显示
  • 已实现基础角色权限区分,更符合学校业务场景
  • 初始化数据较完整,导入数据库后即可演示

十二、后续可扩展方向

  • 按月份筛选工资、出勤、银行发放记录
  • 工资条打印页面
  • 报表导出功能
  • 角色权限细分到按钮级别
  • 操作日志记录
  • 逻辑删除替代物理删除

部门管理.png

部门汇总表.png

出勤上报.png

登录.png

工资核算.png

工资条查询.png

教职工管理.png

人员变动.png

首页.png

银行发放表.png