一、前言
单位考勤系统的管理设计与实现采用B/S架构、前后端分离以及MVC模型进行设计,并采用java语言以及Spring Boot框架进行开发。该系统主要设计并完成了管理过程中的员工登录、个人信息修改、加班申请、打卡信息、工作汇报、请假信息等功能。该系统操作简便,界面设计简洁,不但可以基本满足本行业的日常管理工作,同时又可以有效减少人员成本和时间成本,为单位考勤系统的管理工作提供了方便。
2.1 系统开发环境
本管理系统采用的集成开发环境为IntelliJ IDEA,使用Java等语言及Springboot框架进行开发,其中硬件环境和软件环境如下:
(1)硬件环境
处理器:Intel® Core™ i5-7400 CPU @ 3.00GHz 3.00GHz
内存:8GB
(2)软件环境
操作系统:windows 10 64位操作系统
开发工具:IntelliJ IDEA 2019.1
2.2 系统开发技术
智慧党建系统采用B/S(Browser/Server)架构和MVC模型进行设计开发。在B/S架构下,用户在浏览器端进行使用,主要工作通过服务器端进行实现,用户通过网站进行访问大大节约了成本。本系统使用Java等语言同时运用了Springboot框架进行开发,使用MySQL进行数据存储。
2.2.1 Java技术
Java是一种在Web应用开发中得到广泛使用的脚本语言,经常被用来对用户的相关行为做出反应。它还具有面向对象的设计能力,使设计开发过程更加直观和模块化,并在HTML基础上进行交互Web页面的开发[9]。这种脚本语言的问世,使用户与页面之间的实时、动态交互成为现实,丰富了页面的内容,增强了页面的活力。另外,Java技术也被广泛地运用于该系统,比如对用户输入的数据进行检测,以保证其有效性。Java技术[10]可以在不依赖Web服务程序的基础上在本地客户机上运行。从而有效地解决了因网络速度所带来的迟缓问题,使用户能够更加顺畅、快捷地进行访问。一些功能,比如用户的数据输入,可以通过JavaScript这样的客户语言来完成。该系统采用Java客户机进行用户身份认证,确保了系统的安全性和可靠性。
2.2.2 SpringBoot框架
Spring Boot是由Pivotal的开发团队在2013年开发的一个免费、轻量级、开源的系统框架。SpringBoot的主要设计思想是约定大于配置,因此SpringBoot在设计时几乎达到零配置。SpringBoot集成了业界的开源框架。
SpringBoot是一个非常强大的后台框架,因为SpringBoot的开发基本上不需要写配置文件,所以利用SpringBoot来构建网站的后台环境,在SpringBoot的YML配置文件中写项目启动端口,项目就可以启动了。项目的Java和静态文件由SpringBoot管理。
2.2.3 MySQL数据库
MySql做为瑞典公司MySql AB开发的中小型开源数据库智能管理系统,具备配备低、低成本、运作速度更快的优势。与此同时,因为社区版的开源系统性,变成了许多网址减少开发成本费的最佳选择。被甲骨文回收后,MySQL也发布了商业版。另外Mysql具有以下特性:
(1)使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。
(2)为C、C++、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等多种编程语言提供了API。
(3)采用多线程并行的方法提高了CPU的利用率。
(4)改善算法,有效地提高查询速度。
2.2.4 B/S结构
B/S结构就是指系统客户端与服务器分离,客户端通过浏览器访问服务端进行操作[10]。
B/S结构目前广泛应用于绝大部分系统搭建中,这种结构摒弃C/S结构客户端服务端不分离的缺点,具有更多的优势:
(1)跨平台性:B/S的标准由标准化组织确立,适用于绝大多数的系统搭建,通用于应用之间。
(2)低维护成本:客户端和服务器端分离,减轻了两端的压力,尤其是客户端,对客户端设备,硬件、软件要求都比较低,并且系统需要升级或维护时,只需要在服务器端升级或维护就可以,使相应的费用减少。
二、系统功能效果
三、核心代码
package com.service;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.service.IService;
import com.utils.PageUtils;
import com.entity.GongzuohuibaoEntity;
import java.util.List;
import java.util.Map;
import com.entity.vo.GongzuohuibaoVO;
import org.apache.ibatis.annotations.Param;
import com.entity.view.GongzuohuibaoView;
/**
* 工作汇报
*
* @author
* @email
* @date 2023-01-12 09:36:41
*/
public interface GongzuohuibaoService extends IService<GongzuohuibaoEntity> {
PageUtils queryPage(Map<String, Object> params);
List<GongzuohuibaoVO> selectListVO(Wrapper<GongzuohuibaoEntity> wrapper);
GongzuohuibaoVO selectVO(@Param("ew") Wrapper<GongzuohuibaoEntity> wrapper);
List<GongzuohuibaoView> selectListView(Wrapper<GongzuohuibaoEntity> wrapper);
GongzuohuibaoView selectView(@Param("ew") Wrapper<GongzuohuibaoEntity> wrapper);
PageUtils queryPage(Map<String, Object> params,Wrapper<GongzuohuibaoEntity> wrapper);
}
package com.service;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.service.IService;
import com.utils.PageUtils;
import com.entity.QingjiaxinxiEntity;
import java.util.List;
import java.util.Map;
import com.entity.vo.QingjiaxinxiVO;
import org.apache.ibatis.annotations.Param;
import com.entity.view.QingjiaxinxiView;
/**
* 请假信息
*
* @author
* @email
* @date 2023-01-12 09:36:41
*/
public interface QingjiaxinxiService extends IService<QingjiaxinxiEntity> {
PageUtils queryPage(Map<String, Object> params);
List<QingjiaxinxiVO> selectListVO(Wrapper<QingjiaxinxiEntity> wrapper);
QingjiaxinxiVO selectVO(@Param("ew") Wrapper<QingjiaxinxiEntity> wrapper);
List<QingjiaxinxiView> selectListView(Wrapper<QingjiaxinxiEntity> wrapper);
QingjiaxinxiView selectView(@Param("ew") Wrapper<QingjiaxinxiEntity> wrapper);
PageUtils queryPage(Map<String, Object> params,Wrapper<QingjiaxinxiEntity> wrapper);
List<Map<String, Object>> selectValue(Map<String, Object> params,Wrapper<QingjiaxinxiEntity> wrapper);
List<Map<String, Object>> selectTimeStatValue(Map<String, Object> params,Wrapper<QingjiaxinxiEntity> wrapper);
List<Map<String, Object>> selectGroup(Map<String, Object> params,Wrapper<QingjiaxinxiEntity> wrapper);
}