文章目录
- 前言
- 项目介绍
- 技术介绍
- 功能介绍
- 核心代码
- 数据库参考
- 系统效果图
- 文章目录
前言
文章底部名片,获取项目的完整演示视频,免费解答技术疑问
项目介绍
伴随着我国社会的发展,人民生活质量日益提高。于是对各种需求进行规范而严格是十分有必要的,所以许许多多的微信小程序应运而生。此时单靠人力应对这些事务就显得有些力不从心了。所以本论文将设计一套基于小程序的企业考勤系统,帮助企业进行部门信息、上班打卡、员工考勤、员工工资、加班申请、请假申请、调动申请等繁琐又重复的工作,提高工作效率的同时,也减轻了管理者的压力。
本论文的主要内容包括:
第一,研究分析当下主流的Uni-weixin技术,结合企业日常管理方式,进行基于小程序的企业考勤系统的数据库设计,设计基于小程序的企业考勤系统功能,并对每个模块进行说明。
第二,陈列说明该微信小程序实现所采用的架构、系统搭建采用的服务器、系统开发环境和使用的工具,以及系统后台采用的数据库。
最后,对微信小程序进行全面测试,主要包括功能测试、查询性能测试、安全性能测试。分析微信小程序存在的不足以及将来改进的方向。
技术介绍
开发语言:Java
框架:springboot
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven
安卓框架:uniapp
安卓开发软件:HBuilder X
开发模式:混合开发
功能介绍
本基于小程序的企业考勤系统是为了提高用户查阅信息的效率和管理人员管理信息的工作效率,可以快速存储大量数据,还有信息检索功能,这大大的满足了员工和管理员这二者的需求。操作简单易懂,合理分析各个模块的功能,尽可能优化界面,让员工和管理员能使用环境更好的系统。
对比要实现的功能来分析出用户的需求,可以让用户在线对其进行查看部门信息、公司公告等信息,这不仅满足了用户的需求,还大大的节省了时间。因此,管理员对信息进行添加、修改、删除、查看,可以提高管理员的工作效率。
核心代码
package com.example.controller;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.SecureUtil;
import com.example.common.Result;
import com.example.common.ResultCode;
import com.example.entity.Caiwu;
import com.example.exception.CustomException;
import com.example.service.CaiwuService;
import com.example.utils.MapWrapperUtils;
import com.example.utils.jwt.JwtUtil;
import com.example.vo.CaiwuVo;
import org.springframework.beans.BeanUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping(value = "/caiwu")
public class CaiwuController {
@Resource
private CaiwuService caiwuService;
@PostMapping
public Result<Caiwu> add(@RequestBody CaiwuVo caiwu) {
caiwuService.add(caiwu);
return Result.success(caiwu);
}
@PostMapping("/deleteList")
public Result<Caiwu> deleteList(@RequestBody CaiwuVo caiwu) {
caiwuService.deleteList(caiwu.getList());
return Result.success();
}
@DeleteMapping("/{id}")
public Result delete(@PathVariable Long id) {
caiwuService.delete(id);
return Result.success();
}
@PutMapping
public Result update(@RequestBody CaiwuVo caiwu) {
caiwuService.update(caiwu);
return Result.success();
}
@GetMapping("/{id}")
public Result<Caiwu> detail(@PathVariable Integer id) {
Caiwu caiwu = caiwuService.findById(id);
return Result.success(caiwu);
}
@GetMapping
public Result<List<Caiwu>> all() {
return Result.success(caiwuService.list());
}
@PostMapping("/page")
public Result<CaiwuVo> page(@RequestBody CaiwuVo caiwuVo) {
return Result.success(caiwuService.findPage(caiwuVo));
}
@PostMapping("/login")
public Result login(@RequestBody Caiwu caiwu, HttpServletRequest request) {
if (StrUtil.isBlank(caiwu.getZhanghao()) || StrUtil.isBlank(caiwu.getMima())) {
throw new CustomException(ResultCode.PARAM_LOST_ERROR);
}
Caiwu login = caiwuService.login(caiwu);
// if(!login.getStatus()){
// return Result.error("1001","状态限制,无法登录系统");
// }
if(login != null) {
HashMap hashMap = new HashMap();
hashMap.put("user", login);
Map<String, Object> map = MapWrapperUtils.builder(MapWrapperUtils.KEY_USER_ID,caiwu.getId());
String token = JwtUtil.creatToken(map);
hashMap.put("token", token);
return Result.success(hashMap);
}else {
return Result.error();
}
}
@PutMapping("/updatePassword")
public Result updatePassword(@RequestBody Caiwu info, HttpServletRequest request) {
Caiwu caiwu = caiwuService.findById(info.getId());
String oldPassword = SecureUtil.md5(info.getMima());
if (!oldPassword.equals(caiwu.getMima())) {
return Result.error(ResultCode.PARAM_PASSWORD_ERROR.code, ResultCode.PARAM_PASSWORD_ERROR.msg);
}
info.setMima(SecureUtil.md5(info.getNewPassword()));
Caiwu caiwu1 = new Caiwu();
BeanUtils.copyProperties(info, caiwu1);
caiwuService.update(caiwu1);
return Result.success();
}
}
数据库参考
--
-- Current Database: `springbootk0ie3hg5`
--
/*!40000 DROP DATABASE IF EXISTS `springbootk0ie3hg5`*/;
CREATE DATABASE /*!32312 IF NOT EXISTS*/ `springbootk0ie3hg5` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;
USE `springbootk0ie3hg5`;
--
-- Table structure for table `bumenxinxi`
--
DROP TABLE IF EXISTS `bumenxinxi`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `bumenxinxi` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`bumenmingcheng` varchar(200) NOT NULL COMMENT '部门名称',
`fuzeren` varchar(200) NOT NULL COMMENT '负责人',
`lianxifangshi` varchar(200) DEFAULT NULL COMMENT '联系方式',
`fengmian` longtext COMMENT '封面',
`bumenrenshu` int(11) DEFAULT NULL COMMENT '部门人数',
`bumenjieshao` longtext COMMENT '部门介绍',
`clicknum` int(11) DEFAULT '0' COMMENT '点击次数',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=30 DEFAULT CHARSET=utf8 COMMENT='部门信息';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `bumenxinxi`
--
LOCK TABLES `bumenxinxi` WRITE;
/*!40000 ALTER TABLE `bumenxinxi` DISABLE KEYS */;
INSERT INTO `bumenxinxi` VALUES (21,'2023-12-30 02:24:28','部门名称1','负责人1','13823888881','upload/bumenxinxi_fengmian1.jpg,upload/bumenxinxi_fengmian2.jpg,upload/bumenxinxi_fengmian3.jpg',1,'部门介绍1',1),(22,'2023-12-30 02:24:28','部门名称2','负责人2','13823888882','upload/bumenxinxi_fengmian2.jpg,upload/bumenxinxi_fengmian3.jpg,upload/bumenxinxi_fengmian4.jpg',2,'部门介绍2',2),(23,'2023-12-30 02:24:28','部门名称3','负责人3','13823888883','upload/bumenxinxi_fengmian3.jpg,upload/bumenxinxi_fengmian4.jpg,upload/bumenxinxi_fengmian5.jpg',3,'部门介绍3',3),(24,'2023-12-30 02:24:28','部门名称4','负责人4','13823888884','upload/bumenxinxi_fengmian4.jpg,upload/bumenxinxi_fengmian5.jpg,upload/bumenxinxi_fengmian6.jpg',4,'部门介绍4',4),(25,'2023-12-30 02:24:28','部门名称5','负责人5','13823888885','upload/bumenxinxi_fengmian5.jpg,upload/bumenxinxi_fengmian6.jpg,upload/bumenxinxi_fengmian7.jpg',5,'部门介绍5',5),(26,'2023-12-30 02:24:28','部门名称6','负责人6','13823888886','upload/bumenxinxi_fengmian6.jpg,upload/bumenxinxi_fengmian7.jpg,upload/bumenxinxi_fengmian8.jpg',6,'部门介绍6',6),(27,'2023-12-30 02:24:28','部门名称7','负责人7','13823888887','upload/bumenxinxi_fengmian7.jpg,upload/bumenxinxi_fengmian8.jpg,upload/bumenxinxi_fengmian9.jpg',7,'部门介绍7',7),(28,'2023-12-30 02:24:28','物流部','负责人8','13823888888','upload/bumenxinxi_fengmian8.jpg,upload/bumenxinxi_fengmian9.jpg,upload/bumenxinxi_fengmian10.jpg',15,'<p>部门介绍8</p>',9),(29,'2023-12-30 02:33:18','技术部','李四','15118888888','upload/1703903594592.jpg',10,'<p>操作者可以在输入框输入 详情信息 等内容。</p><p>操作者可以在输入框输入 详情信息 等内容。</p><p>操作者可以在输入框输入 详情信息 等内容。</p><p>操作者可以在输入框输入 详情信息 等内容。</p><p><br></p><p>操作者可以在输入框输入 详情信息 等内容。</p><p><br></p><p>操作者可以在输入框输入 详情信息 等内容。</p><p>操作者可以在输入框输入 详情信息 等内容。</p><p>操作者可以在输入框输入 详情信息 等内容。</p><p>操作者可以在输入框输入 详情信息 等内容。</p><p>操作者可以在输入框输入 详情信息 等内容。</p><p>操作者可以在输入框输入 详情信息 等内容。</p><p>操作者可以在输入框输入 详情信息 等内容。</p><p><br></p>',1);
/*!40000 ALTER TABLE `bumenxinxi` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `config`
--
DROP TABLE IF EXISTS `config`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `config` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(100) NOT NULL COMMENT '配置参数名称',
`value` varchar(100) DEFAULT NULL COMMENT '配置参数值',
`url` varchar(500) DEFAULT NULL COMMENT 'url',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='配置文件';
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `config`
--
LOCK TABLES `config` WRITE;
/*!40000 ALTER TABLE `config` DISABLE KEYS */;
INSERT INTO `config` VALUES (1,'picture1','upload/picture1.jpg',NULL),(2,'picture2','upload/picture2.jpg',NULL),(3,'picture3','upload/1703903737551.jpg',NULL);
/*!40000 ALTER TABLE `config` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `diaodongshenqing`
--
DROP TABLE IF EXISTS `diaodongshenqing`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `diaodongshenqing` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`gonghao` varchar(200) NOT NULL COMMENT '工号',
`xingming` varchar(200) DEFAULT NULL COMMENT '姓名',
`touxiang` longtext COMMENT '头像',
`bumen` varchar(200) NOT NULL COMMENT '原部门',
`shenqingbumen` varchar(200) NOT NULL COMMENT '申请部门',
`shenqingyuanyin` longtext COMMENT '申请原因',
`shenqingriqi` date DEFAULT NULL COMMENT '申请日期',
`sfsh` varchar(200) DEFAULT '待审核' COMMENT '是否审核',
`shhf` longtext COMMENT '审核回复',
`userid` bigint(20) DEFAULT NULL COMMENT '用户id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=90 DEFAULT CHARSET=utf8 COMMENT='调动申请';
/*!40101 SET character_set_client = @saved_cs_client */;
--
系统效果图
文章目录
目 录
摘 要 Ⅰ
Abstract Ⅱ
1 绪 论 1
1.1研究背景 1
1.2 研究意义 1
1.3 研究现状 2
1.4本文组织结构 2
2 技术介绍 3
2.1微信开发者工具 3
2.2小程序目录结构以及框架介绍 5
2.3 SpringBoot框架 5
2.4 Java语言 6
2.5 Mysql的特点 6
2.6本章小结 6
3需求分析 7
3.1可行性分析 7
3.1.1经济可行性 7
3.1.2技术可行性 8
3.1.3运营可行性 8
3.1.4法律可行性 8
3.2系统需求分析 8
3.2.1 性能需求 9
3.2.2 安全性需求 9
3.2.3 功能需求 10
3.3本章小结 10
4系统设计 11
4.1系统结构设计 11
4.2系统功能模块设计 11
4.3 数据库设计 12
4.3.1 概念模型设计 12
4.3.2 数据库表结构 12
4.4本章小结 14
5 系统实现 15
5.1系统开发环境以及运行环境 15
5.1.1 系统开发环境 15
5.1.2 系统运行环境 16
5.2基于小程序的企业考勤系统的主要功能模块实现 16
5.2.1员工微信端功能的实现 17
5.2.2管理员服务端功能的实现 17
5.2.3本章小结 18
6系统测试 19
6.1 系统测试目的 19
6.2 系统测试环境 19
6.3系统测试用例 19
6.4本章小结 20
结 论 21
参考文献 22
致 谢 23