项目介绍
随着计算机应用的普及、成熟,越来越多公司开始采用网上信息管理系统,网上信息管理系统的运行可以有效的提高企业管理效率。因此,为满足企业办公管理方面的需求,开发了办公自动化管理系统。
本文重点阐述了办公自动化管理系统的开发过程,以实际运用为开发背景,基于SSM框架,运用了Java技术和MYSQL作为系统数据库进行开发,充分保证系统的安全性和稳定性。本系统界面良好,操作简单方便,通过系统概述、系统分析、系统设计、数据库设计、系统测试这几个部分,详细的说明了系统的开发过程,最后并对整个开发过程进行了总结,实现了办公管理的重要功能。
本系统的使用使管理人员从繁重的工作中解脱出来,实现无纸化办公,能够有效的提高企业办公管理效率。
开发环境
编程语言:Java
数据库 :Mysql
系统架构:B/S
后端框架:SSM
编译工具:idea或者eclipse,jdk1.8,maven
支持定做:java/php/python/android/小程序ue/爬虫/c#/asp.net
系统实现
5.1管理员功能模块的实现
5.1.1管理员登录界面
管理员要想进入本系统进行管理操作,必须登录系统后台,管理员登录界面展示如图5-1所示。
图5-1 管理员登录界面图
5.1.2员工管理界面
管理员可增删改查员工信息,员工管理界面如图5-2所示。
图5-2 员工管理界面
5.1.3部门管理界面
管理员可添加、修改和删除部门信息,部门管理界面展示如图5-3所示。
图5-3 部门管理界面
5.1.4员工档案管理界面
管理员可增删改查员工档案信息,员工档案管理界面展示如图5-4所示,添加员工档案界面展示如图5-5所示。
图5-4 员工档案管理界面
图5-5 添加员工档案界面
5.1.5公司公告管理界面
管理员可增删改查公司公告信息,公司公告管理界面如图5-6所示,添加公司公告界面展示如图5-7所示。
图5-6 公司公告管理界面
图5-7 添加公司公告界面
5.1.6员工请假管理界面
管理员可查看员工请假信息,并可对其进行审核、修改和删除操作,员工请假管理界面展示如图5-8所示。
图5-8 员工请假管理界面
5.2员工功能模块的实现
5.2.1员工登录界面
员工在登录界面可输入用户名和密码,选择登录类型,点击登录按钮进行登录系统,员工登录界面如图5-9所示。
图5-9 员工登录界面
5.2.2系统主界面
用户在系统主界面可查看系统信息,包括首页、公司公告以及公司新闻等,系统主界面展示如图5-10所示。
图5-10 系统主界面
5.2.3添加员工考勤界面
员工登录后可添加员工考勤信息,添加员工考勤界面如图5-11所示。
图5-11 添加员工考勤界面
5.2.4员工请假界面
员工通过本平台可进行添加请假,员工请假界面展示如图5-12所示。
图5-12 员工请假界面
5.3部门功能模块的实现
5.3.1工作内容管理界面
部门可增删改查工作内容信息,工作内容管理界面展示如图5-13所示。
图5-13 工作内容管理界面
5.3.2工作报表管理界面
部门可增删改查工作报表信息,工作报表管理界面展示如图5-14所示。
图5-14 工作报表管理界面
核心代码
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.BumenEntity;
import com.entity.view.BumenView;
import com.service.BumenService;
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("men")
public class BumenController {
@Autowired
private BumenService bumenService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@RequestMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
BumenEntity user = bumenService.selectOne(new EntityWrapper<BumenEntity>().eq("bumenzhanghao", username));
if(user==null || !user.getMima().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(), username,"bumen", "部门" );
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@RequestMapping("/register")
public R register(@RequestBody BumenEntity bumen){
//ValidatorUtils.validateEntity(bumen);
BumenEntity user = bumenService.selectOne(new EntityWrapper<BumenEntity>().eq("bumenzhanghao", bumen.getBumenzhanghao()));
if(user!=null) {
return R.error("注册用户已存在");
}
Long uId = new Date().getTime();
bumen.setId(uId);
bumenService.insert(bumen);
return R.ok();
}
/**
* 退出
*/
@RequestMapping("/logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("ssion")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
BumenEntity user = bumenService.selectById(id);
return R.ok().put("data", user);
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
BumenEntity user = bumenService.selectOne(new EntityWrapper<BumenEntity>().eq("bumenzhanghao", username));
if(user==null) {
return R.error("账号不存在");
}
user.setMima("123456");
bumenService.updateById(user);
return R.ok("密码已重置为:123456");
}
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,BumenEntity bumen,
HttpServletRequest request){
EntityWrapper<BumenEntity> ew = new EntityWrapper<BumenEntity>();
PageUtils page = bumenService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, bumen), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@RequestMapping("st")
public R list(@RequestParam Map<String, Object> params,BumenEntity bumen,
HttpServletRequest request){
EntityWrapper<BumenEntity> ew = new EntityWrapper<BumenEntity>();
PageUtils page = bumenService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, bumen), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("sts")
public R list( BumenEntity bumen){
EntityWrapper<BumenEntity> ew = new EntityWrapper<BumenEntity>();
ew.allEq(MPUtil.allEQMapPre( bumen, "bumen"));
return R.ok().put("data", bumenService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(BumenEntity bumen){
EntityWrapper< BumenEntity> ew = new EntityWrapper< BumenEntity>();
ew.allEq(MPUtil.allEQMapPre( bumen, "bumen"));
BumenView bumenView = bumenService.selectView(ew);
return R.ok("查询部门成功").put("data", bumenView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
BumenEntity bumen = bumenService.selectById(id);
return R.ok().put("data", bumen);
}
/**
* 前端详情
*/
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
BumenEntity bumen = bumenService.selectById(id);
return R.ok().put("data", bumen);
}
/**
* 后端保存
*/
@RequestMapping("ve")
public R save(@RequestBody BumenEntity bumen, HttpServletRequest request){
bumen.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(bumen);
BumenEntity user = bumenService.selectOne(new EntityWrapper<BumenEntity>().eq("bumenzhanghao", bumen.getBumenzhanghao()));
if(user!=null) {
return R.error("用户已存在");
}
bumen.setId(new Date().getTime());
bumenService.insert(bumen);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody BumenEntity bumen, HttpServletRequest request){
bumen.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(bumen);
BumenEntity user = bumenService.selectOne(new EntityWrapper<BumenEntity>().eq("bumenzhanghao", bumen.getBumenzhanghao()));
if(user!=null) {
return R.error("用户已存在");
}
bumen.setId(new Date().getTime());
bumenService.insert(bumen);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody BumenEntity bumen, HttpServletRequest request){
//ValidatorUtils.validateEntity(bumen);
bumenService.updateById(bumen);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
bumenService.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<BumenEntity> wrapper = new EntityWrapper<BumenEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
int count = bumenService.selectCount(wrapper);
return R.ok().put("count", count);
}
}
论文参考
目 录
1 引言 1
1.1 课题背景 1
1.2 研究现状 1
1.3 论文结构安排 2
2 系统关键技术 3
2.1 JAVA技术 3
2.2 B/S结构 3
2.3 MYSQL数据库 4
2.4 SSM框架 4
3 系统分析 6
3.1 可行性分析 6
3.1.1 技术可行性 6
3.1.2 经济可行性 6
3.1.3 运行可行性 6
3.1.4 法律可行性 6
3.2 系统性能分析 7
3.3 系统功能分析 7
3.4 系统流程分析 9
3.4.1 操作流程 9
3.4.2 添加信息流程 9
3.4.3 修改信息流程图 10
3.4.4 删除信息流程 10
4 系统设计 11
4.1 系统概要设计 11
4.2 系统结构设计 11
4.3 系统顺序图设计 12
4.4 数据库设计 13
4.4.1 数据库E-R图设计 13
4.4.2 数据库表设计 15
5 系统的实现 19
5.1 管理员功能模块的实现 19
5.1.1 管理员登录界面 19
5.1.2 员工管理界面 19
5.1.3 部门管理界面 20
5.1.4 员工档案管理界面 20
5.1.5 公司公告管理界面 21
5.1.6 员工请假管理界面 22
5.2 员工功能模块的实现 22
5.2.1 员工登录界面 22
5.2.2 系统主界面 23
5.2.3 添加员工考勤界面 23
5.2.4 员工请假界面 24
5.3 部门功能模块的实现 24
5.3.1 工作内容管理界面 24
5.3.2 工作报表管理界面 25
6 系统测试 26
6.1 测试定义 26
6.2 测试方法 26
6.3 测试内容 27
6.4 测试结论 27
结论 29
致谢 30
参考文献 31