基于JSP和Mysql的出差报销管理系统

基于JSP和Mysql的出差报销管理系统 摘 要 长期以来,中国政府机关,企业事业单位习惯于依靠行政,后勤人员或员工自己来办理出差报销,订机票,订酒店,提款

本文包含相关资料包-----> 点击直达获取<-------

基于JSP和Mysql的出差报销管理系统

摘 要

长期以来,中国政府机关,企业事业单位习惯于依靠行政,后勤人员或员工自己来办理出差报销,订机票,订酒店,提款,报销,事事亲历亲为,对相同的出差事务,选择的服务提供商五花八门,造成办公效率低下,出差成本不透明,结算成本增加等巨大的浪费。

据统计,企业出差费用是企业除人力资源成本之外的第二大可控成本,能否有效控制这部分成本,将直接影响企业的盈利能力,反应企业的管理水平。

关键词 :出差报销管理系统;JavaWeb系统;管理系统

第一章 绪论

1.1 出差报销管理系统的开发背景

本系统是为了更好的管理企业出差报销信息而设计的。由于企业出差报销事务繁多,包含的信息量大切复杂,有必要建立一个出差报销管理系统,使员工出差的工作变的规范化,系统化,程序化,有效的解决出差报销的一些问题。

1.2 设计目的与意义

本系统可以能减少很多不必要的资源,不用像以前那样用冗余的纸张式的管理。大节省了企业能源。并且计算机的存储与快速查询功能大大提高了出差报销的效率,并且还提高了出差信息管理的精确度。 方便快速的操作,可减少出差信息管理的漏洞,又减少因工作的冗余出现的错误,并且操作非常简单,可减少许多不很必要的人员,这无论从物质上还是工作人员的工资上都为企业节约了开支。为企业增加了财富。

第二章 系统需求分析

2.1 可行性分析

2.1.1 操作可行性

本系统的开发是在一个月的时间内完成的。前期主要是以学习以及收集资料为主,接下来就是对系统的分析,设计数据库,界面,以及中间的连接。对于计算机专业作为毕业设计来说是可行的。

2.1.2 经济可行性

经济可行性主要是对项目的经济效益进行评价。目前具备了运行网络平台的MIS的硬件基础,而且本系统是我组成员自行开发,免费帮助设计并实施的。因此开发、设计这套系统的支出费用是企业可以承担的,即经济上是可行的。

2.1.3 技术可行性

技术上的可行性要考虑将来采用的硬件和软件技术能否满足用户提出的要求。基于当前的计算机网络技术和数据技术已成熟,而且管理信息系统(MIS)的各种开发技术也已经相当成熟,并且在各个领域都不乏成熟的案例。所以开发一套网络平台的多用户共享信息的出差报销系统在技术上是可行的。

2.2 方案的设计与比较

2.2.1 C/S设计结构和B/S设计结构比较

目前网络应用软件运行的模式主要有两类:Client/Server模式,Browser/Server模式。前者的主要的缺点是维护、升级较为麻烦。且要同时开发服务器端和客户端;后者是近几年伴随Internet迅速发展起来的一种技术,B/S模式客户端是一个标准的浏览器,服务器端是web server,而Web server与数据库和应用服务器的紧密结合,使得这种模式的应用范围不断扩大,它已不仅仅用于网上查询,有很多企业部门的业务系统,企业的MIS系统纷纷采用这种模式,它的优点是便于扩展应用、升级维护简便、不需要开发专门的客户端、不需要对用户进行特殊的设置和软件安装,降低了维护成本,客户端只要有浏览器就可以了。

2.2.2 系统模式的设计

本系统的设计是只有一种用户,就是管理员,所以权限的话,就只有管理员权限一种;

2.2.3 系统设计的技术选择

  • 出于安全性,功能可扩展性。我们采用java ee

  • 数据库使用开源的Mysql

  • 服务器采用Tomcat

2.2.4 系统的运行环境

  • 系统 :Windows 7及其以上版本

  • Web服务器 :Tomcat7及其以上版本

  • 数据库服务器 :Mysql5

  • 浏览器 :IE7,8,9、火狐、Chrome

2.3 系统基本功能需求

系统中涉及系统管理员,经理,员工三种权限;接下来针对这种权限说明下功能结构;

2.3.1 系统结构

主要功能有:

  • 系统管理员 :员工信息管理,经理信息管理

  • 经理 :查看员工报销信息、查看员工、审核信息、个人信息查看

  • 学生 :录入报销信息、录入借款信息、个人信息查看

2.3.2 系统业务流程图

系统管理员

经理

员工

2.4 数据库需求分析

根据上面业务流程图所涉及到的内容,数据库要设计的表有:用户表,报销分类表,报销信息表

2.5 系统目标

本选题系统的设计主要将实现以下目标:

  • 人性化设计,系统界面友好,操作简单

  • 实现对三种用户的功能操作

第三章 系统概要设计

3.1 总体设计

用户

  • 打开系统,进入系统登录界面

  • 通过验证后,进入系统管理主界面

  • 用户操作,执行相应的功能

  • 退出系统

3.2 系统结构图

针对本系统的需求,设计出如下面所示的数据项和数据结构:

  • 用户表 :编号,用户名,密码,真实姓名,角色,手机,邮箱

  • 报销分类表 :编号,类别(分类1:车补 2:餐补 3:交通补 4:住宿)

  • 报销表 :编号,申请人编号,审核人编号,出差类别(长途,短途),报销金额,审核状态(已通过,已拒绝),拒绝理由,类别(借款单,报销单),报销分类表编号

3.3 数据库设计

系统管理员信息E-R图

学生信息E-R图

分类表

实体之间的关系图

3.4 逻辑结构设计

  • 员工和报销单是一对多关系

  • 经理和员工是多对多关系

3.5 数据库表的设计

用户信息表

字段名 数据类型 长度 是否主键 描述
id Int 自动编号
Username varchar 20 用户名
Password varchar 20 密码
trueName Varchar 20 真实姓名
phone Varchar 20 手机
email Varchar 50 邮箱
roleName varchar 10 角色

分类表

字段名 数据类型 长度 是否主键 描述
id Int 自动编号
Type Int 2 分类

报销表

字段名 数据类型 长度 是否主键 描述
Id Int 自动编号
sq_userId Int 20 用户名
sp_userId Int 20 密码
c_type Varchar 20 真实姓名
money Varchar 50 职称
status Int 2 审核状态 1:已通过 2已拒绝
reason varchar 2000 拒绝理由
type Int 2 1:借款单 2:报销单
typeId Int 11 typeId

第四章 系统的详细设计与实现

4.1 管理员功能实现

4.1.1 登录功能实现

用户进入登录界面,输入用户名,密码,选择管理员用户类型,然后点击“登录”按钮,后台验证成功,则进入主界面,否则,提示错误信息;用户登录成功,进入管理员主界面。

关键代码实现

java @RequestMapping("/login") public String login(User user,HttpServletRequest request)throws Exception{ User resultUser=userService.login(user); if(resultUser==null){ request.setAttribute("user", user); request.setAttribute("errorMsg", "用户名或密码错误!"); return "redirect:/login.jsp"; }else{ HttpSession session=request.getSession(); session.setAttribute("currentUser", resultUser); return "redirect:/main.jsp"; } }

4.1.2 出差报销管理实现

点击“出差报销管理菜单”,显示如下:

员工管理功能有,根据用户名查询员工信息,员工添加功能,员工修改功能,员工信息删除功能。

点击“添加”按钮,效果如图:

点击“添加”按钮,进入员工添加界面,输入用户名,密码,真实姓名,手机,邮箱信息,点击“保存”按钮,实现员工添加功能。

点击“修改”按钮,效果如图:

点击“修改”按钮,进入员工修改界面,可以对用户名,密码,真实姓名,手机,邮箱修改,实现员工修改功能。

点击“删除”按钮,效果如何:

用户点击“删除”按钮,弹出删除确认框,假如点击“确定”按钮,则对这条记录进行删除,点击“取消”按钮,则不删除。

员工信息查询

```java @RequestMapping("/list") public String list( @RequestParam(value = "page", required = false) String page, @RequestParam(value = "rows", required = false) String rows, User s_user,Model model, HttpServletRequest request) throws Exception { PageBean pageBean=new PageBean(Integer.parseInt(page),5); String roleName=request.getParameter("roleName"); HttpSession session=request.getSession(); User user = (User)session.getAttribute("currentUser"); Map map=new HashMap (); map.put("userName", StringUtil.formatLike(s_user.getUserName())); map.put("roleName", roleName); if(user.getRoleName().equals("经理")){ map.put("roleName", "员工"); } if(user.getRoleName().equals("管理员")){ if("经理".equals(roleName)){ map.put("roleName", "经理"); }else if("员工".equals(roleName)){ map.put("roleName", "员工"); } } map.put("start", pageBean.getStart()); map.put("size", pageBean.getPageSize()); List userList=userService.find(map); model.addAttribute("userList",userList); model.addAttribute("s_user",s_user); model.addAttribute("roleName", roleName); Long count=userService.getTotal(map); String pageCode=PageUtil.getPagation(request.getContextPath()+"/user/list.do?1=1&roleName="+roleName+"", Integer.parseInt(count+""), Integer.parseInt(page), 5); request.setAttribute("pageCode", pageCode); request.setAttribute("modeName", "列表");

return "/person/list";

} return studentList; } ```

员工信息添加

java @RequestMapping("/save") public String save(User user,RedirectAttributes attr,Integer type,Model model)throws Exception{ int resultTotal=0; // 操作的记录条数 if(user.getId()==null){ resultTotal=userService.add(user); }else{ resultTotal=userService.update(user); } JSONObject result=new JSONObject(); if(resultTotal>0){ result.put("success", true); }else{ result.put("success", false); } attr.addAttribute("roleName",user.getRoleName()); if(type==0){ return "redirect:/user/list.do?page=1&rows=5&type=0"; }else{ return "redirect:/user/getUserById.do?id="+user.getId()+"&type=1"; } }

4.1.3 经理信息管理实现

点击“经理信息管理菜单”,显示如下:

员工信息管理功能有,根据用户名查询员工信息,员工添加功能,员工修改功能,员工信息删除功能。

点击“添加”按钮,效果如下图:

进入员工信息添加界面,输入用户名,密码,真实姓名,手机,邮箱,点击“保存”按钮,则实现员工信息添加功能。

点击“修改”按钮,效果如下图:

进入员工信息修改界面,可以对用户名,密码,真实姓名,手机,邮箱进行修改,点击“保存”按钮,则完成对信息的修改。

点击“删除”按钮,效果如下图:

点击“删除”按钮,弹出删除确认框,点击“确定”,则实现信息删除,否则,不删除。

借款单信息审核:

点击审核进入审核页面:

选择通过或拒绝,报销单审核和借款审核相同,个人信息查询和修改:

4.1.4 员工信息管理实现

点击“借款单列表管理”,显示如下:

点击“添加”按钮,效果如下图:

点击“修改”按钮,效果如下图:

点击“删除”按钮,效果如图:

弹出“确认框”,点击“确定”,则实现把这条记录删除,点击“取消”,则不删除;

借款单信息查询

java @RequestMapping("list") public String list(@RequestParam(value = "page", required = false) String page, @RequestParam(value = "rows", required = false) String rows, Reimburse reimburse,Model model,HttpServletRequest request,HttpServletResponse response) throws Exception{ HttpSession session=request.getSession(); User user=(User)session.getAttribute("currentUser"); PageBean pageBean=new PageBean(Integer.parseInt(page),5); Map<String,Object> paramMap=new HashMap<String,Object>(); paramMap.put("start", pageBean.getStart()); paramMap.put("size", pageBean.getPageSize()); paramMap.put("type",reimburse.getType()); paramMap.put("spName",reimburse.getSpName()); if(user.getRoleName().equals("经理")){ paramMap.put("status", 3); } if(user.getRoleName().equals("员工")){ paramMap.put("sqUserId",user.getId()); } List<Reimburse> list=reimburseService.list(paramMap); model.addAttribute("rList",list); model.addAttribute("reimburse",reimburse); model.addAttribute("user",user); model.addAttribute("type",reimburse.getType()); Long count=reimburseService.getTotal(paramMap); String pageCode=PageUtil.getPagation(request.getContextPath()+"/reimburse/list.do?type="+reimburse.getType()+"&sqName="+reimburse.getSqName(), Integer.parseInt(count+""), Integer.parseInt(page), 5); request.setAttribute("pageCode", pageCode); request.setAttribute("modeName", "列表"); return "/reimburse/list"; }

借款单信息删除

java @RequestMapping("delete") public String delete(Reimburse reimburse,HttpServletResponse response) throws Exception{ reimburseService.delete(reimburse); JSONObject result=new JSONObject(); result.put("success", true); ResponseUtil.write(response, result); return null; }

结论

经过一段时间的努力,毕业设计终于一段落。本文是关于出差报销系统的文稿设计,通过阅读本论文可以对本系统有一定的了解。本文介绍了系统开发所用到的技术,编程语言,开发环境等。同时在做了分析调查后,对本系统做了详细的需求分析。然后对系统的概要设计以及详细设计也做了详细的说明,包括系统的前台设计,数据逻辑层设计以及后台数据库设计。

系统的主要特点有:人性化设计,界面友好,简洁,大方,操作简单方便,权限操作。虽然系统设计已经暂告一个段落,但由于本人的能力有限,再加上知识欠缺,以及对的业务不甚熟悉,所以在很多方面还存在着不足,如在系统需求分析方面还有很多方面没有考虑到,而且在具体实现各个功能的时候也存在一定的局限性。比如测试功能不完善,用户界面功能太简单、系统的界面不是太美观,系统安全性考虑不充分等等。所有本系统还有很多地方有待完善。

参考文献

[1] 网星工作室,Dreamweaver MX,北京希望电子出版社,2002:10-70

[2] 薛小龙,JSP典型系统实战与解析,电子工业出版社,2007:90-96

[3] 管西京,JSP+MySql动态网站案例开发,电子工业出版社,2008:76-101

[4] 程舒通,学校网站动态技术的开发.,《南宁职业技术学院学报》2006 1 :13-14

[5] Ralph R. Young 著,韩柯、耿民 等译,《有效需求实践》,机械工业出版社

[6] 张海藩 ,软件工程导论学习辅导[M],清华大学出版社,2004-9-1

[7] 李刚,疯狂Java讲义(第3版)电子工业出版社 ,2014-7-1

[8] 李兴华,Java Web开发实战经典基础篇,清华大学出版社,2010-8-1

参考文献

  • 基于Web Service的旅游管理系统的设计与实现(北京邮电大学·李琳)
  • 基于JSP的汽车租赁管理系统的设计与实现(吉林大学·王欣)
  • 移动端差旅预定及管理系统的设计与实现(黑龙江大学·赵恰恰)
  • 基于J2EE技术的网上旅费报销系统的研发(四川大学·伍凌云)
  • 民航代理人销售管理系统(山东大学·杜文)
  • 基于Web的酒店管理系统的设计与实现(东北大学·张会罡)
  • 移动端差旅预定及管理系统的设计与实现(黑龙江大学·赵恰恰)
  • 移动端差旅预定及管理系统的设计与实现(黑龙江大学·赵恰恰)
  • 基于Web技术下的出差管理系统(西安工业大学·张锐)
  • 移动端差旅预定及管理系统的设计与实现(黑龙江大学·赵恰恰)
  • 基于SAP BPM技术的出差管理系统的设计与实现(哈尔滨工业大学·廖曾曾)
  • 立山区政府职工差旅管理系统的设计与实现(大连理工大学·王渤)
  • 民航代理人销售管理系统(山东大学·杜文)
  • Hi Travel商旅平台的设计与实现(北京交通大学·邓奇山)
  • 基于JAVA WEB技术旅游服务网站系统设计与实现(电子科技大学·张岚)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:毕业设计货栈 ,原文地址:https://m.bishedaima.com/yuanma/35317.html

相关推荐

发表回复

登录后才能评论