项目介绍
办公用品申请领用管理系统是一种基于信息技术的应用系统,用于方便和规范组织内部办公用品的申请、领用和管理。该系统可以提供以下功能:
办公用品目录管理:系统中包含完整的办公用品目录,包括各类办公用品的名称、规格、库存数量等信息。管理员可以定期更新和维护这个目录,确保信息的准确性和完整性。
办公用品申请:系统允许员工通过在线平台提交办公用品申请。员工可以选择需要的办公用品,并填写申请的数量和理由。申请表格可以包括审批流程和申请人的相关信息。
审批流程管理:系统可以根据设定的规则和权限,自动将申请发送给相应的审核人员进行审批。审批人员可以在系统中查看申请详情,并决定是否批准或拒绝申请。系统还可以记录每一次审批的时间和结果。
办公用品领用:一旦申请获得批准,系统会自动将申请的办公用品从库存中扣除,并生成相应的领用单。员工可以在指定的地点和时间领取所需的办公用品,并在系统中确认领用。
库存管理:系统能够及时记录和更新办公用品的库存数量。每次申请批准和领用完成后,系统会自动更新库存数量,并发出提醒或补货通知,以确保办公用品的充足和供应链的畅通。
报表和统计分析:系统可以生成各种报表和统计分析,包括办公用品消耗情况、申请和领用的数据统计等。这些报表和统计数据可以帮助管理人员了解办公用品的使用情况,及时调整采购计划和库存策略。
通过办公用品申请领用管理系统,可以实现办公用品的规范管理和有效控制,提高办公效率和成本管理的精确性。同时,系统还可以减少纸质流程和人工操作,降低办公用品管理的工作量和错误率。
技术说明
1、管理员账号:abo 密码:abo
2、开发环境为Eclipse/idea,数据库为mysql 使用java语言开发。
3.配置好Tomcat并点击启动按钮即可运行
4.数据库连接src\main\resources\application.yml中修改
5.maven包版本apache-maven-3.3.9.
开发语言:Java
框架:SSM
前端框架:vue.js
JDK版本:JDK1.8+
服务器:tomcat8+
数据库工具:Navicat
开发软件:idea 支持eclipse
ssm是当前最流向的一个框架,它的配置更加的简单,使开发变得更加的简单迅速。
ssm的基础结构共三个文件,具体如下:
src/main/java:程序开发以及主程序入口;
src/main/resources:配置文件;
src/test/java:测试程序。
ssm的数据库配置默认支持两种格式的配置文件
1,application.properties
2,application.yaml
界面展示
现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本办公用品管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此办公用品管理系统利用当下成熟完善的SSM框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的Mysql数据库进行程序开发.办公用品管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。
在分析并得出使用者对程序的功能要求时,就可以进行程序设计了。如图4.2展示的就是管理员功能结构图,管理员主要负责填充图书和其类别信息,并对已填充的数据进行维护,包括修改与删除,管理员也需要审核老师注册信息,发布公告信息,管理自助租房信息等。
第1周
2.21~2.27 查阅资料,学习Eclipse/idea开发平台和springboot框架技术
第2周
2.28~3.6 对软件功能需求进行分析, 软件功能模块划分及软件界面设计
第3周
3.7~3.13 撰写并提交毕业设计开题报告、英文资料翻译
第4周
3.14~3.20 编程调试,进行功能模块的详细设计
第5周
3.21~3.27 编程调试,进行功能模块的详细设计
第6周
3.28~4.3 进行各功能模块的编码,学院教师互查,准备期中检查
第7周
4.4~4.10 进行各功能模块的编码,迎接学校期中检查
第8周
4.11~4.17 软件相关模块的改进,进行综合调试运行
第9周
4.18~4.24 软件相关模块的改进,进行综合调试运行,对运行中发现的问题进行调整
第10周
4.25~5.1 完成软件开发,编辑用户使用帮助文档,撰写毕业设计(论文)
- 完成本课题所需要的学生人数:1人
- 工作量要求:
1) 搜集课题相关的资料,对课题的国内外当前研究成果进行调查研究,按要求完成3000字英文翻译工作,撰写开题报告。
2) 完成系统分析,概要设计,完成论文初稿设计。
3) 完成系统详细设计,撰写各阶段设计文档。
4) 完成系统编码,实现系统各功能模块。
5) 对系统进行测试,并根据测试结果对系统进行完善。
6) 整理相应文档,撰写毕业设计说明书。
7) 提交软件源程序光盘。
package com.controller;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
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.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;
/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/list")
public R list( UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
return R.error("用户名已存在。");
}
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
1系统概述 1
1.1 研究背景 1
1.2研究目的 1
1.3系统设计思想 1
2相关技术 3
2.1 MYSQL数据库 3
2.2 B/S结构 3
2.3 SSM框架简介 4
2.4 JSP技术介绍 4
3系统分析 5
3.1可行性分析 5
3.1.1技术可行性 5
3.1.2经济可行性 5
3.1.3操作可行性 5
3.2系统性能分析 6
3.2.1 系统安全性 6
3.2.2 数据完整性 6
3.3系统界面分析 6
3.4系统流程和逻辑 8
4系统概要设计 9
4.1概述 9
4.2系统结构 10
4.3.数据库设计 11
4.3.1数据库实体 11
4.3.2数据库设计表 13
5系统详细实现 17
5.1 管理员模块的实现 17
5.2用户模块的实现 19
6系统测试 21
6.1概念和意义 21
6.2特性 22
6.3重要性 22
6.4测试方法 23
6.5 功能测试 23
6.6可用性测试 24
6.7性能测试 24
6.8测试分析 24
6.9测试结果分析 25
结论 25
致谢语 26
参考文献 26