1. 项目概述
作为一名在企业信息化领域摸爬滚打多年的开发者,我深知传统人事管理的痛点。记得去年为一家200人规模的企业做咨询时,他们的人事专员每天要花3小时手工核对考勤表,薪资计算经常出错,员工档案散落在十几个Excel文件中。这正是我决定开发这套基于SSM框架的企业员工管理系统的初衷。
这个系统采用B/S架构,整合了Spring、Spring MVC和MyBatis三大主流Java框架,前端使用Vue.js+Element UI,数据库选用MySQL 8.0。系统实现了从员工入职到离职的全生命周期管理,包含12个核心功能模块:员工档案、部门管理、考勤统计、请假审批、薪资核算、奖惩记录、培训管理、调岗申请、转正流程、离职手续、合同管理和内部留言板。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计
2.1 为什么选择SSM框架组合
在技术选型阶段,我对比了Spring Boot和传统SSM的优劣。最终选择SSM组合主要基于三点考虑:
- 教学价值:作为毕业设计项目,SSM能更清晰地展示各层架构关系
- 可控性:可以手动配置每个组件,适合深入理解框架原理
- 扩展性:后续改造为Spring Boot非常容易
核心架构分层如下:
- 表现层:Spring MVC处理HTTP请求,返回JSON或JSP视图
- 业务层:Spring管理的Service组件,包含核心业务逻辑
- 持久层:MyBatis实现ORM映射,动态SQL支持复杂查询
- 数据层:MySQL存储业务数据,Redis缓存热点数据
2.2 数据库设计要点
数据库设计遵循第三范式,同时针对性能做了适当反规范化。以下是几个关键表的设计思路:
sql复制-- 员工表增加逻辑删除标志
CREATE TABLE `employee` (
`emp_id` int NOT NULL AUTO_INCREMENT,
`emp_no` varchar(20) NOT NULL COMMENT '工号',
`emp_name` varchar(50) NOT NULL,
`dept_id` int NOT NULL,
`position` varchar(50) DEFAULT NULL,
`status` tinyint DEFAULT '1' COMMENT '0-离职 1-在职',
`is_deleted` tinyint DEFAULT '0' COMMENT '逻辑删除标志',
PRIMARY KEY (`emp_id`),
UNIQUE KEY `idx_emp_no` (`emp_no`),
KEY `idx_dept` (`dept_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 考勤表使用复合索引
CREATE TABLE `attendance` (
`att_id` int NOT NULL AUTO_INCREMENT,
`emp_id` int NOT NULL,
`att_date` date NOT NULL,
`check_in` time DEFAULT NULL,
`check_out` time DEFAULT NULL,
`status` tinyint DEFAULT '0' COMMENT '0-正常 1-迟到 2-早退...',
PRIMARY KEY (`att_id`),
UNIQUE KEY `uk_emp_date` (`emp_id`,`att_date`),
KEY `idx_date` (`att_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
关键设计技巧:
- 所有表都添加了注释,方便后期维护
- 使用utf8mb4字符集支持emoji表情
- 为高频查询字段建立合适索引
- 金额字段使用DECIMAL(10,2)避免
