基于javaweb的员工出差请假考勤管理系统(java+jsp+layui+html+servlet+mysql)

article/2025/10/9 0:48:36

基于javaweb的员工出差请假考勤管理系统(java+jsp+layui+html+servlet+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

20220819205612

20220819205613

20220819205614

20220819205615

20220819205616

20220819205618

基于javaweb+mysql的员工出差请假考勤管理系统(java+JSP+LayUI+HTML+servlet+Mysql)

项目介绍

本项目为后台管理系统;

管理员角色包含以下功能:

登录,首页,考勤记录增删改查,假期申请记录增删改查,出差申请记录增删改查,加班申请记录增删改查,调休申请,考勤查询,查看考勤详情,员工管理增删改查等功能。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;  5.数据库:MySql 5.7版本; 6.是否Maven项目:否;

技术栈

HTML+JSP+CSS+JavaScript+LayUI+Servlet+Mysql

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中c3p0-config.xml与utils/C3P0Utils.java配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入http://localhost:8080/kaoqin 登录 管理员账号/密码:admin/123456

员工管理控制层:

@RestController

@RequestMapping(“/employee”)

@CrossOrigin

@Slf4j

public class EmployeeController {

@Autowired

private EmployeeService employeeService;

@Autowired

private DepartmentService departmentService;

@Autowired

private JobService jobService;

@Autowired

private EduLevelMapper eduLevelMapper;

@Autowired

private EmployeeMapper employeeMapper;

/**

  • 搜索接口

*/

@GetMapping(“/search”)

public Result search(@RequestParam(name = “name”, required = false,defaultValue = “”) String name,

@RequestParam(name = “current”, required = false, defaultValue = “1”) Integer current,

@RequestParam(name = “size”, required = false, defaultValue = “10”) Integer size) {

return employeeService.list(current, size, name);

/**

  • 分页查询接口

  • @param current

  • @param size

  • @return

*/

@GetMapping(“/list”)

public Result list(@RequestParam(name = “current”, required = false, defaultValue = “1”) Integer current,

@RequestParam(name = “size”, required = false, defaultValue = “10”) Integer size) {

return employeeService.list(current, size, null);

/**

  • 根据id获取员工具体信息

  • @param id

  • @return

*/

@GetMapping(“/getUserById”)

public EmployeeDTO getUserAllInfoById(@RequestParam(name = “id”) Integer id) {

return employeeService.getUserById(id);

/**

  • 根据员工获取信息

  • @param id

  • @return

*/

@GetMapping(“/getEmployeeById”)

public Employee getUserById(@RequestParam(name = “id”) Integer id) {

return employeeMapper.selectById(id);

/**

  • 增加员工接口

  • @param employee

  • @return

*/

@PostMapping(“/add”)

public Map<String, Object> addUser(@RequestBody Employee employee) {

log.info(employee.toString());

return employeeService.add(employee);

/**

  • 更新用户

  • @param employee

  • @return

*/

@PostMapping(“/update”)

public Map<String, Object> updateUser(@RequestBody Employee employee) {

log.info(employee.toString());

return employeeService.update(employee);

/**

  • 删除用户

  • @param id

  • @return

*/

@GetMapping(“/delete”)

public Result deleteEmployeeById(@RequestParam(name = “id”) Integer id) {

return employeeService.deleteEmployeeById(id);

/**

  • 辞退员工

  • @param id

  • @return

*/

@GetMapping(“/dismiss”)

public Map<String, Object> dismissEmployeeById(@RequestParam(name = “id”) Integer id) {

return employeeService.dismissEmployeeById(id);

/**

  • 得到所以工作,部门,学历信息

  • @return

*/

@GetMapping(“/otherInfo”)

public Result getAllOtherInfo() {

Map<String, Object> info = new HashMap<>();

info.put(“departments”, departmentService.selectAll());

info.put(“jobs”, jobService.selectAll());

info.put(“eduLevels”, eduLevelMapper.selectList(null));

return Result.success(info);

@GetMapping(“/map”)

public Result getMap() {

return employeeService.getMap();

登录管理业务处理层:

@Service

public class AuthServiceImpl implements AuthService {

@Autowired

private EmployeeMapper employeeMapper;

@Override

public Result login(String email, String password) {

//先用邮箱查询是否有这个员工

LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();

queryWrapper.eq(Employee::getEmail, email);

// queryWrapper.eq(Employee::getPassword, password);

Employee employee = employeeMapper.selectOne(queryWrapper);

//判断员工是否存在

if (employee == null) {

return Result.failure(ResponseCode.USER_NOT_FOUND);

} else {

//判断密码是否正确

if (!employee.getPassword().equals(password)) {

return Result.failure(ResponseCode.PASSWORD_ERROR);

// 生成token

String token = UUID.randomUUID().toString();

LoginDTO loginDTO = new LoginDTO();

if (employee.getAuthority() == 1) {

loginDTO.setSuper(true);

} else {

loginDTO.setSuper(false);

loginDTO.setToken(token);

loginDTO.setUserId(employee.getId());

return Result.success(loginDTO);

部门管理控制层:

@Service

public class DepartmentServiceImpl implements DepartmentService {

@Autowired

private DepartmentMapper departmentMapper;

@Autowired

private DeptManagerMapper deptManagerMapper;

@Autowired

private EmployeeMapper employeeMapper;

@Override

public List selectAll() {

List departmentDTOS = departmentMapper.selectAll();

for (DepartmentDTO departmentDTO : departmentDTOS) {

LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();

queryWrapper.eq(DeptManager::getDeptId, departmentDTO.getId());

DeptManager deptManager = deptManagerMapper.selectOne(queryWrapper);

// fixes bug #空指针异常, 如果部门没有经理, 会抛出空指针异常

if (deptManager != null) {

EmployeeDTO manager = employeeMapper.getUserById(deptManager.getEmpId());

departmentDTO.setManager(manager);

return departmentDTOS;

@Override

public Map<String, Object> add(Map<String, Object> map) {

//先查询是否有部门

String name = (String) map.get(“name”);

Integer managerId = Integer.parseInt((String) map.get(“managerId”));

LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();

wrapper.eq(Department::getName, name);

Integer count = departmentMapper.selectCount(wrapper);

if (count != 0) {

map.put(“code”, 511);

map.put(“message”, “部门存在”);

return map;

//查询经理是否存在

LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>();

wrapper1.eq(Employee::getId, managerId);

Integer count1 = employeeMapper.selectCount(wrapper1);

if (count1 == 0) {

map.put(“code”, 404);

map.put(“message”, “用户不存在”);

return map;

//定义返回结果

Map<String, Object> resultMap = new HashMap<>();

Department department = new Department();

department.setIntro((String) map.get(“descriiption”));

department.setName((String) map.get(“name”));

//插入部门

int i = departmentMapper.insert(department);

//部门经理表

DeptManager deptManager = new DeptManager();

deptManager.setDeptId(department.getId());

deptManager.setEmpId(managerId);

int insert = deptManagerMapper.insert(deptManager);

if (i !=0 ) {

map.put(“code”, 200);

map.put(“message”, “添加成功”);

return map;

} else {

map.put(“code”, 500);

map.put(“message”, “添加失败”);

return map;



http://chatgpt.dhexx.cn/article/ouSM1Ps4.shtml

相关文章

员工请假系统

演示地址&#xff1a; http://222.73.130.227:8100 已有用户及密码&#xff1a; adminleave.com/123 zhangsanqq.com/123 lisiqq.com/123 注意&#xff1a;如果需要对演示系统新添加用户&#xff0c;密码建议使用不常用的&#xff0c;尽管用户信息已使用加密存储 源码下载…

员工考勤管理系统

这里写自定义目录标题 1、需求分析1.1系统概述、产品说明1.2功能需求分析1.3开发使用工具1.4开发原则1.5开发目标1.6项目进度 2、概要设计、项目简介2.1 页面概述2.2设计思路2.3流程图&#xff08;页面结构&#xff09; 3、详细设计3.1页面介绍&#xff08;包含页面截图、功能说…

学生请假管理系统(需求说明+项目(部分代码))

一、需求说明书 软件需求说明书 1引言 1.1编写目的 开发本系统的目的&#xff0c;就是要解决目前我校关于学生请假和管理请假事务所面临的一系列问题。 1.2背景 说明&#xff1a; 计算机学院请假管理系统&#xff1b;目前我校基本上是采用线下请假&#xff0c;学生先是向班主任…

请假管理系统

更多技术文章请访问我的个人博客http://www.rain1024.com 请假管理系统 这几天受朋友之托&#xff0c;写了一个请假管理系统&#xff0c;使用PHP作为开发语言&#xff0c;使用ThinkPHP作为开发框架&#xff0c;使用了大量的ajax进行数据的传输验证&#xff0c;当然还有很多细…

Java项目:员工出差请假考勤管理系统(java+JSP+LayUI+HTML+servlet+Mysql)

源码获取&#xff1a;俺的博客首页 "资源" 里下载&#xff01; 项目介绍 本项目为后台管理系统&#xff1b; 管理员角色包含以下功能&#xff1a; 登录,首页,考勤记录增删改查,假期申请记录增删改查,出差申请记录增删改查,加班申请记录增删改查,调休申请,考勤查询,…

员工请假管理系统(MFC+ACCESS数据库+ODBC数据源)

主要界面:(未添加皮肤) 登陆界面: 主界面: 1.题目要求 用MFC和ACCESS数据库设计一个请假管理系统可以进行对员工请假的管理和对公司假期及国定假期的设定。 2.功能需求 2.1.系统管理 更换登录用户 退出 2.2.请假管理窗体 员工请假登记 删…

基于VB的员工请假管理系统设计与实现

目录 第一章 概述 1 1.1 项目背景与意义 1 1.2 可行性分析 1 1.2.1 技术可行性 1 1.2.2 经济可行性 2 1.2.3 运行可行性 2 1.3 相关技术与开发工具介绍 3 1.3.1 Visual Basic 6.0简介 3 1.3.2 Access数据库的介绍 5 第2章 总体设计 6 2.1 员工请假管理系统简介 6 2.1.1 整体说…

sql语句--模糊查询

模糊查询 1.like 表示模糊查询&#xff0c;这个没什么难的&#xff0c;已经见识过了。 2.配合like关键字&#xff0c;% 表示任意多个字符&#xff0c;表示这个玩意第一次知道&#xff0c;走着…… select * from students where hometown like %苏;3.同样是配合like关键字使…

模糊查询和sql语句的拼接

如下面图片所示&#xff1a;进行模糊查询 前端的页面代码&#xff1a; 注意&#xff1a;请选择那里的value"" 一定要写 <body><form action"SearchStuServlet" method"post"><table border"1px" width"700"…

sql查询之模糊查询

like 这里可以参照一下菜鸟教程、mysql like一般用于字符串查询%代表半匹配查询 SELECT * FROM student WHERE name "孙悟空";SELECT * FROM student WHERE name LIKE "孙悟空";SELECT * FROM student WHERE name LIKE "孙%";以上第一个sql语…

Mybatis模糊查询SQL语句

模糊查询 <sql id"where_case"><if test"username!null and username ! ">and username like concat(%,#{username},%)</if><if test"userrole!null">and userrole#{userrole} </if></sql> #{ }预编译S…

java中模糊查询sql怎么写,mybatis模糊查询sql,

mybatis模糊查询sql, 今天下午做的一个功能,要用到模糊查询,字段是description,刚开始我的写法用的是sql中的模糊查询语句, 但是这个有问题,只有将字段的全部值传入其中,才能查询,所以不是迷糊查询。 后来经过搜索,发现要加上一个concat字段,要先将字符串拼接后,才能…

java中sql模糊查询_模糊查询的sql语句(java模糊查询sql语句)

模糊查询的sql语句(java模糊查询sql语句) 2020-07-24 11:06:02 共10个回答 假设表名为product,商品名为name,简界为remark.则可如下写:select[name],[remark]fromproductnamelike%aa%orremarklike%aa%.注:上面单引号的aa你表模糊查询输入的字符. 一般模糊查询语句如下:SELECT字…

连接Oracle出现协议适配器错误

在连接Oracle的时候出现如下图所示的协议适配器错误时 说明此时电脑上的Oracle服务没有开 解决步骤: 1.WindowsR 输入services.msc 点击确定 2.找到字母O开头的服务 将OracleServiceXE服务和OracleXETNSListener服务打开 注意: 如果电脑性能比较好,推荐将这两个服务的启动类…

【已解决】SQL PLUS出现协议适配器错误

今天在做c#课程设计的时候&#xff0c;在登录页面实现数据库插入时候出现insert into语句错误&#xff08;使用access数据库&#xff09;。 在和其他专业小伙伴讨论他们使用access也出现了错误&#xff0c;但换了sql server之后成功实现&#xff0c;于是也想换成sql server&am…

ORACLE登录时,协议适配器错误的可能原因

我们进入sqlplus登录界面用管理员账号登录时会显示协议适配器错误 这种情况我们首先看一下&#xff0c;我们监听服务是否是打开的。 如果没有启动&#xff0c;把他启动就好了。 如果是打开的&#xff0c;就可能是你的注册表的oracle_sid没设置好 首先&#xff0c;我们先查看我…

oracle cmd窗口输入sqlplus / as sysdba 报协议适配器错误

一、报错信息 二、解决方法 1、启动Oracle相关服务 先查看Oracle相关服务的启动。 2、配置网络命名服务 查看oracle安装目录里面监听的文件tnsnames.ora和listener.ora文件 我的目录&#xff1a;c:\app\product\11.2.0\dbhome_1\NETWORK\ADMIN 1&#xff09;检查TNS_ADMI…

ERROR: ORA-12560: TNS: 协议适配器错误

Oracle数据库客户端能启动执行操作&#xff0c;但是cmd界面下提示ERROR: ORA-12560: TNS: 协议适配器错误&#xff0c;CrtlR输入services.msc命令检查Oracle两个服务是否开启&#xff0c;如果开启了还是此错误&#xff0c;那就去CrtlR输入regedit命令找到如下图指示&#xff0c…

TNS-12560: TNS: 协议适配器错误 TNS-00530: 协议适配器错误

重启监听时报错 ORA-12560: TNS: 协议适配器错误的解决方法 造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个&#xff1a; 1.监听服务没有起起来。windows平台个一如下操作&#xff1a;开始—程序—管理工具—服务&#xff0c;打开服务面板&#xff0c;启动oraclehome92…

ORA-12560 TNS: 协议适配器错误 根源:ORA-19815

登陆PL/SQL&#xff0c;确登陆失败&#xff0c;出现一个错误“ORA-01034”和“ORA-27101”如图&#xff1a; 然后分别查看路径文件: 文件1:"D:\app\Administrator\product\11.2.0\dbhome_1\database\oradim.log"找到最近第一次报错 继而查询文件2--> 文件2:&quo…