基于springboot办公自动化管理系统

精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻

💖🔥作者主页计算机毕设木哥🔥 💖

一、项目介绍

1.1 选题背景与研究意义

办公自动化系统,是利用技术的手段提高办公效率,进而实现办公的自动化处理,
是主要面向企业日常运作和管理、员工及管理者的应用系统,旨在使企业内部人员方
便快捷地共享信息、高效地协同工作[1]。因此,有必要就中小企业的日常经营管理特
点和发展需求,对OA系统的设计和应用策略进行深入的探究和分析[2]。OA(office
automation)是办公室自动化的简称,OA系统的演变与计算机技术、信息技术的发展
有着密切联系。并且从定义上来讲,OA 系统实际上就是现代办公方式与计算机技术
相结合的新型办公模式[3]
。要根据 OA系统的功能和用户的实际需要来设计和开发,
人们能够很容易地利用互联网来获得办公信息,同时也为类似的办公自动化系统的开
放性操作提供了依据,是信息化的基础和关键。联合评价是企业向现代管理转变的重
要手段,是提高管理效率和透明度的必要条件。人们普遍认为,办公自动化程度是衡
量现代管理能力的重要指标之一。

1.2 研究现状

进入21世纪以来,中国加快企业重组完善了企业的管理体制,提出了“信息化带
动工业化”的战略方针,满足需求的同时提升整体竞争实力。
目前国内企业办公OA系统得到了快速发展,由查阅资料可知,越来越多的企业开始
注重对OA系统的使用,与传统办公方式相比,OA系统的功能十分强大,其能
有效地满足当前企业信息管理的需求,实现企业日常办公业务的开展和信息的共享及
处理[4]
。我国OA系统的发展从1980年开始,主要有四个阶段,从文件型到协同型到
知识型再到现在的智能型,随着企业开发的不断完善与改进,目前我国的企业办公OA
系统焕然一新,智能型OA能够提升企业工作效率并且包含多种服务。

二、开发环境

  • 开发语言:Java
  • 数据库:MySQL
  • 系统架构:B/S
  • 后端:springboot
  • 前端:HTML
  • 工具:IDEA或者Eclipse、HBuilderX、JDK1.8、Maven

三、系统设计

系统结构图:
在这里插入图片描述
系统实体图:
在这里插入图片描述
在这里插入图片描述

四、项目展示

登录模块:在这里插入图片描述
管理员模块:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

行政模块:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
员工模块:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、代码展示

package com.interceptor;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.HashMap;
import java.util.Map;
import com.alibaba.fastjson.JSONObject;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor;

import com.annotation.IgnoreAuth;
import com.entity.EIException;
import com.entity.TokenEntity;
import com.service.TokenService;
import com.utils.R;

/**
 * 权限(Token)验证
 */
@Component
public class AuthorizationInterceptor implements HandlerInterceptor {

    public static final String LOGIN_TOKEN_KEY = "Token";

    @Autowired
    private TokenService tokenService;
    
	@Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {

		//支持跨域请求
        response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
        response.setHeader("Access-Control-Max-Age", "3600");
        response.setHeader("Access-Control-Allow-Credentials", "true");
        response.setHeader("Access-Control-Allow-Headers", "x-requested-with,request-source,Token, Origin,imgType, Content-Type, cache-control,postman-token,Cookie, Accept,authorization");
        response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
        
        IgnoreAuth annotation;
        if (handler instanceof HandlerMethod) {
            annotation = ((HandlerMethod) handler).getMethodAnnotation(IgnoreAuth.class);
        } else {
            return true;
        }

        //从header中获取token
        String token = request.getHeader(LOGIN_TOKEN_KEY);
        
        /**
         * 不需要验证权限的方法直接放过
         */
        if(annotation!=null) {
        	return true;
        }
        
        TokenEntity tokenEntity = null;
        if(StringUtils.isNotBlank(token)) {
        	tokenEntity = tokenService.getTokenEntity(token);
        }
        
        if(tokenEntity != null) {
        	request.getSession().setAttribute("userId", tokenEntity.getUserid());
        	request.getSession().setAttribute("role", tokenEntity.getRole());
        	request.getSession().setAttribute("tableName", tokenEntity.getTablename());
        	request.getSession().setAttribute("username", tokenEntity.getUsername());
        	return true;
        }
        
		PrintWriter writer = null;
		response.setCharacterEncoding("UTF-8");
		response.setContentType("application/json; charset=utf-8");
		try {
		    writer = response.getWriter();
		    writer.print(JSONObject.toJSONString(R.error(401, "请先登录")));
		} finally {
		    if(writer != null){
		        writer.close();
		    }
		}
//				throw new EIException("请先登录", 401);
		return false;
    }
}

六、项目总结

经过这几个月撰写论文首先对于大学期间学习的Java语言又有了更深层次的理
解,在一开始系统的设计过程的确对我来说是一个不小的挑战,出现了非常多的问题,
我对于开发语言和平台数据库都是一知半解,设计出的页面存在许多规范性的问题,
而且连接数据库时数据参数也无法传递,之后通过查阅网上的具体实例和参考资料以
及老师与同学们的帮助才将存在的问题得以解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值