基于SSH的小型OA系统的设计与实现
2018-01-04聂维刘小豫
聂维 刘小豫
摘要:为了使中小型企业能够实现自动化管理,使用JSP技术,采用了MVC模式,SSH框架,Java为开发语言,使用Tomcat服务器、数据库采用MySQL、工作流管理使用Activiti流程引擎,设计并实现了一个小型OA系统。系统主要有员工、部门信息的维护、工作流程管理、信息的发布等功能。
关键词:OA;Activiti;SSH;MySQL
中图分类号:TP311.5 文献标识码:A 文章编号:1009-3044(2018)29-0123-02
Abstract: In order to make small and medium-sized enterprises realize automatic management, a small OA system is designed and implemented by using JSP technology, MVC mode, SSH framework, Java as development language, Tomcat server, MySQL database, and Activiti process engine in workflow management. The system mainly includes staff, department information maintenance, workflow management, information dissemination and other functions.
Key words:OA; Activiti; SSH; MySQL
企業管理对于一个企业来说是重中之重,良好的企业管理制度能够推进企业的发展,由于传统的人力办公需要耗费大量的人力、财力,因此开发相关的系统显得尤为重要。随着科技的进步,办公自动化系统的要求也越来越高。OA办公系统的出现节约了用工成本、加快了用工效率、简化了办公流程[1]。截至目前来看,OA系统虽然慢慢进入企业,对于办公也有很大的帮助。但是由于绝大多数OA系统面向的是规模比较大的企业,价格相对来说比较高昂0。对于小型企业来说OA的使用费过高,企业负担不起,只能采用人工管理的方式。因此开发和设计一个轻量级的办公自动化系统迫在眉睫。
1 工作流
工作流就是通过计算机自动完成业务的实现和文件的传输。工作流技术和Activiti5工作流管理平台,是对工作流程及其各操作步骤之间业务规则的抽象、概括、描述[3]。工作流就是为实现特定目标,必须完成的任务序列及这些任务的执行过程,它是业务流程0。Activiti工作的核心,是ProcessEngine对象。通过ProcessEngine可以创建不同的Service用来执行不同的操作。
2系统设计
2.1 系统功能设计
本系统的功能有业务申请与审批、发布动态与查看动态、信息的维护、流程管理。不同的用户的权限是根据登录用户的角色来进行判断的,只有当登录用户的角色是管理员的时候拥有全部权限,如果是其他角色则功能只有属于该角色的。系统结构模块设计如图1所示。
2.2数据库设计
本系统开发主要使用了以下七张表:
1)部门表(机构ID,机构编号,机构名称,描述,父机构id),保存了部门的主要信息。
2)员工表(员工ID,员工姓名,性别,描述,年龄,电话,地址,email,职务,机构id,备注),储存了员工的常用信息,可以供员工查询。
3)用户表(用户ID,用户姓名,密码,员工id),用于分配账号供用户登录使用。
4)请假单表(ID,请假天数,请假内容,请假时间,请假人,备注),用于保存请假单的信息,用户查看请假单需要从该表再提取信息并展示到页面上。
5)消息表(ID,消息标题,消息内容,发送时间,发送人),用于保存近期动态信息。
6)部署文件数据表(ID,名称,部署id,字节,版本号),用于保存流程定义图片和xml、Serializable(序列化)的变量,即保存所有二进制数据。
7)部署信息表(ID,部署文件名称,类别,部署时间),主要是实现部署流程定义时需要被持久化保存下来的信息。
3系统实现
3.1业务管理模块
业务管理模块是对员工日常业务的相关操作,本模块实现了请假功能,包括发起审批、提交审批、查看历史审批、删除审批等功能。第一步,用户登录系统选择添加业务管理跳转到信息添加页面。第二步,用户填写请假信息并保存,访问leaveBillAction的save方法保存请假单,跳转到列表显示页面并显示请假信息。第三步,选择请假单并提交,访问workflowAction的startProcess开始流程。第四步,使用当前对象获取流程定义的key,调用Activiti中runtimeService的startProcessInstanceByKey方法通过key值启动流程,重定向到任务列表页面,判断是否通过申请。该步骤可能重复执行。第五步,将处理结果返回给申请人。如果申请通过则请假流程状态变为已完成,否则依然是正在执行。
3.2流程管理模块
流程管理包括流程定义的部署、查看与删除。
1)定义:工作流定义一般是开发人员来操作的。开发人员根据客户的需求来完成相应的工作流定义。可以通过Eclipse 的Activiti工作流的插件Activiti Diagram或者其他的工具完成定义,流程定义主要由startevent、task节点和endevent以及连线组成,并且设置Assignee和Listeners来动态获取任务办理人。将生成的bpmn文件和png文件一起压缩为ZIP文件。
2)部署:该步骤是将定义并压缩后的文件部署到系统中。第一步,用户点击部署管理调用workflowAction的deployHome方法进入工作流管理页面。第二步,用户输入流程名称并选择上述压缩文件点击上传流程访问workflowAction的newdeploy方法。第三步,获取ZIP文件以及部署名称,使用workflowBean的getFile和getFileName方法获取。第四步,调用workflowService的saveNewDeploye传入ZIP文件和部署名称完成部署。
4 结论
本系统实现了小型OA系统的主要功能,其中主要是流程管理,实现了请假流程,可以对流程进行部署以及升级等,不需要进行代码的修改即可升级。系统还能够进行信息查看,包括员工信息、部门信息等,采用了发帖的形式能够查看各种信息。该系统能够减少企业在办公上的人力消耗,减少办公以及审批管理的不及时性。
参考文献:
[1] 屈晓.OA办公系统在政府机关的应用及存在问题的分析和建议[J].办公自动化,2015(5):42-45.
[2] 陈亚辉,缪勇.Struts2+Spring+Hibernate框架技术与项目实战[M].北京:清华大学出版社,2012.
[3] 徐亦楠,葛志辉,潘海源.Activiti5工作流在OA系统中的应用[J].大众科技,2014,16(1):5-7.
[4] 施俊,李艳会.Activiti工作流技术在OA系统中的研究与实现[J].软件导刊,2014,13(12):52-54.
【通联编辑:光文玲】