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

293 篇文章 9 订阅
266 篇文章 18 订阅

前言

Hi,同学们好呀,学长今天带大家复盘一个学长帮往届同学做的一个毕业作品

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

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);
}

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"; 
	    	  }	  
	 }

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>

4 最后

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值