• 【毕业设计】基于SSM的OA办公管理系统的设计与实现 -java web


    前言

    Hi,同学们好呀,被评为全网最细的丹成学长ヾ(•ω•`)o,今天带大家复盘一个学长帮往届同学做的一个毕业作品

    基于Java web的OA系统的设计与实现


    计算机毕设选题大全及项目分享:

    https://blog.csdn.net/WEB_DC/article/details/125563252


    1 什么是OA系统

    办公自动化简称为OA(Office Automation)是集计算机科学、通讯技术、系统科学、行为科学为一体的综合性技术。现代的办公自动化系统采用的是Internet/Intranet技术,基于工作流的概念,使得企业内部的员工能够方便快捷地共享信息,高效地协同工作;改变传统复杂、低效的手工办公方式,以实现迅速、全方位的信息采集和信息处理,为企业的管理和决策提供科学的依据。企业实现办公自动化的程度也是衡量其实现现代化管理的标准。办公自动化不仅兼顾个人办公效率的提高,更重要的是能够实现群体系统工作。凭借网络,这种交流和协调几乎可以在瞬间完成。

    办公自动化有很多的优点:避免对资源不必要的浪费,节约成本,高效管理等,它能让管理变得规范和科学。在查阅了很多与OA系统相关的资料后,对其进行了深入的学习。在了解到办公自动化现在的发展状况后,对学习和研究它的现实意义进行了深入的分析。

    在这里插入图片描述

    2 OA系统开发

    为了开发出更加完善的系统,学长以J2EE为技术基础,企业级的MVC设计模式为前提,科学的对系统进行了分析,阐述了OA系统的核心技术及其他工具的使用。在掌握Spring、SpringMVC、Mybatis等框架技术之后,运用Maven工具进行项目的管理,为办公自动化系统的开发做了充足的准备。

    3 系统设计

    这个办公自动化系统,采用的是B/S架构、运用了MVC模式进行开发,主体包括了数据持久层,核心业务层以及应用层(即前端视图界面—用户实现操作的交互界面),运用框架技术结合Maven管理实现对系统的构建,系统整体架构如图

    在这里插入图片描述

    在此系统架构下,项目工程的文件结构如图

    在这里插入图片描述

    3.1 系统模块设计

    系统模块的合理划分是系统成功的关键,因为OA系统模块众多,如果事先不做好模块划分,开发过程中的时间成本的投入将会提高,还可能造成做无用功的现象。对系统的各个模块进行合理的划分,能够促进系统功能的具体实现。

    系统模块大致分为系统管理、个人信息管理、审批管理、公告管理等(模块)。如图

    在这里插入图片描述

    系统管理模块又分员工管理、部分管理和岗位管理,如图

    在这里插入图片描述

    系统的个人信息管理模块,主要功能是对用户进行CRUD操作,如图

    在这里插入图片描述

    系统的审批模块,主要由请假申请、申请查询和待审批申请组成,如图

    在这里插入图片描述

    系统的公告管理模块,主要实现:管理员对公告的增、删、改操作,用户对公告可以进行的操作是查询,如图

    在这里插入图片描述

    3.2 核心业务流程设计

    工作流的设计是办公自动化系统的核心。针对本系统,通过“请假”这一业务来进行工作流设计,具体流程为见图

    在这里插入图片描述

    3.3 通用功能代码实现

    由于CRUD操作是各模块数据通用的,故而将其抽取为公共代码部分,采用面向接口编程的方式,具体模块的实例需要运用到的时候对其进行实现即可。主要代码如下:

    public interface UserService {
    	public User findUser(String username, String userpwd) ;
    	public List<User> selectAll();
    	public void add(User u);
    	public void del(int id);
    	public User getById(int id);
    	public void update(User u);
    	public List<User> getByLike(String keywords);
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    3.3.1 登陆模块实现

    登陆界面采用html+js+css来具体实现,效果如图

    在这里插入图片描述

    下面的是实现登陆主要代码:

    // 申明这是一个控制器
    @Controller
    public class Usercontroller { 
    		// 注入Service
    		@Autowired
    		UserService service;		
    //url映射
    		@RequestMapping("/login")
    		public String login(){
    			return "login";
    		  }
    		
    		  //登陆验证
    	     @RequestMapping("/main")
     public String checkLogin(@RequestParam(value = "username") String username, @RequestParam(value = "userpwd") String userpwd){
    	    	 User user = service.findUser(username, userpwd);	 
    	    	 if(user!=null) {
    	    		 return "main";
    	    	 }else {	  
    	    		  return "err"; 
    	    	  }	  
    	 }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    3.3.2 系统模块的实现

    系统的主要模块有:角色管理、部门管理、用户管理三大模块,基础部分均为数据的CRUD操作,其中还包含用户列表的分页功能。页面效果如图
    在这里插入图片描述

    部分核心代码如下:

    //后台核心代码
    	@RequestMapping(value = "/user")
    	public ModelAndView selectAll() {
    	ModelAndView mav = new ModelAndView();
    		mav.addObject("userList", service.selectAll());
    		return mav;
    	}
    
    
    //前端界面的关键代码:
    <tr>
    	  <th class="table-check"><input type="checkbox" id="chkAll"></th>
    	  <th class="table-id">ID</th>
    <th class="table-title">姓名</th>
    	  <th class="table-type">电话</th>
    	  <th class="table-author am-hide-sm-only">性别</th>
    	  <th class="table-set">操作</th>
    </tr>
    </thead>
    <tbody>
    <c:forEach items="${userList}" var="user">
    	<tr>
    	  <td><input type="checkbox" name="chk"></td>
    		<td>${user.id}</td>
    <td>${user.name}</td>
    		 <td>${user.phonenumber}</td>
    <td class="am-hide-sm-only"><span class="am-badge  am-badge-primary">${user.sex}</span>
    </td>
    <td>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    计算机毕设选题大全及项目分享:

    https://blog.csdn.net/WEB_DC/article/details/125563252


    4 最后

  • 相关阅读:
    微服务 - 作业调度 · Hangfire集成式 · 仪表盘 · DolphinScheduler分布式 · 定义流程
    图片如何缩小不降低清晰度?
    傅里叶分析(2)
    arm64-v8a和armeabi-v7a分别是什么?它们之间有什么区别
    Redis下载和安装(Windows系统)
    docker 部署jenkins + sonarqube + postgresql 代码扫描
    诞生在 KFC 的《开源之迷》:作者如何在嘈杂而开放的环境中进行创作
    【11.3】【VP】Codeforces Round #726 (Div. 2)
    最强ADI SHARC系列DSP:ADSP-SC589的开发入门详解
    C++拿几道题练练手吧
  • 原文地址:https://blog.csdn.net/WEB_DC/article/details/125620522