学校工资管理系统
一、项目简介
学校工资管理系统是一个基于 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.0javax.servlet.jsp-api:2.3.1jstl:1.2mysql-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/
七、默认登录账号
系统初始化后可直接使用以下账号登录:
| 用户名 | 密码 | 角色 |
|---|---|---|
| admin | 123456 | 管理员 |
| renshi | 123456 | 人事处 |
| caiwu | 123456 | 财务处 |
八、角色权限说明
| 功能模块 | 管理员 | 人事处 | 财务处 |
|---|---|---|---|
| 首页总览 | √ | √ | √ |
| 部门管理 | √ | √ | × |
| 教职工管理 | √ | √ | × |
| 出勤上报 | √ | √ | × |
| 人员变动 | √ | √ | × |
| 工资核算 | √ | × | √ |
| 银行发放表 | √ | × | √ |
| 部门汇总表 | √ | √ | √ |
| 工资条查询 | √ | √ | √ |
说明:
- 菜单会根据登录角色动态显示
- 即使手动输入 URL,后端也会继续校验权限
- 无权限访问时会自动返回首页并显示提示信息
九、系统主要操作流程
1. 登录流程
- 打开系统登录页
- 输入用户名和密码
- 点击登录按钮
- 登录成功后进入首页总览页面
- 系统根据当前角色显示对应菜单和可访问功能
2. 部门管理流程
- 进入“部门管理”页面
- 填写部门名称、类型、负责人
- 点击“保存部门”完成新增
- 如需修改,点击“编辑”后重新保存
- 如需删除,点击“删除”
- 若该部门下已有教职工,系统会阻止删除并提示原因
3. 教职工管理流程
- 进入“教职工管理”页面
- 填写工号、姓名、性别、部门、岗位、工资、银行卡号、状态
- 点击“保存教职工”完成新增
- 需要修改时点击“编辑”进行更新
- 删除时若该教职工已有出勤或变动记录,系统会提示不可直接删除
4. 出勤上报流程
- 进入“出勤上报”页面
- 选择月份和教职工
- 填写应出勤天数、实出勤天数、事假、迟到、旷工、加班等数据
- 选择状态为“已上报”或“已审核”
- 点击“保存出勤”完成提交
5. 人员变动流程
- 进入“人员变动”页面
- 选择教职工
- 选择变动类型,如调入、调出、校内调动、离退休
- 填写变动前部门、变动后部门、变动日期和备注
- 点击“保存变动”
- 保存后系统会根据变动信息自动同步教职工部门和状态
6. 工资核算流程
- 进入“工资核算”页面
- 选择需要生成工资的月份
- 点击“生成工资及银行发放表”
- 系统根据教职工基础工资和出勤数据自动生成工资表
- 同时生成银行发放记录
7. 部门汇总表查看流程
- 进入“部门汇总表”页面
- 查看各部门人数、基本工资合计、奖金合计、扣款合计、实发工资合计
8. 工资条查询流程
- 进入“工资条查询”页面
- 输入姓名关键字
- 点击“查询工资条”
- 查看该教职工相关工资记录
9. 银行发放流程
- 进入“银行发放表”页面
- 查看发放金额、银行卡号、发放日期和状态
- 财务人员可根据实际发放情况点击“标记已发放”或“改为待发放”
十、工资计算说明
系统当前工资计算逻辑主要包括以下规则:
- 全勤奖:200 元
- 加班补贴:50 元/天
- 事假扣款:80 元/天
- 旷工扣款:200 元/天
- 迟到扣款:20 元/次
实发工资计算思路:
实发工资 = 基本工资 + 奖金 - 扣款
十一、项目特点
- 功能完整,适合课程设计演示
- 界面简洁,操作清晰
- 支持基础业务闭环:人员、出勤、变动、工资、发放
- 具备删除保护,减少外键冲突问题
- 已处理常见中文乱码问题,支持中文新增、编辑、提示信息显示
- 已实现基础角色权限区分,更符合学校业务场景
- 初始化数据较完整,导入数据库后即可演示
十二、后续可扩展方向
- 按月份筛选工资、出勤、银行发放记录
- 工资条打印页面
- 报表导出功能
- 角色权限细分到按钮级别
- 操作日志记录
- 逻辑删除替代物理删除