1. 项目概述
本课程设计旨在开发一款基于Java的人事管理系统,满足小企业日常办公需求。系统包括绩效考核、招聘管理、档案管理、工资管理、考勤管理、培训管理和系统管理七大模块,提供全面的人事管理解决方案。
2. 系统特色
该系统具备强大的权限控制功能,区分管理员、财务专员、人事专员和普通用户,确保不同用户拥有适当的系统访问权限。前端采用HTML、CSS、JavaScript,后端使用Java、Spring框架、MySQL数据库,实现用户友好的界面、多种数据操作和数据安全传输存储。
3. 实现目标
- 实现绩效考核、招聘、档案、工资、考勤、培训、系统管理功能。
- 提供权限控制,确保数据安全和合法访问。
- 通过前后端技术结合,提供用户友好的界面和高效的操作体验。
4. 开发过程
- 需求分析:明确系统功能和用户需求,制定详细需求文档。
- 设计阶段:设计数据库结构,确定系统架构和功能模块。
- 开发阶段:前端和后端并行开发,实现各模块功能。
- 测试与优化:进行系统测试,修复漏洞,提高系统性能。
- 部署与上线:将系统部署至服务器,进行性能测试,正式上线运行。
以下是开发完毕的系统展示图等信息。
一、角色图
管理员:
财务专员:
人事专员:
普通用户:
二、功能介绍
1. 登录
2. 绩效考核
绩效考核目前只做了简单的考核设置,后期可扩展更多功能与工资和培训挂钩。后期会从以下几个方面扩展:
- 季度考核不达标需要参加培训;
- 考核不达标影响绩效;
- 在公司做培训增加绩效;
3. 招聘管理
招聘需求:
面试结果:
4. 档案管理
员工档案:
合同管理:
5. 工资管理
6. 考勤管理
7. 培训管理
个人计划
工作日报:
转正申请:
培训计划
8. 系统管理
基础环境:
- JDK:1.8
- MySQL:5.7
- Maven3.0
使用框架:
- 核心框架:Spring Boot 2.2.13.RELEASE
- ORM框架:MyBatisPlus 3.1.2
- 数据库连接池:Druid 1.2.8
- 安全框架:Apache Shiro 1.8.0
- 日志:SLF4J ,Log4j
- 前端框架:VUE2.2.6,LayUI,Ztree,jQuery,Bootstrap
启动完成,访问:http://localhost:8803(账号admin/admin)
部分代码:
/**
*
*
*
*
*
*/
package com.person.common.annotation;
import java.lang.annotation.*;
/**
* 数据过滤
*
* @author
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DataFilter {
/** 表的别名 */
String tableAlias() default "";
/** true:没有本部门数据权限,也能查询本人数据 */
boolean user() default true;
/** true:拥有子部门数据权限 */
boolean subDept() default false;
/** 部门ID */
String deptId() default "dept_id";
/** 用户ID */
String userId() default "user_id";
}
/**
*
*
*
*
*
*/
package com.person.common.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* 系统日志注解
*
* @author
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface SysLog {
String value() default "";
}
/**
*
*
*
*
*
*/
package com.person.common.config;
import com.person.common.xss.XssFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.filter.DelegatingFilterProxy;
import javax.servlet.DispatcherType;
/**
* Filter配置
*
* @author
*/
@Configuration
public class FilterConfig {
@Bean
public FilterRegistrationBean shiroFilterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setFilter(new DelegatingFilterProxy("shiroFilter"));
//该值缺省为false,表示生命周期由SpringApplicationContext管理,设置为true则表示由ServletContainer管理
registration.addInitParameter("targetFilterLifecycle", "true");
registration.setEnabled(true);
registration.setOrder(Integer.MAX_VALUE - 1);
registration.addUrlPatterns("/*");
return registration;
}
@Bean
public FilterRegistrationBean xssFilterRegistration() {
FilterRegistrationBean registration = new FilterRegistrationBean();
registration.setDispatcherTypes(DispatcherType.REQUEST);
registration.setFilter(new XssFilter());
registration.addUrlPatterns("/*");
registration.setName("xssFilter");
registration.setOrder(Integer.MAX_VALUE);
return registration;
}
}