项目介绍
目前社会当中主要特征就是对于信息的传播比较快和信息内容的安全问题,原本进行办公的类型都耗费了很多的资源、传播的速度也是相对较慢、准确性不高等许多的不足。这个系统就是运用计算机软件来完成对于企业当中出勤率的管控,这样减少了人们整个的劳动力,也把工作效率得到了提升,与此同时又会把较为繁琐的工作变得轻而易举。
这个计算机系统是基础于SpringBoot的构造所研究开发的企业对于出勤进行管控的体系,基础于B/S类型,更好利用SpringBoot构造,运用上Java有关的语言,出现的数值存在储备在MySQL对应的数值库存当中,费用低的实际成本的达到了企业对于出勤的管控体系。能够更便捷的完成管控的需求。其中包含着出勤内容的管控,对于客户的管理,对于考勤的每日信息可以随时查看等特点。这个体系很容易运用、在客户使用的时候也是比较容易的,交互特征也是比较强,能够做到更可靠。
开发环境
编程语言:Java
数据库 :Mysql
系统架构:B/S
后端框架:SpringBoot
编译工具:idea或者eclipse,jdk1.8,maven
支持定做:java/php/python/android/小程序vue/爬虫/c#/asp.net
系统实现
核心代码
package com.controller;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;
import com.entity.YuangongkaoqinEntity;
import com.entity.view.YuangongkaoqinView;
import com.service.YuangongkaoqinService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
/**
* 员工考勤
* 后端接口
* @author
* @email
* @date
*/
@RestController
@RequestMapping("/yuangongkaoqin")
public class YuangongkaoqinController {
@Autowired
private YuangongkaoqinService yuangongkaoqinService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,YuangongkaoqinEntity yuangongkaoqin,
HttpServletRequest request){
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("yuangong")) {
yuangongkaoqin.setYuangonggonghao((String)request.getSession().getAttribute("username"));
}
EntityWrapper<YuangongkaoqinEntity> ew = new EntityWrapper<YuangongkaoqinEntity>();
PageUtils page = yuangongkaoqinService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yuangongkaoqin), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,YuangongkaoqinEntity yuangongkaoqin,
HttpServletRequest request){
EntityWrapper<YuangongkaoqinEntity> ew = new EntityWrapper<YuangongkaoqinEntity>();
PageUtils page = yuangongkaoqinService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, yuangongkaoqin), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( YuangongkaoqinEntity yuangongkaoqin){
EntityWrapper<YuangongkaoqinEntity> ew = new EntityWrapper<YuangongkaoqinEntity>();
ew.allEq(MPUtil.allEQMapPre( yuangongkaoqin, "yuangongkaoqin"));
return R.ok().put("data", yuangongkaoqinService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(YuangongkaoqinEntity yuangongkaoqin){
EntityWrapper< YuangongkaoqinEntity> ew = new EntityWrapper< YuangongkaoqinEntity>();
ew.allEq(MPUtil.allEQMapPre( yuangongkaoqin, "yuangongkaoqin"));
YuangongkaoqinView yuangongkaoqinView = yuangongkaoqinService.selectView(ew);
return R.ok("查询员工考勤成功").put("data", yuangongkaoqinView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
YuangongkaoqinEntity yuangongkaoqin = yuangongkaoqinService.selectById(id);
return R.ok().put("data", yuangongkaoqin);
}
/**
* 前端详情
*/
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
YuangongkaoqinEntity yuangongkaoqin = yuangongkaoqinService.selectById(id);
return R.ok().put("data", yuangongkaoqin);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody YuangongkaoqinEntity yuangongkaoqin, HttpServletRequest request){
yuangongkaoqin.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(yuangongkaoqin);
yuangongkaoqinService.insert(yuangongkaoqin);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody YuangongkaoqinEntity yuangongkaoqin, HttpServletRequest request){
yuangongkaoqin.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(yuangongkaoqin);
yuangongkaoqinService.insert(yuangongkaoqin);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody YuangongkaoqinEntity yuangongkaoqin, HttpServletRequest request){
//ValidatorUtils.validateEntity(yuangongkaoqin);
yuangongkaoqinService.updateById(yuangongkaoqin);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
yuangongkaoqinService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
* 提醒接口
*/
@RequestMapping("/remind/{columnName}/{type}")
public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
@PathVariable("type") String type,@RequestParam Map<String, Object> map) {
map.put("column", columnName);
map.put("type", type);
if(type.equals("2")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date remindStartDate = null;
Date remindEndDate = null;
if(map.get("remindstart")!=null) {
Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindStart);
remindStartDate = c.getTime();
map.put("remindstart", sdf.format(remindStartDate));
}
if(map.get("remindend")!=null) {
Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindEnd);
remindEndDate = c.getTime();
map.put("remindend", sdf.format(remindEndDate));
}
}
Wrapper<YuangongkaoqinEntity> wrapper = new EntityWrapper<YuangongkaoqinEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
String tableName = request.getSession().getAttribute("tableName").toString();
if(tableName.equals("yuangong")) {
wrapper.eq("yuangonggonghao", (String)request.getSession().getAttribute("username"));
}
int count = yuangongkaoqinService.selectCount(wrapper);
return R.ok().put("count", count);
}
}
论文参考
目录
第一章 绪论 5
1.1 研究背景 5
1.2 系统研究现状 5
1.3 系统实现的功能 6
1.4 系统实现的特点 6
1.5 本文的组织结构 6
第二章开发技术与环境配置 7
2.1 Java语言简介 7
2.2 Vue技术 8
2.3 MySQL环境配置 8
2.4 IDEA环境配置 9
2.5 Mysql数据库介绍 9
2.6 B/S架构 9
第三章系统分析与设计 11
3.1 可行性分析 11
3.1.1 技术可行性 11
3.1.2 操作可行性 11
3.1.3经济可行性 11
3.2 需求分析 12
3.3 总体设计 12
3.4 数据库设计与实现 13
3.4.1 数据库概念结构设计 13
3.4.2 数据库具体设计 14
第四章 系统功能的具体实现 22
4.1 系统功能模块 22
4.2 管理员功能模块 25
第五章 系统测试 29
总结 30
参考文献 31
致谢 32