java基于ssm+jsp的办公用品采购申请领用管理系统

项目介绍

办公用品申请领用管理系统是一种基于信息技术的应用系统,用于方便和规范组织内部办公用品的申请、领用和管理。该系统可以提供以下功能:

办公用品目录管理:系统中包含完整的办公用品目录,包括各类办公用品的名称、规格、库存数量等信息。管理员可以定期更新和维护这个目录,确保信息的准确性和完整性。

办公用品申请:系统允许员工通过在线平台提交办公用品申请。员工可以选择需要的办公用品,并填写申请的数量和理由。申请表格可以包括审批流程和申请人的相关信息。

审批流程管理:系统可以根据设定的规则和权限,自动将申请发送给相应的审核人员进行审批。审批人员可以在系统中查看申请详情,并决定是否批准或拒绝申请。系统还可以记录每一次审批的时间和结果。

办公用品领用:一旦申请获得批准,系统会自动将申请的办公用品从库存中扣除,并生成相应的领用单。员工可以在指定的地点和时间领取所需的办公用品,并在系统中确认领用。

库存管理:系统能够及时记录和更新办公用品的库存数量。每次申请批准和领用完成后,系统会自动更新库存数量,并发出提醒或补货通知,以确保办公用品的充足和供应链的畅通。

报表和统计分析:系统可以生成各种报表和统计分析,包括办公用品消耗情况、申请和领用的数据统计等。这些报表和统计数据可以帮助管理人员了解办公用品的使用情况,及时调整采购计划和库存策略。

通过办公用品申请领用管理系统,可以实现办公用品的规范管理和有效控制,提高办公效率和成本管理的精确性。同时,系统还可以减少纸质流程和人工操作,降低办公用品管理的工作量和错误率。

技术说明

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人
  2. 工作量要求:
    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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实习课题研究的主要内容与方法 办公自动化是新时期政府部门的一项重要基础性建设,是国民经济信息化在政府部门的具体体现之一,对推进政府管理现代化、决策科学化、运作高效化起着积极和重要的作用。办公自动化系统主要是为机关工作人员处理政务提供一个办公辅助手段。政府办公活动就是对各类办公信息(数据、文字、声音、图象、图形)进行采集、存储、处理、传送和输出的过程。办公自动化(Office Automation,OA),是利用先进的科学技术(主要是计算机、软件、网络技术),使办公室部分工作逐步物化于各种现代化设备和软件系统中,由办公室人员、设备和软件共同构成服务于某种目标的人机信息处理系统,包括自动办公辅助、报文审批、公文流转及内部交流系统等。其目的是尽可能充分利用现代技术资源与信息资源,提高政府部门行政管理工作效率和质量,辅助决策,以取得更好的工作效果。办公自动化系统是电子政务的基础,主要是辅助解决办公室事务的时间管理、成本管理、质量管理等三个管理要素。 特别应提出的是办公系统不单是公文管理,而是对包括业务数据资源在内的办公资源进行全面规范和利用以及提供协同办公的辅助手段。 本模块属于《国税总局综合办公平台》的“办公用品管理”子模块。本系统的总体结构图如下: 使用的主要技术: 技术:Java Swing编程,web技术; 开发工具:Jbuilder 数据库:Oracle 9i 数据访问方式:JDBC oracle thin 模式 参考设计模式:单态、工厂、DAO、MVC等 具体实现的功能及模块划分如下表: 功能类别 子功能 功能描述 办公用品使用 浏览办公用品 用户根据自己的权限,浏览可以申请办公用品,可以查看要领用物品的详细信息及剩余数量 申请办公用品 填写办公用品申领单,提交申请后,即可根据该用品设定的申请流程进行申请流转 查看申领单 申请办公用品的用户可以看到自己的申请是否审批通过,没有申请通过的单子可以撤销或重新申请 查询办公用品 用户可以根据类别、办公用品名称、购入时间、使用者等进行查询 办公用品审批、签发 审批办公用品 具有审批权限的用户,核实申请单后,可以对申领单进行审批通过或驳回申领单 申请人可以看到自己申请单的状态。 查询审批单 具有审批权限的用户可以根据申请人名称查询到审批单,并按时间倒排序 签发办公用品 具有签发权限的用户可以看到审批通过的申领单,根据申领单的内容和审批意见签发办公用品,对已经签发的办公用品添上使用者和签发时间; 查询签发单 具有签发权限的用户可以查询到未签发的审批单; 可以根据使用者查询到已签发的审批单; 可以根据签发时间查询到已签发的审批单; 办公用品管理 设置办公用品类别 可以添加、删除、修改、查询办公用品的类别(不同的办公用品类别,拥有不同的属性) 分类办公用品 根据办公用品的用途、属性等,将办公用品归类,例如可分为文具类、计算机类、耗材类、外设类等 登记入库 根据办公用品类别的不同,选择不同的属性登记页面,并设置安全存储量(默认可以是0,表示不需要设置该值)进行登记入库 统计办公用品 根据使用者统计办公用品申领列表 存量提醒 对设置了安全存量数量的办公用品,当剩余数量小于安全存量值的时候,提示管理员该物品存量不足,并可以查看该物品的详细信息 权限管理 设置权限 可以添加、删除、修改一个权限 设置用户 可以添加、删除、修改一个用户 分配权限 对指定用户分配权限,也可以重新分配权限
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值