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

article/2025/10/9 2:17:01

源码获取:俺的博客首页 "资源" 里下载!

项目介绍


本项目为后台管理系统;

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

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

环境需要

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 {@Autowiredprivate EmployeeService employeeService;@Autowiredprivate DepartmentService departmentService;@Autowiredprivate JobService jobService;@Autowiredprivate EduLevelMapper eduLevelMapper;@Autowiredprivate 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 {@Autowiredprivate EmployeeMapper employeeMapper;@Overridepublic Result login(String email, String password) {//先用邮箱查询是否有这个员工LambdaQueryWrapper<Employee> 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);}// 生成tokenString 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 {@Autowiredprivate DepartmentMapper departmentMapper;@Autowiredprivate DeptManagerMapper deptManagerMapper;@Autowiredprivate EmployeeMapper employeeMapper;@Overridepublic List<DepartmentDTO> selectAll() {List<DepartmentDTO> departmentDTOS = departmentMapper.selectAll();for (DepartmentDTO departmentDTO : departmentDTOS) {LambdaQueryWrapper<DeptManager> 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;}@Overridepublic Map<String, Object> add(Map<String, Object> map) {//先查询是否有部门String name = (String) map.get("name");Integer managerId = Integer.parseInt((String) map.get("managerId"));LambdaQueryWrapper<Department> 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<Employee> 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("description"));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/JGGa8Enl.shtml

相关文章

员工请假管理系统(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…

ORA-12560: TNS: 协议适配器错误怎么回事?

最近登录oracle数据库&#xff0c;发现出现了协议适配器错误&#xff0c;百度半天都没有解决&#xff0c;最后发现了问题。 由于本学渣有多个数据库&#xff0c;所以需要设置数据库(set oracle_sid数据库名)&#xff0c;但问题就出现在这里啦。。。 可以看到设置数据库时后面由…

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

数据库中存在多个实例时&#xff0c;使用sqlplus登录&#xff0c;报ORA-12560 TNS: 协议适配器错误解决方法&#xff1a; 1、检查监听和相应的实例是否未启动&#xff1b; &#xff08;参考&#xff1a;https://blog.csdn.net/nanyida0416sushe/article/details/5584117&#…

oracle11适配器错误,oracle11g登录出现协议适配器错误的解决办法(亲测)

第一次使用Oracle数据库(其实之前下了Oracle18c&#xff0c;但发现需要8G物理内存&#xff0c;Oracle12也需要6G内存&#xff0c;而我的电脑只有4G内存&#xff0c;无奈只能选择Oracle11g)&#xff0c;整了好一会才知道oracle的登录方法&#xff1a;“开始”——Oracle软件目录…

SQL> conn sys/root as sysdbaERROR:ORA-12560: TNS: 协议适配器错误的解决方案

文章目录 问题描述 解决方案 总结 问题描述 启动oracle数据库时&#xff0c;出现协议适配器错误的情况&#xff1a; SQL> conn sys/root as sysdba ERROR: ORA-12560: TNS: 协议适配器错误 解决方案 database instance没有起起来。windows平台如下操作&#xff1a;开始--…

cmd登录mysql提示协议适配器错误_ORA-12560: TNS: 协议适配器错误

造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个&#xff1a; 1 监听服务没有起起来 Windows平台个一如下操作&#xff1a;开始---程序---管理工 造成ORA-12560: TNS: 协议适配器错误的问题的原因有三个&#xff1a; 1 监听服务没有起起来 Windows平台个一如下操作&…